android的recovery.img修改加权限并写回的一些命令操作

这些内容在联想a385e上做试验,是一个屏有条纹的垃级手机,合约机,屏都比较垃。这个手机网上没有找到线刷包,我只找到了一个卡刷包。

就android 说,recovery.img与boot.img类试。recovery.img 带有的内存文件系统大一些,能完成一些恢复系统的功能。boot.img只是把一些常用的系统文件打包到内存文件系统中,而不常用的放到/system下的MMC中。所以两个的解包打包类似,参数调整也类似。

对高通与MTK数,两者打包的文件有所不同。高通可以直接读回分区得到。MTK要从原数据文件中先解出recovery与boot,的不同部分。

以高通为例:

1,

dd if=/dev/block/platform/msm_sdcc.1/by-name/recovery of=/sdcard/recovery13.img

dd if=/dev/block/mmcblk0p13 of=/storage/sdcard/recovery13.img

by-name/recovery这个目录没有读用mount ; cat /proc/partitions等命令分析 。看大小,多读一些分区回来。在Ubuntu有用:

$file recovery.img可以看出本分区是不是boot或recovery。进一步区分的话,可以用卡刷包有的install-recovery.sh可的命令信息。

对recovery.img尝试解包,解出的数据包中/etc/recovery_mmc.fstab文件也有分区信息,这在recovery 中的。boot下的分区有些没用的就没写出来。这些分区信息对分区操作相当关键。

2,./split_bootimg.pl recovery13.img

split_bootimg.pl网上找一个就可以,是个脚本。版本上有些不同。我下的早期版本,要改动一点地方,其中也有recovery.img打包的结构说明。

mkdir  ramdisk

cd ramdisk
gzip -dc ../recovery13.img-ramdisk.gz | cpio -i

主要可以改对的是方就是init.rc与default.prop两个文件。

比如:如果在recovery下,用adb shell 时出现:exec:'/sbin/sh'failed. permission denied. 就可以改init.rc,加入   

chmod 0755 /sbin
    chmod 0755 /sbin/sh
    chmod 0755 /sbin/toolbox

在解包打包时改评文件权限是无效的,只能在init.rc用命令改。这是因为如果编译用的是user的方式,启动adb 的是shell用户,这时adb是调用不了需要root的sh的。如果改动的内容少,直节在init.rc用命令差不多的方式改一下比较方便。

注:编译用的是user需不是用eng时,ro.secure=0。编译中的内核是不同的。在解包出来的文件中无论改什么,都不会让adbd以root用户启动。

如下的方式经尝试后可用,adb shell进入就是root权限。其中的su命令用的是系统下的,是动态编译出来的,不能用。

    chown root shell /tmp
    chmod 0775 /tmp
    chown root shell /sbin
    chmod 0755 /sbin
    chown root shell /sbin/sh
    chmod 6755 /sbin/sh
    chmod 0755 /sbin/toolbox
    chmod 0755 /sbin/adbd
#    chown root shell /sbin/su
 #   chmod 6755 /sbin/su

用这种方法,只用分包解包工具就可以就可以root手机了。只是读出的dd命令必需在root下才能用。要必找刷机包修改出来一个。这种方式可能是比较实用的手机root方法。android4.3.以前都比较好用。以后的boot.img是加密的。

3,打包

../mkbootfs ./ramdisk | gzip > ramdisk-new.gz

../mkbootimg --kernel recovery13.img-kernel --ramdisk ramdisk-new.gz --cmdline 'androidboot.hardware=qcom loglevel=1 vmalloc=200M' --base 0x00200000 --pagesize 4096 -o recovery-new.img

两个命令在编译原码的out/host工具下。版本不同可能有不同,自已编一下源码最好,电脑ipv6开通后,下载到编译好,做第二次,只用两个工作日,总时间不超24小时相当快的。

命令自带帮助,看一下就明白。

4,用fastboot flash recovery recovery-new.img写入。

也能用dd.我没试。

你可能感兴趣的:(android的recovery.img修改加权限并写回的一些命令操作)