从0开始编译安卓 9.0
手机是 Google Pixel XL
编译环境的准备
google 9月更新了地址
https://source.android.com/setup/build/initializing
https://source.android.com/setup/build/building
ubuntu 16.0.4 x64
需要安装的软件包 看上面 的网址
AOSP 源码采用清华的镜像。
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
wget -c https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包 tar xvf aosp-latest.tar cd AOSP repo sync -j4 . build/envsetup.sh lunch #选择一个编译目标 #这里输入19
make -j8
安卓解锁,编译,刷机介绍很全面
https://source.android.com/source/running
Pixel XL 是 marlin 按住音量调低键,然后按住电源键 进入 fast-boot 模式
编译代码是 aosp_marlin-userdebug 也就是上面的 19
解锁新款设备
自 2014 年以来发布的所有 Nexus 和 Pixel 设备(从 Nexus 6 和 Nexus 9 开始)都内置有恢复出厂设置保护功能,需要通过多个步骤才能解锁引导加载程序
在设备上启用 OEM 解锁
a.在“设置”中,点按关于手机,然后点按版本号七 (7) 次。
b.当看到“您已处于开发者模式”这条消息后,点按返回按钮。
c.点按开发者选项,然后启用 OEM 解锁和 USB 调试。(如果“OEM 解锁”处于停用状态,请连接到互联网,以便设备可以至少签到一次。如果“OEM 解锁”仍处于停用状态,则说明您的设备可能已被运营商锁定 SIM 卡,系统无法解锁引导加载程序。)
重新启动进入引导加载程序,然后使用 fastboot 解锁
对于新款设备(2015 年及之后发布的设备)
fastboot flashing unlock
对于老款设备(2014 年及之前发布的设备)
fastboot oem unlock
屏幕上确认解锁
注意:在 Nexus 10 上,解锁引导加载程序后,内部存储仍保持未格式化状态。您可以依次使用 fastboot format cache 和 fastboot format userdata 来格式化设备
然后就是 用上面的 解锁 bootloader ,在用 fastboot 刷入了,下了篇有介绍。
需要说明的是,最好还是欧版的Pixel oem无锁 。 已经解锁的版本,不管是恢复出厂还是刷机,都是解锁状态。
本文以 aosp 的 master 分支进行编译,如果需要对应的 安卓 版本,请自己切换版本。
更新:
vmware 安装 ubuntu 时看不到自定义分区,可以按 alt + f7 移动窗口
ubuntu swap 分区要比较大,否则不能编译成功
编译 IDE 文件
source build/envsetup.sh
mmm development/tools/idegen
[100% 2353/2353] Install: out/host/linux-x86/framework/idegen.jar
#### build completed successfully (05:34 (mm:ss)) ####
重新生成镜像
make snod
make bootimage
make systemimage
mmm
make clobber
make clean
编译完成后 在
out\target\product\marlin
生成一些文件
kernel 内核
boot.img 含u-boot 和 内核
ramdisk.img 安卓只读文件系统
system.img 安卓文件系统
userdata.img 用户文件系统可读写
ramdisk-recovery.img 恢复模式只读文件系统 在 fastboot 模式下可以选择进入 recovery 模式
system_other.img 安卓其它文件系统
查看连接的设备
fastboot devices
重启设备
fastboot reboot
清理用户数据
fastboot -w
擦除分区
fastboot erase cache
格式化分区
fastboot format data
一般只需要刷写
boot.img system.img userdata.img
fastboot flash boot boot.img
fastboot flash system system.img
fastboot flash userdata userdata.img
手动执行
fastboot flash boot boot.img
fastboot flash ramdisk ramdisk.img
fastboot flash ramdisk-recovery ramdisk-recovery.img
fastboot flash vendor vendor.img
fastboot flash system_a system.img
fastboot flash system_b system_other.img
可以直接指定分区的别名
fastboot flash boot_a boot.img
fastboot flash ramdisk_a ramdisk.img
fastboot flash vendor_a vendor.img
fastboot flash system_a system.img
fastboot flash system_b system_other.img
fastboot flash userdata userdata.img 格式化用户分区
挂载为可读写系统
mount -o remount,rw /system