然后使用
导出路径=~/bin:$PATH
导出bin执行目录
下载源代码
新建一个目标文件夹,用于存放源代码文件,并使用cd命令在命令行中输入。执行以下指令
重新指向-u-bandroid-4.4.4_r1
-b旁边的参数是昨晚找到的分支号
可以使用 reposync 命令下载存储库更新,也可以使用下面的脚本
接下来从官网下载手机对应的驱动(如下):
#锤头
查找 Android4.4.4(KTU84P) 的 Nexus5(GSM/LTE) 二进制文件
必须下载以下三个文件。 解压后有三个.sh文件,将它们放到Android源代码目录下,给三个文件名chmoda+x的文件分配权限,然后分别执行这三个文件linux源码编译路径,此时会生成一个vendor文件文件夹。
编译代码如果上述步骤没有问题,则使用以下指令直接编译(aosp_arm-eng为模拟器,nexus5为aosp_hammerhead-userdebug),编译后操作系统的路径为out/target/产品/锤头。
此时,编译好的操作系统就带有一个默认的内核了。 如果要更改内核linux源码编译路径,则必须重新下载内核源代码并更改编译。 在Android源码文件夹下创建kernel文件夹,并下载内核源码:(参考)
1.gitclone
(由于实验手机设备为Nexus5,所以我们选择内核代码为msm.git)
2.查看所选内核版本
3.修改内核调试标志绕过反调试(Kernelproc)
要更改的文件:
内核/msm/fs/proc/base.c
内核/msm/fs/proc/array.c
更改对以下文件的写入
状态,统计,
修改要点:
将 base.c 的第 285 行更改为以下内容:
4.修改Makefile以支持交叉编译和编译内核。 可用的内核初始化脚本如下:
编译成功后,可以看到如下输出:
编译内核后,内核生成的路径为:kernel/msm/arch/arm/boot目录下的zImage-dtb文件(nexus5是这个文件,nexus4是zImage文件,请注意不要搞错),将文件复制到源码下的device/lge/hammerhead-kernel文件夹中(注意:nexus4是mako-kernel文件夹),覆盖同名文件,然后根据前面的步骤(编译即将完成)。
闪光
插上手机连接笔记本,确认笔记本连接正常后,救砖
进入源img生成路径
cdsource/out/target/产品/hammerhead/
Adbreboot引导加载程序
Fastboot-wflashall
大约两分钟后,系统刷机成功。
随附的:
如果在Bootloader下无法连接手机,请参考前两页配置USB端口部分。
编译指令
部分编译
m:编译所有模块
mm:编译当前目录下的模块,当前目录下必须有Android.mk文件
mmm:编译指定路径下的模块,指定路径下必须有Android.mk文件
该部分编译完成后,需要使用
Makesnod 将编译好的东西集成到镜像中
引导加载程序解锁
我们买的Nexus4默认是锁定了Bootloader的,但是为了烧写自编程系统或者其他第三方ROM,需要解锁Bootloader。 Google提供了一个socket供开发者方便地解锁。
首先关闭Nexus4,然后同时按下两个音量键和电源键,一直按住直到界面上出现引导加载程序屏幕。
这时用usb线连接手机,在shell中执行:
$fastbootoemunlock
fastboot模式下无法识别手机,但adb模式下正常
修改51-android.rules内容为以下两项之一
(mode必须为0666,idVendor和idProduct(如果有)要与实际一一对应)
修改后使用命令
sudoserviceudev重新启动
重启服务进程,重新插上数据线
快速启动设备
检查是否被识别
如果上面的make步骤出现make: Nothingtobedonefor 'droid'
只需清理它即可。
寻找我的秘密花园
即使当我不确定我要去哪里时
我总是很匆忙。
即使不知道路在哪里
我总是很匆忙。
- 比尔·克林顿
观雪安全·观雪公测
16年持续关注安全,专业为您服务!