使用Android源码编译镜像,并刷入Pixel2

参考链接:https://blog.csdn.net/y874961524/article/details/86813713
                  https://blog.csdn.net/zz531987464/article/details/94163954
                  https://blog.csdn.net/niuba123456/article/details/81009215

环境需求背景: 在Android源码学习中,少不了加日志修改逻辑等操作,那么就需要将编译好的apk、jar、so等push到自己的Pixel手机上;我的是Pixel2 欧版的,可以打开oem,之后也root成功了。但是adb root执行失败,报了"adbd cannot run as root in production builds"的错误,经查资料推测原因是虽然手机root成功,但是adb没有root权限,后来尝试安装adbd-insecure.apk的方法也没能解决; 之后了解到可以通过,将代码编成镜像后,用fastboot命令把镜像替换的方式来达到目的。

1. 下面介绍使用Android源码编译镜像的方法:

a. 下载驱动

通过https://developers.google.com/android/drivers网站,可以下载到对应手机版本的驱动脚本,比如Pixel2的代号是walleye,所以需要下载如下两个脚本,注意用来编译镜像的代码也需要同步到QP1A.190711.020;

使用Android源码编译镜像,并刷入Pixel2_第1张图片

 解压后,在Linux中执行这两个脚本,即可提取出驱动,将提取出的vendor/... 放到aosp根目录下

b. 全部编译aosp

 第一次需要全编下代码,方法如下:

. build/envsetup.sh
lunch aosp_walleye-userdebug
make clean
make -j8

编译完成后,手机需要进入fastboot模式,刷入镜像:

adb reboot bootloader
fastboot flashall -w

执行结束后,重启手机,即将编译后的镜像成功刷入手机

2. 下面介绍单模块替换的方法:

. build/envsetup.sh
lunch aosp_walleye-userdebug

//仅编译audioflinger模块
make libaudioflinger -j8
//重新生成system.img镜像
make snod

 然后进入fastboot,将镜像刷入手机中:

adb reboot bootloader
fastboot flash system system.img

3. 下面介绍手机中镜像:
a.  ramdisk.img对应root目录,是根目录 
b.  system.img对应system目录

app目录:存放系统Apk文件;
priv-app:Android 4.4(API 19)增加的,存放系统核心app,只有此文件夹下的Apk可以获取“System”级别的权限;
bin目录:主要是Linux系统自带的组件,系统本地程序包含了基本命令;
etc:包含一些配置文件和脚本文件;
fonts:系统字体目录
framework:包含系统运行需要的jar包;
lib:所有的so库文件
media:包含一些声音和图片,可以用来做铃声和屏保
tts:Text To Speech,文字到语言的功能需要的资源
usr:用户文件夹,包括:共享、键盘布局、icu(时间格式、时区、星期等文件)、idc(触摸配置文件)
xbin:各种命令文件;

c. userdata.img对用data目录

4. 刷入单个image的命令

cd out/target/product/walleye
fastboot flash boot_a boot.img
fastboot flash boot_b boot.img
fastboot flash system system.img
fastboot flash system_b system_other.img
fastboot flash vendor vendor.img
fastboot flash userdata userdata.img

 

你可能感兴趣的:(源码镜像,刷入Pixel,调试)