recovery 升级过程执行自定义shell命令

  有时候我们需要,在升级的过程中,执行一些shell命令,来完成我们的一些需求,利用升级过程,进行一些特殊化的操作,思路如下:

 

第一:

    把我们需要执行的命令,写成一个test.sh脚本,然后在recovery串口环境下,source test.sh,保证我们的sh能够正常运行。

 

第二:

    把test.sh打包到升级包update.zip的根目录中去,主要是修改build/core/Makefile以及build/tools/releasetools/ota_from_target_files.

        

 

第三:

    修改升级脚本updater-script,增加执行test.sh的脚本函数,主要是修改build/tools/releasetools/ota_from_target_files,在生成的脚本中增加如下函数:

 

package_extract_file("test.sh","/tmp/test.sh")    //提取test.sh到tmp目录
set_perm/set_metadata                             //设置test.sh权限
run_program("/tmp/test.sh");                      //执行sh
delete("/tmp/test.sh"):                           //删除test.sh

 

 

    注意:set_permandroid L之后去掉了,只能使用set_metadata了。

 

第四:

 

    如果在升级执行过程,提示了selinux相关的权限,则需要增加recovery相关的selinux的权限

 

    至此,我们的功能即增加完成,升recovery升级的过程,会提取升级包update.zip中的test.sh/tmp目录,然后赋予test.sh可执行的权限,然后执行test.sh,最后删除/tmp/test.sh

转载于:https://www.cnblogs.com/codeking100/p/10338645.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值