• 使用update包更新系统文件的过程


    为只更新手机的一部分内容,而直接替换system中的文件,或想将app安装系统应用,可采用recovery模式下刷入update.zip包的方式实现这些需求。

    这样生成的更新包相对于完整的刷机包来说不仅小很多,而且能更加快捷的修改手机中的文件或应用程序。

    0x01 update包的组成

    update.zip主要由两个文件夹组成,META-INF文件夹和system文件夹。

    META-INF文件夹中包含签名的三个文件,以及刷机脚本update-script和从官方rom中提取的update-binary文件。

       

    system文件夹中包含app文件夹,或framework文件夹。当需要刷入系统应用时,将应用程序放在system/app/目录下;更新core.odex文件或core.jar文件时,则放在system/framework/目录下。

    每次修改更新包之后,都需要重新签名,相关的三个签名文件也会相应的被更改。

    0x2 刷机脚本文件修改注意事项

    由于只是更新系统中的部分文件,因此删除掉了完整刷机脚本中对system分区格式化的语句,保留了装载system分区的语句,以及释放刷机包中system目录文件到手机/system目录的语句:

    format("ext4", "EMMC", "/dev/block/mmcblk0p43", "0");

    mount("ext4", "EMMC", "/dev/block/mmcblk0p43", "/system");

    package_extract_dir("system", "/system");

    同时,删除了更新内核镜像文件boot.img的语句:

    assert(package_extract_file("boot.img", "/tmp/boot.img"),

    write_raw_image("/tmp/boot.img", "/dev/block/mmcblk0p40"),

    delete("/tmp/boot.img"));

    其它部分内容基本没做修改。需要注意的是,如果删除了set_perm或set_perm_recursive等相关权限设置的语句,可能会导致系统相关功能出现异常,因此建议不要删除这些内容。

    0x3 刷机包的重新签名与刷入

    根据需求在system的相应目录下放置好文件之后,如:

     

     

    使用APKSign或其它工具对刷机包进行刷机即可。如果手机recovery模式下的sdcard和一般使用的不同时,建议在recovery模式下再将刷机包push进去。

    __________________________________________________________ shoobie do lang lang ^^
  • 相关阅读:
    Security 前端页面配置
    使用HttpSession获取用户信息
    开启使用Tonken记住我功能
    基于注解的方式发送和订阅消费消息
    通过Security提供的SecurityContextHolder获取登录用户信息
    RabbitMQ 基于API的方式发送和消费消息
    TypeScript declare Object Array Interface methods All In One
    js get Set the first item All In One
    macOS run VSCode from terminal All In One
    在线 Java 语言编程 All In One
  • 原文地址:https://www.cnblogs.com/annaivsu/p/4819760.html
Copyright © 2020-2023  润新知