recovery 升级过程执行自定义shell命令
来源:互联网 发布:惠勒延迟实验知乎 编辑:程序博客网 时间:2024/06/05 08:08
有时候我们需要,在升级的过程中,执行一些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"); //执行shdelete("/tmp/test.sh"): //删除test.sh
注意:set_perm在android L之后去掉了,只能使用set_metadata了。
第四:
如果在升级执行过程,提示了selinux相关的权限,则需要增加recovery相关的selinux的权限
至此,我们的功能即增加完成,升recovery升级的过程,会提取升级包update.zip中的test.sh到/tmp目录,然后赋予test.sh可执行的权限,然后执行test.sh,最后删除/tmp/test.sh
阅读全文
0 0
- recovery 升级过程执行自定义shell命令
- Recovery command 升级命令脚本
- Android系统Recovery工作原理之使用update.zip升级过程分析(八)---升级程序update_binary的执行过程
- Android系统Recovery工作原理之使用update.zip升级过程分析(八)---升级程序update_binary的执行过程
- Android系统Recovery工作原理之使用update.zip升级过程分析(八)---升级程序update_binary的执行过程
- Android系统Recovery工作原理之使用update.zip升级过程分析(八)---升级程序update_binary的执行过程
- Android系统Recovery工作原理之使用update.zip升级过程分析(八)---升级程序update_binary的执行过程
- Android系统Recovery工作原理之使用update.zip升级过程分析(八)---升级程序update_binary的执行过程
- recovery image的OTA升级过程
- Android--Recovery模块之升级过程
- recovery 升级过程LED灯闪烁
- Android系统Recovery工作原理之使用update.zip升级过程---updater-script脚本语法简介以及执行流程
- android recovery升级原理及update.zip升级过程分析
- Android系统Recovery工作原理之使用update.zip升级过程分析(八)---解析并执行升级脚本updater-script
- Android系统Recovery工作原理之使用update.zip升级过程分析(八)---解析并执行升级脚本updater-script
- Android系统Recovery工作原理之使用update.zip升级过程分析(八)---解析并执行升级脚本updater-script
- Android系统Recovery工作原理之使用update.zip升级过程分析(八)---解析并执行升级脚本updater-script
- Android系统Recovery工作原理之使用update.zip升级过程分析(八)---解析并执行升级脚本updater-script
- first blog
- 核对表:自说明代码
- java主线程结束和子线程结束之间的关系
- http://blog.csdn.net/vaintwyt/article/details/42043269
- 12c with语句增强功能
- recovery 升级过程执行自定义shell命令
- AVFormatContext,AVStream,AVCodecContext,AVPacket,AVFrame之间的关系分析
- [JZOJ100019]A
- jqgrid获取全部数据
- 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
- eclipse背景设置什么颜色缓解眼睛疲劳之一
- ierport JasperReport 日期类型java.sql.Timestamp判断是否为空 ($F{date}==null?"":String.valueOf($F{date}.getYear
- Namenode 和 Datanode
- ML_W8_Anomaly Detection_Density Estimation