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

问题描述 投票:0回答:2

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

android android-source ota
2个回答
8
投票

我不了解 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. 您是否在 logcat 中看到来自
    RecoverySystem
    的消息表明它将重新启动? (也许您有权限问题,并且您的应用程序不允许强制“重新启动恢复”)
  3. update.zip 的路径是否正确? (它应该在/cache/中)

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.