#1.Repo客户端
安装Repo 创建主目录如 bin/,下载Repo工具确保它可运行:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
## 如果上述 URL 不可访问,可以用下面的:
## curl -sSL 'https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT' |base64 -d > ~/bin/repo
chmod a+x ~/bin/repo
初始化Repo客户端 创建一个空目录存放工作文件,使用电子邮件地址配置Git。
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
运行 repo init 获取最新版本的Repo
repo init -u https://android.googlesource.com/platform/manifest
无法使用google的话就修改成源
修改清华
REPO_URL = 'https://gerrit.googlesource.com/git-repo'
改为
REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
镜像
-b 指定相应分支。
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
清华镜像
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-4.0.1_r1
依赖设置
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
#2.下载Android源代码树
repo sync
#3.Java sdk下载
sudo apt-get update
sudo apt-get install openjdk-8-jdk
sudo update-alternatives --config java
sudo update-alternatives --config javac
#4.源码编译
androidSource:$ source build/envset.sh
androidSource:$ lunch
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. full_fugu-userdebug
8. aosp_fugu-userdebug
9. mini_emulator_arm64-userdebug
10. m_e_arm-userdebug
11. m_e_mips64-eng
12. m_e_mips-userdebug
13. mini_emulator_x86_64-userdebug
14. mini_emulator_x86-userdebug
15. aosp_dragon-userdebug
16. aosp_dragon-eng
17. aosp_marlin-userdebug
18. aosp_sailfish-userdebug
19. aosp_flounder-userdebug
20. aosp_angler-userdebug
21. aosp_bullhead-userdebug
22. hikey-userdebug
23. aosp_shamu-userdebug
androidSource:$ 20
androidSource:$ make -j8
编译类型
- user 权限受限制;适用于生产环境
- userdebug 于"user"类似,但具有root权限可以调试
- eng 具有额外调试工具的开发配置
设备的代号以及编译配置信息
下载驱动(只在第一次下载编译源码时进行)
Branch的列表在:驱动
官网下载对应版本的驱动:驱动
Nexus 6P 对应驱动为 OPM1.171019.011 ,下载文件 huawei-angler-opm1.171019.011-41db8ed5.tgz 和 qcom-angler-opm1.171019.011-f7e511bb.tgz
将其解压得到 extract-huawei-angler.sh、extract-qcom-angler.sh文件,复制到安卓源码目录下运行。依次执行 sh extract-xxxx.sh 并输入 I ACCEPT。
//设置目标架构
# export ARCH=arm64
# export USE_CCACHE=1
// 解压 tgz 文件
# tar zxvf test.tgz -C 指定目录
// 将指定目录压缩到指定文件
# tar czvf kernel.tgz linux-2.6.29
#5.刷入目标设备
编译的可刷机文件有 boot.img、system.img、recovery.img、cache.img、userdata.img
当我们编译前执行 source build/envsetup.sh 、 lunch aosp_hammerhead-userdebug 两个命令时,脚本已经为我们自动设置好了环境变量和编译选项,其中lunch命令设置好了ANDROID_PRODUCT_OUT变量的值。adb、fastboot工具路径也设置好了。
1.检查输出目录变量的值
刷机前输出ANDROID_PRODUCT_OUT变量的值,确保它的值和编译后的镜像输出路径一致。不止一致的话,重新设置ANDROID_PRODUCT_OUT的值
2.用USB数据线连接手机
3.以fastboot模式启动手机,进行设备解锁
默认情况下设备是上锁的,输入命令进入bootloader模式
aosp:$ adb reboot bootloader
解锁
aosp:$ fastboot oem unlock
按音量键选YES,电源键确认
4.刷入镜像
aosp:$ fastboot -w flashall
这时刷入 boot.img、system.img、recover.img、cache.img、userdata.img 五个镜像文件
5.以fastboot 模式启动手机,进行设备上锁
aosp:$ adb reboot bootloader
aosp:$ fastboot oem lock
#6.其他
Java SDK替换
sudo update-alternatives --config java
sudo update-alternatives --config javac
补救
刷机后 如果手机进不去操作系统,那就先使用官方包刷入bootloader.img 然后在刷入系统。
官方地址:官网ROM
ubunut18.0 编译android8.0 出现错误时在make前使用
export LC_ALL=C
Android8.0编译时 Out of memory error 错误,使用如下方式
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
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2020-7-3 12:18
被山竹笠编辑
,原因: