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

时间:2017-04-05 13:08:08

标签: android android-source ota

我们已经从源代码构建了Android,它在我们的设备上看起来很不错。目前我们需要制作自己的OTA流程,但我们不知道如何。

我们尝试对我们的http服务器实现FSLOTa(https://github.com/embest-tech/android_packages_apps_fsl_imx_demo/tree/master/FSLOta),但文档很差 - 所以我们只需将源代码添加到源代码并进行编译。

问题是,我们在我们的框中看到应用程序,但它什么都没有。

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

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

非常感谢你 d

1 个答案:

答案 0 :(得分:4)

我不了解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包。
  7. 更新: 我快速检查了您链接的应用。我会检查这些事情:

    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中看到它要重启的消息? (也许你有一个权限问题,你的应用程序不允许强制执行"重启恢复")
    3. update.zip的路径是否正确? (它应该在/ cache /中)