Android源码编译相关
Android源码编译相关
Android源码国内镜像:
https://lug.ustc.edu.cn/wiki/mirrors/help/aosp
编译环境配置:
一般在Ubuntu 64位(18.04等)下面编译
安装必要的软件包及OpenJDK:
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev lib32z1 x11proto-core-dev libx11-dev lib32readline6-dev lib32z1-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc
编译源码
每个芯片平台可能略有差异
source build/envsetup.sh
lunch #32
make update-api
make -j4
make aboot -j4
make bootimage -j4
make installclean
make snod
mmm -B
编译指定Package
m: 编译所有的模块
mm: 编译当前目录下的模块,当前目录下要有Android.mk文件
mmm:编译指定路径下的模块,指定路径下要有Android.mk文件
重新生成sysem.img:
make snod
或者 make systemimage -j8,也可以生成system.img 通过fastboot更新
注意:
前提是使用设置了编译环境:
source build/envsetup.sh
lunch XXX
制作差异包:
make otapackage
mkdir OTA
- 复制out\target\product\xxx\obj\PACKAGING\target_files_intermediates\OTA包-A到OTA目录
- 修改自己要改的
make otapackage
- 复制out\target\product\xxx\obj\PACKAGING\target_files_intermediates\OTA包-A到OTA目录
./build/tools/releasetools/ota_from_target_files -v -i 差分包名
多次修改源码后编译报错Out of space
Out of space?
https://github.com/opengapps/aosp_build/issues/13
修改device/xxx/xxx/BoardConfig.mk
或者device/xxx/xxx/BoardConfigCommon.mk
里面的BOARD_SYSTEMIMAGE_PARTITION_SIZE
字段的大小
编译源码报错
Try increasing heap size with java option ‘-Xmx
‘
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g"
./prebuilts/sdk/tools/jack-admin kill-server
./prebuilts/sdk/tools/jack-admin start-server
参考
- Android官方文档
- 各芯片平台指导手册
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 DD'Notes!
评论