安卓逆向笔记 - Nexus 5升级Android 6、开启全局调试模式和获取Root
# 0x00 前言刚刚入坑安卓逆向,一边学习一边记下笔记
搜索了一下论坛中关于刷机的帖子很少,也是刚刚买了Nexus 5,正好来练习一下
之后这个笔记,我会陆陆续续更新
# 0x01 准备工作
1、下载镜像
6.0.1 (M4B30Z, Dec 2016)最后一个官方版本,Factory Image,点击底部接受条款才会显示下载链接
(https://developers.google.com/android/images)
下载直链
(https://dl.google.com/dl/android/aosp/hammerhead-m4b30z-factory-625c027b.zip)
2、下载 Android SDK
(https://developer.android.com/studio/releases/platform-tools)
3、安装 Google USB 驱动程序
(https://developer.android.google.cn/studio/run/win-usb?hl=zh-cn)
最新版本
(https://dl.google.com/android/repository/usb_driver_r13-windows.zip?hl=zh-cn)
> 下载完工具之后,请自行配置系统环境变量
# 0x02 开启永久全局调试模式
## 简介
一个进程是否可以调试是由进程启动时候的参数决定的:
1、普通的App进程如果是debug keystore默认是可以调试的,又或者在AndroidManifest里面指定debuggable为true也是可以调试的
2、对系统进程,我们只有采取系统级别的手段:让整个系统可以调试 - debug版或者编译参数debuggable为1的系统
3、解决这个办法很简单:使用模拟器(真机也行,限Nexus系列刷原生Android系统,把系统启动的debuggable参数修改为1)为了后面可以更好的调试APP,需要修改debuggable属性,如果没有刷入debuggable=1 属性,也可以使用Xposed模块来完成相同的功能
## 准备工作
下载 boot.img 解包/打包工具
Andorid unpack/repack boot/rececovery.img for Windows
[https://github.com/cofface/android_bootimg](https://github.com/cofface/android_bootimg)
## 操作步骤
1、将 **Nexus 5 image-hammerhead-m4b30z.zip** 的系统镜像解压

2、在压缩文件中提取出 boot.img
3、并拷贝到 booting.exe 所在目录
4、打开 cmd 命令环境,执行 `bootimg.exe --unpack-bootimg` 命令对boot.img文件进行解压处理 (注意:存放的路径不要有中文,否则会报错)
!(data/attachment/forum/202301/09/124819p0k9vkxovqcyev9y.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
5、找到 `initrd` 文件夹下找到 `default.prop` 文件,修改文件中的 `ro.debuggable=0` 改为 `ro.debuggable=1`,记得保存
!(data/attachment/forum/202301/09/124934dpqff1ed9wn96q5f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
6、然后在cmd命令行执行 `bootimg.exe --repack-bootimg`,解压的文件夹会重新打包为新的img文件
!(data/attachment/forum/202301/09/125004okg1ikw0md0ek700.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
7、将 `boot-new.img` 改名为 `boot.img`,放回原来的压缩包里,替换原压缩包的 boot.img 文件
!(data/attachment/forum/202301/09/125024yx8nssistym8k1ti.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
# 0x03 刷入镜像
1、进入bootloader `adb reboot-bootloader` 或 关机状态下,电源键加音量下键不放,直到进入 fastboot mode 模式
2、不要直接执行刷机包中的 `flash-all.bat`,会报错且会导致手机无限重启
3、使用我下面提供的代码来进行刷机,复制替换 `flash-all.bat` 中的内容即可
```powershell
@ECHO OFF
fastboot erase cache
fastboot erase userdata
fastboot erase boot
fastboot erase cache
fastboot erase recovery
fastboot erase system
fastboot flash bootloader bootloader-hammerhead-hhz20h.img
fastboot reboot-bootloader
ping -n 5 127.0.0.1 >nul
fastboot flash radio radio-hammerhead-m8974a-2.0.50.2.30.img
fastboot reboot-bootloader
ping -n 5 127.0.0.1 >nul
fastboot flash recovery recovery.img
fastboot flash boot bootnew.img
fastboot flash system system.img
fastboot flash cache cache.img
fastboot flash userdata userdata.img
echo Press any key to exit...
pause >nul
exit
```
> 注意:脚本刷机还是会报错,哪一个步骤报错,就复制命令手动执行一次
# 0x04 Root
## 准备工作
> 注意:Root 包的 boot.img 默认是没有开启全局调试模式的;需要解包之后修改文件再进行打包刷入
1、进入开发者模式,打开USB调试
2、下载 Root 包
https://download.chainfire.eu/363/CF-Root/CF-Auto-Root/CF-Auto-Root-hammerhead-hammerhead-nexus5.zip
3、解压下载文件
```powershell
# Window下可以直接执行root-windows.bat
# Linux需要手动执行
cd tools
fastboot oem unlock 1>NUL 2>NUL
fastboot oem unlock 1>NUL 2>NUL
fastboot oem unlock-go 1>NUL 2>NUL
fastboot oem unlock-go 1>NUL 2>NUL
fastboot flashing unlock 1>NUL 2>NUL
fastboot flashing unlock 1>NUL 2>NUL
fastboot boot ../image/boot.img
```
机器重启后,Nexus5 会获得Root权限,并自动安装 SuperSU 权限管理软件
打开DDMS验证
!(data/attachment/forum/202301/09/124732hzh03r1e04pdldzd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
> 比较可惜,面具修补的 boot.img 暂时无法成功刷入,会导致手机无限重启,等之后解决了再修改笔记
谢谢分享! 学习了,膜拜大佬!!! 体验一下谢谢~ 感谢!马上就试试! 这个很实用,谢谢分享。 感谢分享 继续学习
页:
[1]