如何在 AOSP - fslota 中制作自己的 OTA 应用程序?

How to make own OTA app in AOSP - fslota?

我们已经从源代码构建 Android,它在我们的设备上看起来不错。目前需要做自己的OTA流程,不知道怎么做。

我们尝试针对我们的 http 服务器实施 FSLOTa (https://github.com/embest-tech/android_packages_apps_fsl_imx_demo/tree/master/FSLOta),但文档非常差 - 所以我们只是将源添加到我们的源并编译它。

问题是,我们在盒子里看到了应用程序,但什么也没有。

或者有办法修改内置的 OTA 应用程序,当我们将服务器更改为我们的服务器时,我们至少会收到 http 请求。但是我们不知道,如何告诉 http 服务器将新版本装箱 - 任何清单文件? XML、JSON 还是?有例子吗?

或者是否有另一种简单的方法来实现 AOSP 的 OTA 更新?

非常感谢 D

我不了解 FSLOTa,也不了解您正在使用的设备。但是如果您想实施自己的 OTA 流程,您可以尝试以下操作(由于您的问题非常广泛,所以只是一个简短的草稿):

  1. 创建一个系统应用程序,不时检查您的服务器是否有新包。
  2. 如果检测到新包,它会将其下载到您的设备。
  3. 它将下载的update.zip复制到/cache/
  4. 然后应用程序创建以下文件 /cache/recovery/command 并在其中写入 --update_package=path_to_your_file。 (有关更多命令,请参阅 /bootable/recovery.cpp)
  5. 然后强制重启进入 recovery
  6. 恢复安装您的 ota 包。

更新: 我很快检查了您链接的应用程序。我会检查这些东西:

  1. 你知道 RecoverySystem.installPackage() 被调用了吗? (https://github.com/embest-tech/android_packages_apps_fsl_imx_demo/blob/master/FSLOta/src/com/fsl/android/ota/OTAServerManager.java#L282)
  2. 您是否在 RecoverySystem 中的 logcat 中看到一条消息,表明它将重新启动? (可能是你权限问题,你的app不允许强制"reboot recovery")
  3. 您 update.zip 的路径是否正确? (它应该在/cache/)

我一直在开发一个 OTA 更新程序 android 应用程序,您应该知道应用程序向后端服务器发送请求并接收一个关于可用更新的 JSON 文件。 iiiiiiiiiiiiiiiiiiiiii anwserd 在 non/AB 设备上一切正常,但对于 A/B 设备,android 应用程序在 /data 下下载 OTA 包 并且安装不会在恢复或任何情况下发生,更改将应用​​于重新启动之前未使用的插槽。