找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 136|回复: 0

修改nexus 7的boot.img,打开系统调试

[复制链接]

2万

主题

128

回帖

10万

积分

管理员

积分
105860
发表于 2021-12-7 18:06:11 | 显示全部楼层 |阅读模式 IP:山东省青岛市 移动

登录后更精彩...O(∩_∩)O...

您需要 登录 才可以下载或查看,没有账号?立即注册

×
修改nexus 7的boot.img,打开系统调试 2015-09-09 14:19:53


给android设备刷入新的boot.img,可以在IDE下调试进程,否则都是“?”符号,只得在清单中加入debuggable属性,才能调试,这样很不方便!
1.png
Android 系统的 rom 最主要的就是 3 个文件: boot.img 、 system.img 、userdata.img 。其中 boot.img 存放着内核以及 Android 系统的配置信息,比如android 系统各文件夹的读写权限, adb 的权限。所以如果你要修改文件夹的写权限, adb 的 root 权限,修改 boot.img 对应的地方就 ok 了。 system.img 中存放的是系统的各种库,系统预装的 app 等, userdata.img 是一下用户的配置信息。 今天这里介绍怎么解开 boot.img 文件,修改对应的文件,使 system 文件夹有写权限, adb登录后为 root 用户。下面所使用的方法需要一定的 linux 系统基础,如果你对 linux 系统一点都不了解,请慎重进行下面的操作。

需要的工具: split_bootimg.pl , mkbootimg , mkbootfs

1. 拆包 boot.img ,需要用到一个 perl 脚本 split_bootimg.pl 。在 linux 终端里输入以下命令:

./split_bootimg.pl boot.img
2.png
执行上述操作后, boot.img 分成了两部分: boot.img-kernel 和 boot.img-ramdisk.gz , boot.img-kernel 是内核部分,这部分我们不能修改。 boot.img-ramdisk.gz 解压后得到的 boot.img-ramdisk 文件才是我们要修改的部分。

2. 用 file boot.img-ramdisk 命令查看该文件格式,发现它是 ASCII cpio archive 格式,要用特殊的命令打开。
3.png
解压及打开该文件的命令如下:

gzip -dc ../boot.img-ramdisk.gz | cpio -i
4.png
这样 boot.img-ramdisk 中的内容全部解压到了 ramdisk 目录下。

3.adb root ,找到 ramdisk 目录下的 default.prop 文件,将其中的 ro.secure=1 ,修改为 ro.secure=0 ; ro.debuggable=0 修改为 ro.debuggable=1 。这样你的 adb 就是root 了。

4. 文件夹可写,找到 ramdisk 目录下的 init.rc 文件,找到

mount yaffs2 mtd@system /system ro remount 这一行(不同的机子可能不一样,但是" mount " 、" /system ro remount "都是一样的),其中的 ro 代表 readonly ,将其改成 rw ,就可读写了,这个改的是 /system 文件夹。

在取得了 adb root 权限后,这一步完全不需要修改,在 adb 登录后通过执行:mount -o remount,rw /system 可以达到一样的效果,只是前面的修改是永久有效的,后面这种是临时的,重启后就无效了。

好,现在文件都已经修改完成了,只需要打包了。

5. 在 ramdisk 目录下执行:

cpio -i -t -F ../boot.img-ramdisk | cpio -o -H newc -O ./boot.img-ramdisk_new

在当前目录下生成 boot.img-ramdisk_new ,使用如下命令打包:

gzip boot.img-ramdisk_new

最后一步就是要生成 boot.img 了,这里需要一个工具 mkbootimg ,这个 android 源代码里编译而成的,如果你没有源代码,也可以直接去网上下载http://code.google.com/p/android ... gz&can=2&q= 。使用如下命令生成 boot.img

mkbootimg --kernel boot.img-kernel --ramdisk boot.img-ramdisk.gz -o newboot.img

该工具是 32 位的,如果在 64 位系统下运行则会出现" ./mkbootimg: command not found "的错误,需要安装以下文件:

sudo apt-get install lib32stdc++6 lib32z1 lib32z1-dev

sudo apt-get install ia32-libs

第 5 步也可以这样做:

#mkbootfs./ramdisk | minigzip > ramdisk.img

#mkbootimg--cmdline " androidboot.hardware=qcom loglevel=1 " --base 0x00200000 --pagesize 4096 --kernel boot.img-kernel --ramdisk ramdisk.img -o NewBoot.img

最后使用 fastboot flash boot newboot.img (或者刷机工具)将新的 boot.img 刷进系统,就 ok 了。因为只修改了 boot.img 部分,所以你先前装好的 apk ,下载的东西会完好无损的保存着,系统和原先一模一样,所以只有你备份了一个可用的 boot.img,你就可以随便刷你自己的 boot.img 了,万一修改的 boot.img 启动不了,可以把备份的boot.img 刷回去,系统一点改变都没有。

注:本文转载http://www.tuicool.com/articles/UjMNJf#c-12527,本人也亲自修改了nexus 7 wifi table android 5.0.1系统rom中的boot.img,现在可以在IDE下调试程序了!我把修改的boot.img上传至本文,方便大家使用。
下载地址:boot.img下载     fastboot工具下载
————————————————
版权声明:本文为CSDN博主「莫高窟同学」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jianchidaodi50/article/details/48315525



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|IOTsec-Zone|在线工具|CTF WiKi|CTF平台汇总|CTF show|ctfhub|棱角安全|rutracker|攻防世界|php手册|peiqi文库|CyberChef|猫捉鱼铃|手机版|小黑屋|cn-sec|分享屋 ( 鲁ICP备2021028754号 )

GMT+8, 2024-5-18 19:11

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表