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

Dar*_*ius 4 android ota android-source

我们已经从源代码构建了 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

III*_*III 7

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

  1. 创建一个系统应用程序,不时检查您的服务器是否有新包。
  2. 如果它检测到一个新包,它会将其下载到您的设备。
  3. 它将下载的复制update.zip/cache/
  4. 然后应用程序创建以下文件/cache/recovery/command并写入--update_package=path_to_your_file其中。(更多命令见/bootable/recovery.cpp)
  5. 然后它强制重新启动进入 recovery
  6. recovery 安装您的 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. 您是否在 logcat 中看到RecoverySystem将要重新启动的消息?(也许你有权限问题,你的应用程序不允许强制“重启恢复”)
  3. update.zip 的路径是否正确?(它应该在 /cache/ 中)