Android系统源码编译

安卓源码编译需要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,按照上面的提示安装即可。

安装git

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

  • arm CPU架构。
  • 64代表64位系统
  • eng代表engineer版本
  • user正式版,权限受限制
  • userdebug版本,在user版本的基础上开放了root权限和debug的权限。

最后开始编译

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值