大连市建设工程老网站,珠海h5建站,网站商业授权含义,专业的网站建设官网之前整理了 Pixel4上的源码过程#xff0c;下载的话大家可以去镜像网站下载#xff0c;可以节约很多时间。 实验设备#xff1a;Ubuntu18.04 32G2T Pixel4 文章目录 一、安卓源码下载1.准备下载环境#xff08;1#xff09;安装Python 3.9#xff08;2#xff09;安装g… 之前整理了 Pixel4上的源码过程下载的话大家可以去镜像网站下载可以节约很多时间。 实验设备Ubuntu18.04 32G2T Pixel4 文章目录 一、安卓源码下载1.准备下载环境1安装Python 3.92安装git3安装curl4配置环境变量 安装repo 2.下载源代码1创建目录2初始化仓库3同步4拉取repo shell脚本 二、安卓源码编译1.安装jdk2.使用 ubuntu 14需要安装以下依赖包3.安装libncurses54.构建编译环境依赖5.下载编译驱动6.开始编译7.刷机1fastboot 安装2安装kvm3进入reboot-bootloader模式4配置ANDROID_PRODUCT_OUT环境5刷机 三、内核构建编译刷机1.下载相应分支的源代码2.内核编译1改变Touch路径2编译内核3刷入设备3重启 四、参考资料AOSP刷机 一、安卓源码下载
1.准备下载环境
1安装Python 3.9
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.9
sudo apt-get install python2安装git
sudo apt-get upgrade
sudo apt-get install git
git config --global user.email xxxxxxxgmail.com
git config --global user.name xxxxx3安装curl
sudo apt-get install curl4配置环境变量 安装repo
mkdir ~/bin
PATH~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo ~/bin/repo
chmod ax ~/bin/repo打开bin文件夹下的repo将
REPO_URL https://gerrit.googlesource.com/git-repo
改为
REPO_URL https://mirrors.tuna.tsinghua.edu.cn/git/git-repo如果替换了还不行可尝试以下方案之一
curl -sSL https://gerrit-googlesource.proxy.ustclug.org/git-repo//master/repo?formatTEXT |base64 -d ~/bin/repo
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo可选项给repo换个源把该执行放到~/.bashrc环境变量中
export REPO_URLhttps://mirrors.tuna.tsinghua.edu.cn/git/git-repo/2.下载源代码
1创建目录
mkdir android12.0.0
cd android12.0.02初始化仓库
重开终端 PATH 会失效可以在使用时直接改成绝对路径 python3 ~/bin/repo xxx
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest其他镜像地址供参考不要全copy输入一遍参考用的
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest以下是分支仓库拉取特定TAG用的 版本号要对应版本号要对应版本号要对应
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-12.0.0_r11网络不行就试试其他镜像地址不要直接照搬对照修改下面3种方案
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-12.0.0_r9
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-12.0.0_r3
python3 ~/bin/repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-12.0.0_r28可以登录以下网页查看自己手机对应的版本号【魔法】 https://source.android.com/setup/start/build-numbers#source-code-tags-and-builds
如果提示无法连接到 gerrit.googlesource.com可以编辑 ~/bin/repo把 REPO_URL 一行替换成下面的
REPO_URL https://gerrit-googlesource.proxy.ustclug.org/git-repo3同步
repo sync -j$(nproc)4拉取repo shell脚本
touch repo.sh # 1. 创建 repo.sh 文件
vim repo.sh # 2. 复制下面的脚本内容到 repo.sh 里面
chmod ax repo.sh #3. 修改权限
./repo.sh # 4. 运行脚本万事大吉#!/bin/bash
python3 ~/bin/repo sync -j4
while [ $? -ne 0 ]
do
echo sync failed ,re-sync again
sleep 3
python3 ~/bin/repo sync -j4
done二、安卓源码编译
准备编译环境
1.安装jdk
sudo apt-get update
sudo apt-get install openjdk-8-jdk2.使用 ubuntu 14需要安装以下依赖包
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 unzip3.安装libncurses5
sudo apt install libncurses54.构建编译环境依赖
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 libncurses55.下载编译驱动
https://developers.google.cn/android/drivers#flamesp1a.210812.016.a1 去以上网站找对所下载安卓源代码版本所对应的驱动下图buildID要对应
如果只是运行模拟器忽略这一步。Pixel4手机需要下载驱动编译脚本–脚本链接下载机器对应的驱动编译脚本文件并解压得到extract-google_devices-flame.sh和extract-qcom-flame.sh放到源码的根目录执行会让输入 I ACCEPT回车别按的太快之后ctrlc 跳过执行后会得到vender目录 执行以下命令不同机型命令不一
./ extract-qcom-flame.sh
./extract-google_devices-flame.sh6.开始编译
cd #源代码文件名
source build/envsetup.sh 每次关闭 Shell 之后都需要重新执行配置环境
make clobber
lunch输入#后的数字找到pixel4对应 aosp-flame -userdebug 输入对应数字
make -j$(nproc)7.刷机
准备刷机环境
1fastboot 安装
sudo apt-get install android-tools-fastboot2安装kvm
sudo apt-get install qemu-kvm开始刷机
3进入reboot-bootloader模式
无反应可先进入adb reboot bootloader
fastboot reboot-bootloader4配置ANDROID_PRODUCT_OUT环境
export ANDROID_PRODUCT_OUT/绝对路径/out/target/product/flame注意要用自己的路径替代
5刷机
fastboot flashall -w三、内核构建编译刷机
1.下载相应分支的源代码
mkdir android-kernel cd android-kernel
python3 ~/bin/repo init -u https://aosp.tuna.tsinghua.edu.cn/kernel/manifest -b android-msm-coral-4.14-android12
repo sync -j$(nproc)2.内核编译
1改变Touch路径
将 /kernel/private/msm-google-modules/touch/fts/flame目录下的文件剪切到/kernel/private/msm-google-modules/touch/fts/目录下删除flame
sudo apt-get install libssl-dev2编译内核
在内核主目录下
./build/build.sh3刷入设备
1、永久刷入设备【参考刷AOSP】出错不能恢复默认内核不推荐 在编译好的安卓源码⽬录下有⼀个out⽂件夹将⽬录out/target/product/flame⽬录下的 *.img和kernel删除
rm *.img kernel 然后备份安卓源码的⽬录device/google/coral-kernel下的Image.lz4⽤内核源码中的 Image.lz4进⾏替换 回到安卓⽬录后进⾏
source build/envsetup.sh
make -j$(nproc)2、【推荐】快速刷入内核
adb reboot bootloader
fastboot boot /home/wangheng/kernel12/kernel12/out/android-msm-pixel-4.14/private/msm-google/arch/arm64/boot/Image.lz4-dtb3重启
fastboot reboot四、参考资料
AOSP
1、http://liuwangshu.cn/batcoder/aosp/2-download-aosp.html 2、https://blog.csdn.net/y738587653/article/details/119983521?utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3.no_search_linkdepth_1-utm_sourcedistribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3.no_search_link 3、http://liuwangshu.cn/batcoder/aosp/3-compiling-aosp.html 4、https://blog.csdn.net/weixin_45767368/article/details/105962606#t1 5、https://blog.csdn.net/grackergao/article/details/120984766 6、https://www.cnblogs.com/palance/p/5187103.html
刷机
1、https://blog.csdn.net/y738587653/article/details/119983521 2、https://www.droidwin.com/fix-failed-remote-partition-should-be-flashed-in-fastbootd/#Fix_1_Use_the_latest_ADB_Fastboot_Binaires 3、https://jingyan.baidu.com/article/5552ef47a15249518ffbc9ec.html 4、https://developer.android.com/studio/releases/platform-tools