修改Nexus5的boot.img
来源:互联网 发布:js pop 编辑:程序博客网 时间:2024/05/01 02:21
转自: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程序运行的库。
- 修改Nexus5的boot.img
- boot.img的修改
- ubuntu下修改boot.img的方法
- 关于boot.img和recovery.img的编辑和修改
- 关于boot.img和recovery.img的编辑和修改
- 关于boot.img和recovery.img的编辑和修改
- 关于boot.img和recovery.img的修改和编辑
- 修改boot.img
- 修改boot.img .
- 修改boot.img
- boot.img修改大全
- 修改boot.img
- 修改boot.img文件的工具,mkbootfs,mkbootimg,unpackbootimg
- 修改nexus 7的boot.img,打开系统调试
- 解包 boot.img 修改后,新生成 boot.img
- boot.img的生成
- boot.img的分析
- boot.img的生成
- 关于Class.getResource和ClassLoader.getResource的路径问题
- git问题解决方法
- Error configuring application listener of class XXXX
- oracle11g 回收临时表空间
- 去掉iphone Safari浏览器下input submit 和按钮的圆角
- 修改Nexus5的boot.img
- 版本控制工具git安装与使用详解
- 从提交表单中通过反射获取多个对象
- 如何搭建git服务器(转载)
- 设计模式(09) 适配器模式(简单入门 结构模式)
- 最小割最大流定理
- TensorFlow_MNIST 保存、恢复模型及参数
- (解决方案)extjs如何禁用gridPanel中gridcolumn的列菜单及列排序功能
- stringToInteger 把字符串转换为int数