基于小米卡刷包制作属于自己刷机包

      刷机,众所周知,手机前提需要先解锁,才能刷我们定制的刷机包。

     http://www.miui.com/thread-7245699-1-1.html 该网站是小米大部分机型的刷机包地址,有喜欢刷机的可以下载

     要刷卡刷包时候,先要刷第三方的recovery,类似刷机系统,这里可以推荐奇兔刷机软件,比较傻瓜化,通俗易懂

     小米卡刷包是以zip的形式保存的,解开卡刷包,大致有这些文件,最主要是META-INF,刷机的核心地方

基于小米卡刷包制作属于自己刷机包_第1张图片

META-INF/com/google/android 下面是刷机的脚本

基于小米卡刷包制作属于自己刷机包_第2张图片

      update-binary就是为updater-script脚本的解释执行提供一些函数的支持,比如format,mount等等。而update-binary提供的函数支持是以函数调用即函数名+形参的形式呈现给调用者。在updater-script脚本调用这些函数时只需根据函数名即实参即可。
简而言之,我们就可以这样理解,要做好刷机包,一定要确保updater-script脚本中语法的正确,这就必须要知道update-binary提供的函数接口。

      updater-script 使用的一些方法,如果update-binary本身是不支持的,在recovery 刷机过程中,提示错误 error:6 表示使用了不正确的函数,这时候就要换别的函数方法。

      用编辑器打开updater-script 方法,可以看到大致的刷机流程,和常用的语法

     这里推荐个网站,常用语法解释说明https://my.oschina.net/kyeeliu/blog/53256,对语法有一定了解

    基于小米卡刷包制作属于自己刷机包_第3张图片

红色框框是在小米script刷机脚本上自己添加进去的,update-binary 支持的这些语法函数

但是当使用新版本小米卡刷包比如红米note5 红米6a ,update-binary(二进制文件)很多默认的语法函数都支持不了,这里有办法

第一,就是先刷小米的卡刷包,再刷自己的增量包,简单说update-binary(二进制) 能支持你需要语法的的脚本,重新做个卡刷包,只是修改部分功能,这块刷机比较麻烦,要弄两个包

第二,就是运行update-binary(这里不能是二进制,是sh 脚本语法),如果是update-binary 是二进制的话,run_program执行不了的,要写成sh语法可以执行

基于小米卡刷包制作属于自己刷机包_第4张图片

 

这里简单介绍替换system 里面的相关文件脚本操作,这里不关要拷贝到指定目录文件,要授予相关的权限(比如0644)

cp_perm() {
  cp -f $1 $2 || exit 1
  set_perm $2 $3 $4 $5 $6
}

set_perm() {
  chown $2:$3 $1 || exit 1
  chmod $4 $1 || exit 1
  if [ "$5" ]; then
    chcon $5 $1 2>/dev/null
  else
    chcon 'u:object_r:system_file:s0' $1 2>/dev/null
  fi
}

install_nobackup() {
  TARGET="${INSTALLER}${1}"
  ui_print "- copy file $TARGET"
  cp_perm $TARGET $1 $2 $3 $4 $5
  
}

install_nobackup /system/etc/hosts                       0    0 0644
install_nobackup /system/etc/sysconfig/power-save-conf.xml  0    0 0644

 

这些懂点Linux 知识的很简单,简单说就是通过脚本执行指令,达到我们替换或者替代系统文件

 

你可能感兴趣的:(基于小米卡刷包制作属于自己刷机包)