zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Hadoop入门
    Redis缓存分布式高可用架构原理
    ES分布式搜索引擎架构原理
    Java锁,多线程与高并发,JUC并发包
    图算法--拓扑序列
    数据结构--数组模拟队列
    数据结构--数组模拟栈
    数据结构--数组模拟双链表
    数据结构--数组模拟单链表
    基础算法--双指针
  • 原文地址:https://www.cnblogs.com/codeking100/p/10338645.html
Copyright © 2011-2022 走看看