修改Nexus5的boot.img - 打开系统调试

转自:http://bbs.pediy.com/thread-197334.htm


介绍
当打开Android系统调试标志时,手机内的APP都可以被调试,调试的是dex内的Java代码。

打开系统调试标志的好处是:当调试APP时,不需要在APP的AndroidManifest.xml文件中添加android:debuggable="true",从而省了对APP重打包的过程。

修改boot.img本以为是很简单的事情:解包-修改-打包-刷入-完事儿。可是实践中把新的boot.img刷入后,手机一直启动不起来。甚至解包后直接打包,然后刷入手机,手机依旧起不来。经过摸索,现在成功的将修改后的boot.img刷入手机并且手机运行良好,所以总结了这篇文章。

不直接修改手机里的default.prop,是因为当手机重启后这个文件就会复原。

所有需要的工具见附件,其中mkbootimg和unpackbootimg是基于源码编译的,网上下载下来的不靠谱。

所有操作基于linux x64系统。

-------------------------------------------------------------------

步骤:
一、下载“Google Nexus 5 谷歌最新官方原厂安卓4.4.4固件”,从这个ROM中提取出boot.img文件。

二、boot.img解包
运行下面的命令将会对boot.img解包,得到boot.img-kernel和boot.img-ramdisk.gz两个文件:
split-bootimg.pl boot.img

三、处理boot.img-ramdisk.gz
运行下面的命令,对boot.img-ramdisk.gz进行解压:
mkdir ramdisk
cd ramdisk
gzip -dc ../boot.img-ramdisk.gz | cpio -i

四、修改default.prop,打开系统调试标志
找到解压出来的default.prop文件,将其中的ro.debuggable=0修改为ro.debuggable=1

五、ramdisk目录打包
返回ramdisk的上层目录,输入命令:
mkbootfs ./ramdisk | gzip > ramdisk.img

六、打包出新的boot.img
命令:
mkbootimg --base 0x00000000 --ramdisk_offset 0x02900000 --second_offset 0x00F00000 --tags_offset 0x02700000 --cmdline 'console=ttyHSL0 androidboot.hardware=hammerhead user_debug=31 maxcpus=2 msm_watchdog_v2.enable=1 earlyprintk' --kernel boot.img-kernel --ramdisk ramdisk.img -o newboot.img

七、将新的boot.img刷入手机
这时,在windows下还是linux下就无所谓了。将手机连上电脑输入下面的命令,重启手机进入fastboot:
adb reboot bootloader
当重启手机后,将新的boot.img刷入手机:
fastboot flash boot newboot.img
如果出现类似下图的输出,就说明刷入成功了:


刷入成功并不代表你的手机可以正常使用~~不过只要严格按照上面的方法,在Nexus5这个手机下还是没有问题的。现在输入下面的命令重启手机吧:
fastboot reboot

八、系统中的APP都可以调试了!
APP调试命令:adb shell am start -D -n <包名>/<Activity名>

我的eclipse的DDMS视图:


-------------------------------------------------------------------

后记:
如果手机刷成砖怎么办?
我的Nexus5本身就是“Google Nexus 5 谷歌最新官方原厂安卓4.4.4”,所以我在手机因为刷boot.img而无法启动的时候,直接进入fastboot,然后把官方的boot.img重新刷到手机里面,然后砖就满血满状态复活了。

手动进入fastboot模式(用于变成砖以后使用):
同时按【音量下键+电源键】。

工具备注:
mkbootimg和unpackbootimg可能只能用在linux x86的系统上,那我的linux x64怎么能使用这两个工具哪?因为我的linux x64系统下载了支持x86程序运行的库。

要为 LG Nexus 5(代号为 `hammerhead`)在 Ubuntu 环境下刷入 Sailfish OS,需要遵循一系列步骤,包括解锁引导加载程序、安装必要的工具、下载 Sailfish OS 映像文件,并最终刷入系统。以下是详细的教程: ### 准备工作 1. **确保设备兼容性** Sailfish OS 支持部分 Nexus 设备,LG Nexus 5 是其中之一。确保你下载的 Sailfish OS 版本适用于 `hammerhead` 设备型号 [^1]。 2. **启用开发者选项和 USB 调试模式** 在 Nexus 5 上启用开发者选项的方法是:进入 **设置 > 关于手机**,连续点击 **版本号** 七次。随后返回 **设置 > 开发者选项**,启用 **USB 调试** 和 **OEM 解锁**。 3. **安装必要的工具** 在 Ubuntu 系统中安装 `adb` 和 `fastboot` 工具: ```bash sudo apt update sudo apt install android-tools-adb android-tools-fastboot ``` 4. **解锁 Bootloader** 将 Nexus 5 连接到电脑,并进入 Bootloader 模式: - 关机后按住 **音量下键 + 电源键**,进入 Bootloader 界面。 - 在终端中执行以下命令解锁 Bootloader: ```bash adb reboot bootloader fastboot oem unlock ``` > 注意:解锁 Bootloader 会清除设备上的所有数据,请提前备份。 ### 下载 Sailfish OS 映像 1. **获取 Sailfish OS 安装包** 访问官方 Sailfish OS 开发者论坛或社区资源,下载适用于 Nexus 5系统映像文件。通常包括 `boot.img`、`system.img`、`recovery.img` 和 `vendor.img`。 2. **下载适用于 Nexus 5 的 Android 引导映像** Sailfish OS 需要一个兼容的 Android 引导映像来启动。可以从官方 Android 开源项目(AOSP)或第三方镜像源获取适用于 `hammerhead` 的 `boot.img`。 ### 刷入 Sailfish OS 1. **进入 Fastboot 模式** 确保设备处于 Fastboot 模式(重启设备并按住 **音量下键 + 电源键**)。 2. **刷入映像文件** 使用 `fastboot` 命令依次刷入各个映像文件: ```bash fastboot flash boot boot.img fastboot flash system system.img fastboot flash recovery recovery.img fastboot flash vendor vendor.img ``` 3. **重启设备** 刷入完成后,执行以下命令重启设备: ```bash fastboot reboot ``` 设备将首次启动 Sailfish OS,可能需要几分钟时间完成初始化。 ### 后续配置 1. **首次启动配置** Sailfish OS 启动后,系统会引导用户完成初始设置,包括语言、Wi-Fi 连接、账户登录等。 2. **安装 Jolla 商店和应用程序** Sailfish OS 支持通过 Jolla 商店安装应用程序。可以访问官方商店或使用终端命令安装必要的软件包。 3. **备份与恢复** 可使用 `adb backup` 和 `fastboot` 命令进行系统备份,确保在刷机失败时可以恢复原系统--- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值