赞
踩
安卓源码编译需要linux环境,我这里用的是ubuntu14.04,虽然ubuntu16.04出来很久了。但是16.04有些依赖没解决得了,所以用14.04版本方便很多。下面将用ubuntu14.04环境为大家讲述源码的下载、编译和刷机。
1、安装curl、repo和git
安装curl
sudo apt-get install curl //install curl tool
1
安装curl
sudo curl http://commondatastorage.googleapis.com/git-repo-downloads/repo //download repo
1
如果你用这个下载安装不了,你可以直接sudo apt-get install repo,按照上面的提示安装即可。
sudo apt-get install git
1
git配置
sudo git config --global user.email “your@example.com”
sudo git config --global user.name “Your Name”
1
2
这个配置是否真实性对于下载源码影响不大,你也可以直接填写your@example.com和Your Name这样的字样下载源码。
2.下载源码
下载源码之前先建好一个文件夹,然后用命令进入该文件夹,最后才建仓下载。这样的做的好处就是没那么混乱。
repo init -u git://codeaurora.org/platform/manifest.git -b release -m LA.BR.1.2.3-10210-8x09.0.xml --repo-url=git://codeaurora.org/tools/repo.git --repo-branch=caf-stable
1
2
repo sync
1
我这里下载的是高通安卓源码,
下载地址见:https://wiki.codeaurora.org/xwiki/bin/QAEP/release
上面的LA.BR.1.2.3-10210-8x09.0.xml对应的是Android5.1.1版本。你也可以选择你要下载的版本。
另外你也可以从谷歌和清华下载源下载。
谷歌源码下载:https://source.android.com/source/downloading.html#initializing-a-repo-client
清华下载源:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
一个系统的源码大概是40多GB,编译也要部分的空间,你的磁盘注意要留有足够的空间。
3.依赖包下载
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g+±multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
1
安装openjdk7
sudo apt-get install openjdk-7-jdk
1
4.编译源码
在命令行里进入该源码的目录里。
source build/envsetup.sh
1
lunch
1
它会显示可选编译cpu架构,然后选择对应的cpu结构,一般选0,你也可以根据你需要来选。
Lunch menu… pick a combo:
1. aosp_arm-eng
2. aosp_arm64-eng
3. aosp_mips-eng
4. aosp_mips64-eng
5. aosp_x86-eng
6. aosp_x86_64-eng
7. mini_emulator_mips-userdebug
8. mini_emulator_x86_64-userdebug
9. m_e_arm-userdebug
10. mini_emulator_arm64-userdebug
11. mini_emulator_x86-userdebug
…
1
2
3
4
5
6
7
8
9
10
11
12
13
aosp_arm64-eng
最后开始编译
make -jn (“n” means the thread numbers of CPU)
1
这里的n表示线程数,一般是cpu数目的两倍。比如说make -j8。
编译好的文件在work/LINUX/android/out/target/product/xxx/里面,
这里的目录根据因你的项目目录不同而不同。一般来说,emmc_appsboot.mbn、boot.img、userdata.img、system.img、recovery.img是你最终需要的产物。
5.部分编译
部分编译一般用于修改代码后在原来已经有编译好的资源下进行差异化编译。这样的编译速度快很多。
预备
source build/envsetup.sh
lunch
1
2
这里的命令意义同上。差别在最后一步。下面每一步执行前请先执行source build/envsetup.sh和lunch。
1)编译about(生成emmc_appsboot.mbn)
make aboot -jn(“n” means the thread numbers of CPU)
1
2
目标文件夹work/LINUX/android/out/target/product/xxx/
这里根据因你的项目目录不同而不同,如果你的命令执行不了,可能是你输入的命令字符格式不对,”-jn”需要是英文格式的
2)编译内核(生成boot.img)
make bootimage -jn
1
2
目标目录work/LINUX/android/out/target/product/xxx/,下面几个目录都是在这个目录下,就不一一重复了。
3)编译system(生成system.img)
make systemimage –jn
1
4)编译userdata(生成userdata.img)
make userdataimage –jn
1
2
5)编译recovery(生成recovery.img)
make recoveryimage –jn
1
2
6.刷机
这里我假定你配置好adb环境,如果没有请先下载Android SDK搭建环境。然后连上机子在电脑上让电脑识别,在命令行里输入下面命令进行烧写。
1)烧写emmc_appsboot.mbn
adb reboot bootloader
fastboot flash aboot
2)烧写boot.img
adb reboot bootloader
fastboot flash boot
adb reboot bootloader
fastboot flash system
adb reboot bootloader
fastboot flash userdata
adb reboot bootloader
fastboot flash recovery
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。