我们已经从源代码构建了 Android,它在我们的设备上看起来不错。目前需要做自己的OTA工艺,但不知道怎么做。
我们尝试在我们的 http 服务器上实现 FSLOTa ( https://github.com/embest-tech/android_packages_apps_fsl_imx_demo/tree/master/FSLOta ),但是文档很差 - 所以我们只是将源代码添加到我们的源代码并编译它。
问题是,我们在我们的盒子里看到了应用程序,但它什么也没有。
或者有办法修改内置的 OTA 应用程序,当我们将服务器更改为我们的服务器时,我们至少会收到 http 请求。但是我们不知道,如何告诉 http 服务器将新版本装箱 - 任何 list 文件? XML、JSON 还是?有例子吗?
或者是否有另一种简单的方法来实现 AOSP 的 OTA 更新?
非常感谢
最佳答案
我不了解 FSLOTa,也不了解您正在使用的设备。但是如果您想实现自己的 OTA 流程,您可以尝试以下操作(由于您的问题非常广泛,所以只是一个简短的草稿):
- 创建一个系统应用程序,不时检查您的服务器是否有新包。
- 如果检测到新包,它会将其下载到您的设备。
- 它将下载的
update.zip
复制到/cache/
- 然后应用程序创建以下文件
/cache/recovery/command
并在其中写入--update_package=path_to_your_file
。 (有关更多命令,请参阅/bootable/recovery.cpp) - 然后强制重启进入
recovery
- 恢复安装您的 ota 包。
更新: 我很快检查了您链接的应用程序。我会检查这些东西:
- 你知道
RecoverySystem.installPackage()
被调用了吗? ( https://github.com/embest-tech/android_packages_apps_fsl_imx_demo/blob/master/FSLOta/src/com/fsl/android/ota/OTAServerManager.java#L282 ) - 您是否在
RecoverySystem
的 logcat 中看到它将要重启的消息? (可能你有权限问题,不允许你的应用强制“重启恢复”) - update.zip 的路径是否正确? (应该在/cache/)
关于android - 如何在 AOSP - fslota 中制作自己的 OTA 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43232197/