• 编译Android ROM环境搭建


    环境搭建 

    1 安装ubuntu 推荐12.04或13.10 
    2 安装jdk7和一些所需要的包
    安装jdk7
    $ sudo apt-get update
    $ sudo apt-get install openjdk-7-jdk
    或者手动下载jdk-7 安装 http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html 
    chmod u+x ...
    增加执行权限并执行安装,
    安装在你选择目录并修改环境变量

    sudo vim ~/.bashrc (如果没有安装vim先执行:sudo apt-get install vim)

    export JAVA_HOME=/java/jdk1.7.0_51 ---这是我的安装目录,替换成你相应的安装目录即可export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH


    安装依赖包:
    $ sudo apt-get install git gnupg flex bison gperf build-essential
    zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev
    libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386
    libgl1-mesa-dev g++-multilib mingw32 tofrodos
    python-markdown libxml2-utils xsltproc zlib1g-dev:i386
    $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so 
    3 安装eclipse
    下载http://www.eclipse.org/downloads/ 
    解压到你选定的目录即可 
    //eclipse在ubuntu13.10下可能出现无法下拉工具栏现象,具体解决办法可参考http://my.oschina.net/kinsomc/blog/178997 

    4 设置ccache (可选)
    在~/.bashrc中添加
    export USE_CCACHE=1
    prebuilt/linux-x86/ccache/ccache -M 50G 

    5 安装repo
    $ mkdir ~/bin
    添加环境变量
    $ PATH=~/bin:$PATH(需要在~/.bashrc 中添加 export PATH=~/bin:$PATH)
    下载repo
    $ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo //有可能出现网络不可到达的现象,多试几次就行.也可以使用该网址(curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" > ~/bin/repo),如果没安装curl可以先安装,sudo apt-get install curl
    $ chmod a+x ~/bin/repo 
    6 配置git
    $ git config --global user.name "username"
    $ git config --global user.email "username@xiaomi.com" 
    7 ssh-key
    在小米提交和review代码需要ssh-key做机器的身份验证。
    1. 生成ssh-key
    $ ssh-keygen
    这将在home下建立.ssh目录。请备份好该目录,以后重装系统可以拷贝回来。
    2. 用自己帐号登录http://git.xiaomi.com:8088
    3. 进入ssh设置http://git.xiaomi.com:8088/#/settings/ssh-keys
    4. 点击Add key按钮,将~/.ssh/id_rsa.pub的内容粘贴到文本框中。确定即可。 

    8 具体MIUI版本下载
    具体的MIUI版本管理的流程,请参考版本管理概况
    我们的代码库的地址是git.xiaomi.com:libra2/platform/manifest.git,所以一般说来,一个repo init命令应该是: 
    $ repo init -u gitdaemon@git.xiaomi.com:libra2/platform/manifest.git -b jellybean -m aries.xml --repo-url=gitdaemon@git.xiaomi.com:aosp/tools/repo.git
    其中-b表示branch,MIUI基本上都在jellybean上进行开发,ICS和Gingerbread基本不再维护。 其中-m表示manifest文件,上述的aries.xml表示小米手机2的开发版,类似的还有:aries-jb-alpha.xml表示小米手机2的体验版,pisces-jb.xml表示小米手机3的开发版,等等。 还有很多,如果需要,请找相关人员咨询。 
    初始化repo完成之后,需要用sync下载代码,这个过程需要的时间较长,可能长达半小时甚至一小时。 
    $ repo sync -j8
    //过程中如果出现提示输入密码的情况,在确定ssh-key已经设定正确的情况下就多执行几次上面的命令就可以了 

    9 编译代码 
    编译代码首先要进入你的代码目录。
    首先要初始化环境变量: 
    $ . build/envsetup.sh
    然后,选择你的编译模式和目标版本: 
    $ lunch
    基本上,你可以选择你的机型相关的版本即可,其中eng表示工程师版(可调试),user表示用户版,debug当然表示调试版。aries表示小米手机2的开发版
    最终的编译命令应该是: 
    $ make otapackage -j4 (-j4 代表起4个线程) 

    10 编译系统/apps

    仅编译系统

    当你做了某些修改,需要编译整个系统(不包括boot等)时,需要用下面的命令: 
    $ make systemimage -j4

    apps

    如果你只需要编译某一个app,则需要进入到app相应的目录,使用mm命令。
    $ mm
    或者,你也可以在主目录下使用make + app目录下Android.mk中的LOCAL_PACKAGE_NAME,不过这样稍慢。 
    $ make Phone -j4
    编译framework里面的东西也跟app类似。 

    11 USB连接设备,只需要打开开发者选项即可顺利连接 

    12 刷机

    刷整个系统

    首先你必须找打你编译出来的image文件,一般说来,他们位于你的代码目录下out/target/product/<手机代号> /中,其中后缀通常是img。比如小米手机3的代号是pisces,那么目录就应该是out/target/product/pisces/。 
    进入刷机模式(fastboot模式): 
    $ adb reboot bootloader(使手机进入刷机状态)
    刷system,userdata, boot: 
    $ fastboot flash system out/target/product/pisces/system.img
    $ fastboot flash userdata out/target/product/pisces/userdata.img
    $ fastboot flash boot out/target/product/pisces/boot.img
    重启手机 
    $ fastboot reboot

    只刷修改的App

    编译、刷整个系统都需要很长的时间,所以我们一般调试时都只刷我们修改过的app。 
    编译好app后,先root手机: 
    $ adb root
    然后remount让system分区可写: 
    $ adb remount
    然后就可以把你的app push到手机上相应的目录,如: 
    $ adb push out/target/product/pisces/system/app/Phone.apk /system/app
    如果你修改的不是system/app下apk,而是在system/framework下的jar,你可能还需要重启手机才能生效: 
    $ adb reboot 
    13 适用Eclipse查看编辑调试源代码
    进入你下载的源码目录,把eclipse工程配置文件复制到android源码根目录下cp development/ide/eclipse/.classpath ./
    chmod u+w .classpath # Make the copy writable //使可写便于修改
    修改eclipse程序的配置,增大eclipse内存设置 把eclipse.ini(在eclipse软件的安装目录下)的3个值改为下面的值:-Xms128m-Xmx512m-XX:MaxPermSize=256
    把android源码作为一个工程导入eclipse 导入前先检查.classpath里的文件在android源码中是否有相应的文件(文件夹),否则也会破坏android源码(一般是多添加文件/文件夹),.classpath里多余的路径可删除,没有的需要添加。新建Java Project(不是android project,否则会破坏android源码),选择从已存在的工程导入,工程名任意,完成。也可以直接import(可能会出现一些重复的项目) 

  • 相关阅读:
    Shader 结构体中语义的理解
    计算包围盒中心坐标
    c#脚本控制shader
    PS2键盘 + LCD12864 实验
    基于M9K块配置ROM的LCD12864图片显示实验
    LCD12864 液晶显示-汉字及自定义显示(串口)
    LCD12864 液晶显示-汉字及自定义显示(并口)
    基于Verilog HDL 的数字电压表设计
    基于Verilog HDL的ADC0809CCN数据采样
    触发器(基本的SR触发器、同步触发器、D触发器)
  • 原文地址:https://www.cnblogs.com/genggeng/p/10564122.html
Copyright © 2020-2023  润新知