刷机脚本分析

一、ROM包整体结构的介绍以及ROM的文件与刷入到手机里的文件的关系。
1. ROM包根目录中包含文件夹:data(对应手机data分区数据),system(对应手机system分区),recovery(恢复官方recovery用)
二、刷机脚本的作用,语法。
1. 刷机脚本upadter-script用于把zip包中的文件刷入到手机中去。
2. update-binary和updater-script是配套的。
3. updater-script最前面的assert语句一般都是做机型验证的,做包的时候需要删掉,否则刷机可能失败。
4. recovery模式下和正常模式下getprop命令获取同样键的值可能不同。
例如recovery模式下和正常系统情况下获取的ro.product.device的值可能不同。
5. 有的第三方recovery是不支持getprop命令的,所以刷机脚本有机型验证脚本的最好要去掉。
6. 出现recovery界面出现assert failed之类的语句多半都是机型验证脚本没删掉的原因。
三、刷机脚本函数讲解。
1. mount函数挂载分区。第三个和第四个参数对应,第三个参数是设备分区,第四个参数是要挂载的位置。
2. format函数用于格式化分区。常见的就是格式化system分区,第三个分区参数不要写错,否则手机极可能变砖。
3. package_extract_dir 用于解压zip包的目录到手机的某个目录下面。
4. symlink用于创建软链接。第一个参数是实际存在的文件,后面的就是要创建的软链接文件。
5. set_perm 给文件设置权限。第一个参数是文件所属用户id,第二个是文件所属组的组id,第三个参数是要设置的
文件的权限,第四个是要设置权限的文件。
6. set_pert_recursive 递归设置文件夹下的文件权限,第三个参数是要设置的文件夹权限,第四个参数是文件夹之下的单个文件权限。
7. package_extract_file 解压zip包内的文件到手机中。例如直接解压boot.img到手机的/dev/bootimg分区或者先解压zip包内boot.img到手机
的tmp目录,然后再写入到手机的/dev/bootimg分区。
8. unmount 卸载分区。
9. ui_print  打印语句,刷机时recovery界面显示的刷机脚本里面的文字就是通过这个函数来实现的。

四、刷机脚本错误导致的刷机失败(status)错误分析,adb的使用概要介绍。

1. status 0  update-binary文件在本手机上不能执行,解决办法是换一个update-binary文件。
2. status 7  刷机脚本assert语句判断没有通过或者函数参数(例如format函数多给了参数)问题导致,通过查看/tmp/recovery.log可以看到是哪一句的问题。
3. recovery模式下,getprop读取的值是recovery里面的default.prop里面设置的值。
4. 判断update-binary是否可用,可以先把这个文件推送到手机里面去,然后执行一下,看看是否会出错。例如推送到/tmp目录下执行,执行前记得
先用chmod 777 命令设置可执行权限。


五、杂项

1. cat /system/build.prop | grep "device"  查找/system/build.prop文件里面含有字符串“device”的行。

2. mount -a    必须先用命令adb shell进入手机后才能使用,用于挂载分区表中的所有的分区。只有分区挂载上了,你才能把电脑上
的文件推送到手机的正确位置。也可以不进入手机,直接使用: adb shell mount -a来达到同样的效果。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值