关键词:安卓,Android,aosp
源码下载
参考:
- AOSP 镜像站使用帮助 清华大学开源软件镜像站 Tsinghua Open Source Mirror
- android10源码编译,烧机过程总结
- 下载源代码 Android 开源项目
- 代号、标记和 build 号 Android 开源项目
- 出厂镜像:Factory Images for Nexus and Pixel Devices Google Play services Google Developers
#配置repo环境
mkdir ~/bin
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo
cp repo ~/bin
vim ~/.bashrc
#添加下面两行环境变量配置 :wq 保存退出
PATH=~/bin:$PATH
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
#环境变量生效
source ~/.bashrc
#下载code到aosp
mkdir aosp && cd aosp
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r36
repo sync -c
参考 AOSP 镜像站使用帮助 清华大学开源软件镜像站 Tsinghua Open Source Mirror ,既然推荐的方法是下载最新的压缩包,刚好结合Windows的子系统,何不直接在Windows上使用迅雷下载压缩包 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar 到Windows目录:
%USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\子系统的用户名\
应为直接使用 wget 或 curl 下载速度上不去也不够稳定,使用迅雷速度比较快。这个源码下载的时间大概是 6 个小时。
压缩包下载好之后再按照清华的教程执行以下命令:
tar xf aosp-latest.tar
cd AOSP # 解压得到的 AOSP 工程目录
# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
repo sync # 正常同步一遍即可得到完整目录
# 或 repo sync -l 仅checkout代码
以后每次只需运行 repo sync
即可保持同步。 推荐每天同步,尽量选择凌晨等低峰时间。
编译
# 编译源码
source build/envsetup.sh
lunch
make -j8
# 编译成功信息:
# [100% 78784/78784] Target vbmeta image: out/target/product/generic_arm64/vbmeta.img
#### build completed successfully (01:48:40 (hh:mm:ss)) ####
# 查看img文件格式
# $ file ./target/product/generic_arm64/system.img
# ./target/product/generic_arm64/system.img: Linux rev 1.0 ext2 filesystem data, UUID=eed8effd-4c40-4397-b50f-bac2b770e7ef (extents) (large files) (huge files)
如果编译出错,需要安装以下环境后重试:
sudo apt install apt-file
sudo apt-file update
sudo apt-file find libncurses.so.5
sudo apt install libncurses5
驱动
放到安卓源码目录下,分别对三个文件chmod a+x 文件名 赋权限,然后分别执行三个文件,此时会生成 vendor文件夹。
刷机
- [原创]Android手机刷机教程
- 烧录成功却无法正常开机,请检查 谷歌手机设备驱动的下载 是否错误。
- 烧录成功却无法正常开机,你可以去官网烧录将设备的出厂镜像(factory images),以便你正常开机使用
【刷机教程】谷歌Pixel系列手机安卓11刷机、Root、安装Xposed、破解电信全程教程,评论区置顶评论有所使用的工具下载链接及刷机命令_哔哩哔哩_bilibili
[获取 Google USB 驱动程序 | Android 开发者 | Android Developers](https://developer.android.google.cn/studio/run/win-usb) |
[安装原始设备制造商 (OEM) USB 驱动程序 | Android 开发者 | Android Developers](https://developer.android.google.cn/studio/run/oem-usb#InstallingDriver) |
[适用于 Google Pixel 的出厂映像 | Android 开发者 | Android Developers](https://developer.android.com/about/versions/13/download?hl=zh-cn) |
模拟器刷机
真机刷机
MOD
整体步骤:
- 使用simg2img system.img s.img把system.img转换为ext4镜像文件;
- 然后使用mount -t ext4 s.img /mnt/system 挂载到/mnt/system目录下;
- 修改文件;
- umount /mnt/system;
- 转换为刷机镜像文件 img2simg s.img system.img
- fastboot刷机,fastboot flash sytem system.img
# 查看img文件格式
# $ file ./target/product/generic_arm64/system.img
# ./target/product/generic_arm64/system.img: Linux rev 1.0 ext2 filesystem data, UUID=eed8effd-4c40-4397-b50f-bac2b770e7ef (extents) (large files) (huge files)
镜像解包打包工具
工具 | 说明 |
---|---|
simg2img | aosp编译产物,在/out/host/linux-x86/bin/目录下。如果用file命令查看img是sparse ext4格式,则可以用该工具进行转换:simg2img system.img system_2.img |
mount | 挂载修改。sudo mount -t ext4 -o loop system.img ./system,这样可以直接在目录下直接修改文件。 |
make_ext4fs | 打包为sparse img模式的ext4。sudo make_ext4fs -s -l 2499805184 -a system -S ./file_contexts ./system.img.ext4 ./system |
ext2read/ext2explore | A Windows Application to read and copy Ext2/Ext3/Ext4 (With LVM) Partitions from Windows.ext2read.sf.net 。其实就是ext2explore,很多年前的老工具了,最新版本是2.2.71,只能查看和导出保存,不能修改。 |
winhex | 能打开、修改、保存、导出文件。导出方法:文件上右击 - 恢复/复制 - 选择保存的地方 |
Beyond Compare | 能用“Copy to folder…”将文件导出来,但不能修改 |
mount | linux下挂载修改。命令:sudo mount -o loop /xxx/system.img /home/temp/xxx |
ROM制作工具 | ROM制作工具,ROM批量制作,ROM精简,ROM打包,ROM修改,手机刷机包制作 |
ROM助手 | 可以精简APP,编辑build.prop,追加或删除app、修改权限等。完善后点击“开始封装”即可。 |
Android10-system.img-unpack | EMUI10 MIUI12 Flyme8 firmware unpack.Android system.img unpack repack on Windows10.(Android 8以上 ROM解包工具) |
# 设备信息
make/target/product/aosp_x86.mk
文档信息
- 本文作者:zhupite
- 本文链接:https://zhupite.com/android/aosp.html
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)