Android_OTA升级
平台:全志A40I
源码:Android 7.1 Linux 3.1
第一步: 把FanDisplay.apk拷贝到\\192.168.1.110\user01\a40i-7.1\a40i-7.1-fsp-new\android\ packages\apps\FanDisplay下 第二步: 运行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.110\user01\a40i-7.1\a40i-7.1-fsp-new\lichee\tools\pack目录下生成的img拷贝出来烧录 Z:\a40i-7.1\a40i-7.1-fsp-new\lichee\tools\pack //生成制作差分包: ./build/tools/releasetools/ota_from_target_files -i ./OTA/100000.zip ./OTA/1000002.zip ./OTA/upgrade100000100002.zip //放FanDisplay APP的地方 Z:\a40i-7.1\a40i-7.1-fsp-new\android\packages\apps\FanDisplay //生产的OTA的文件 路径: Z:\a40i-7.1\a40i-7.1-fsp-new\android\out\target\product\a40-p1\obj\PACKAGING\target_files_intermediates //生成的OTA的完整的包 路径: Z:\a40i-7.1\a40i-7.1-fsp-new\android\out\target\product\a40-p1 //1、修改了驱动6236 、6225的编译过程 Z:\a40i-7.1\a40i-7.1-fsp-new\android\device\softwinner\a40-p1\BoardConfig.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.1\a40i-7.1-fsp-new\android\device\softwinner\a40-p1\a40_p1.mk packages/apps/FanDisplay/libcontroller.so:system/lib/libcontroller.so \ Z:\a40i-7.1\a40i-7.1-fsp-new\android\out\target\product\a40-p1\system device/softwinner/a40-p1/fpga.bin:system/etc/fpga.bin Z:\a40i-7.1\a40i-7.1-fsp-new\android\device\softwinner\a40-p1 Z:\a40i-7.1\a40i-7.1-fsp-new\android\out\target\product\a40-p1\system\etc */ ———————————————————————————————————————————————————————————————————————————————————————————————— android\bootable\recovery 在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:\ota\android\vendor\aw\private\apk\Update 系统: 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.