zoukankan      html  css  js  c++  java
  • Android_OTA升级

    Android_OTA升级


    平台:全志A40I

    源码:Android 7.1    Linux 3.1

    第一步:
    把FanDisplay.apk拷贝到\192.168.1.110user01a40i-7.1a40i-7.1-fsp-newandroid
    packagesappsFanDisplay下
    
    第二步:
    运行SecureCRT
    连接192.168.1.110 user01 123456
    cd ~/a40i-7.1/a40i-7.1-fsp-new/android
    source build/envsetup.sh
    lunch 24
    选择:a40_p1-eng  24
    
    //make clean;
    mmm -B external/fsp_mg_ctrl/
    
    rm -R /home/user01/a40i-7.1/a40i-7.1-fsp-new/android/out/target/product/a40-p1/obj/APPS/FanDisplay_intermediates/  /home/user01/a40i-7.1/a40i-7.1-fsp-new/android/out/target/product/a40-p1/system/app/FanDisplay/
    extract-bsp;make -j16;pack 
    make;make otapackage
    
    
    //拷贝OTA文件
    cp ./out/target/product/a40-p1/obj/PACKAGING/target_files_intermediates/*.zip ./OTA/301016.zip
    //生成制作差分包:
    ./build/tools/releasetools/ota_from_target_files -i ./OTA/301015.zip ./OTA/301016.zip ./OTA/upgrade301015301016.zip
    
    
    
    第三步:
    
    Z:/a40i-7.1/a40i-7.1-fsp-new/android/out/target/product/a40-p1/obj/PACKAGING/target_files_intermediates
    
    把\192.168.1.110user01a40i-7.1a40i-7.1-fsp-newlichee	oolspack目录下生成的img拷贝出来烧录
    Z:a40i-7.1a40i-7.1-fsp-newlichee	oolspack
    
    
    //生成制作差分包:
    ./build/tools/releasetools/ota_from_target_files -i ./OTA/100000.zip ./OTA/1000002.zip ./OTA/upgrade100000100002.zip
    
    
    
    //放FanDisplay APP的地方
    Z:a40i-7.1a40i-7.1-fsp-newandroidpackagesappsFanDisplay
    
    
    
    //生产的OTA的文件  路径:
    Z:a40i-7.1a40i-7.1-fsp-newandroidout	argetproducta40-p1objPACKAGING	arget_files_intermediates
    
    //生成的OTA的完整的包    路径:
    Z:a40i-7.1a40i-7.1-fsp-newandroidout	argetproducta40-p1
    
    
    
    
    
    //1、修改了驱动6236 、6225的编译过程
    Z:a40i-7.1a40i-7.1-fsp-newandroiddevicesoftwinnera40-p1BoardConfig.mk
    cd ~/a40i-7.1/a40i-7.1-fsp-new/android/hardware/libhardware_legacy
    mmm -B
    
    BOARD_HAVE_BLUETOOTH_NAME := ap6255
    
    BOARD_USR_WIFI := ap6255
    
    //2、添加删除so文件
    Z:a40i-7.1a40i-7.1-fsp-newandroiddevicesoftwinnera40-p1a40_p1.mk
    
            packages/apps/FanDisplay/libcontroller.so:system/lib/libcontroller.so 
    
    Z:a40i-7.1a40i-7.1-fsp-newandroidout	argetproducta40-p1system
    
    device/softwinner/a40-p1/fpga.bin:system/etc/fpga.bin 
    Z:a40i-7.1a40i-7.1-fsp-newandroiddevicesoftwinnera40-p1
    Z:a40i-7.1a40i-7.1-fsp-newandroidout	argetproducta40-p1systemetc
    
    
    
    */
    ————————————————————————————————————————————————————————————————————————————————————————————————
    
    androidootable
    ecovery
    
    
    在Android源码整编后执行make otapackage命令即可生成OTA整包
        OTA升级过程中命令make otapackage完成了三件事情:
            重新对system.img文件进行了打包;
            生成差分资源包,路径为out/target/product/<product-name>/obj/PACKAGING/target_files_from_intermedias/<product-name>-target_files-<version-name>.zip,差分资源包用于生成整包和差分包;
            生成OTA   整包,路径为out/target/product/<product-name>/<product-name>-ota-<version-name>.zip
    
    制作:
    
        整包:
            out/target/product/<product-name>/<product-name>-ota-<version-name>.zip        
            
        差分:        
            make;make otapackage  --->     生成差分资源包     A包     
            make;make otapackage  --->       生成差分资源包   B包
            ./build/tools/releasetools/ota_from_target_files  -i <A包> <B包>  <差分包名>
            
            
    写入:
    
        创建新进程安装升级包
        
        创建了一个新的进程并在新进程中运行升级包中的META-INF/com/google/android/updater-binary文件
        (参数binary已在此前赋值),此文件将按照META-INF/com/google/android/updater-script中的指令
        将升级包里的数据写入到存储区中
        
        
        ./bootable/recovery/updater目录
        通过查看Android.mk代码可知,文件install.c、updater.c将会被编译为可执行文件updater存放到目录
        out/target/product/<product-name>/obj/EXECUTABLES/updater_intermediates/中,而在生成差分资源
        包(target-files zipfile)时,会将此文件添加到压缩包中。
        
        
        OTA/bin/updater主要由bootable/recovery/updater目录下的install.c和updater.c编译而成    
        install.c中定义了读写系统存储区的操作函数(这才是重写系统数据的真正代码)并将这些函数与updater-script中的指令映射起来    
        updater.c会首先装载install.c定义的函数,之后便解析升级脚本updater-script,执行其对应的操作命令    
            
            
            
        Android源码:F:otaandroidvendorawprivateapkUpdate
        系统:         system/app/update.apk
            
            
    https://blog.csdn.net/teliduxing1029/article/details/51536560        
    https://blog.csdn.net/qq_31811537/article/details/85842762        
    https://blog.csdn.net/zhou_chenz/article/details/54917622        
    https://www.cnblogs.com/nuoyan/p/11861705.html
    
    
    
    
    author:panda_w




     笔记:

    1.

  • 相关阅读:
    git 每次push和pull都需要提交密码
    git push时报错refusing to merge unrelated histories
    打包时,node内存溢出问题解决方法
    dva中roadhog版本升级后带来的问题及解决方法
    Android
    Python Model : glob 文件路径查找
    Tools info
    Python class
    Life Info
    Char 10 格式化及如何正确使用
  • 原文地址:https://www.cnblogs.com/panda-w/p/11947363.html
Copyright © 2011-2022 走看看