简体   繁体   中英

How to make own OTA app in AOSP - fslota?

we have build Android from sources and it looks good on our device. Currently we need to make own OTA process, but we dont know how.

We try to implement FSLOTa ( https://github.com/embest-tech/android_packages_apps_fsl_imx_demo/tree/master/FSLOta ) against our http server, but documentation is very poor - so we simply add source to our source and compile it.

Problem is, that we see app in our box, but it doesnt nothing.

Or there is way to modify built in OTA app, when we change server to our server, we get http request at least. But we dont know, how tells http server to box about new version - any manifest file? XML, JSON or? Is there any example?

Or is there another simple way for implements OTA update to AOSP?

Thank you very much D

I dont know about FSLOTa nor do I know about the device you are working on. But If you want to implement your own OTA process you could try the following (Just a short draft since your question is very broad):

  1. Create a system app that checks from time to time your server for new packages.
  2. if it detects a new package it downloads it to your device.
  3. it copies the downloaded update.zip to /cache/
  4. Then the app creates the following file /cache/recovery/command and writes --update_package=path_to_your_file in it. (For more commands see /bootable/recovery.cpp)
  5. Then it forces a reboot into recovery
  6. recovery installs your ota package.

Update: I quickly checked the app you linked. I would check these things:

  1. Do you get till the point where RecoverySystem.installPackage() is called ? ( https://github.com/embest-tech/android_packages_apps_fsl_imx_demo/blob/master/FSLOta/src/com/fsl/android/ota/OTAServerManager.java#L282 )
  2. Do you see a message in logcat from the RecoverySystem that it is going to reboot? (maybe you have a permission problem and your app is not allowed to force "reboot recovery")
  3. Is the path to your update.zip correct? (it should be in /cache/)

i have been developing an OTA updater android application, you should know application send request to backend server and receive a JSON file about the available update. everything iiiiiiiiiiiiiiiiiiiiii anwserd was ok on non/AB devices, but for A/B devices, the android application downloads the OTA package under /data and installation will not happen in recovery or anything, the changes will apply to the unused slot before REBOOT.

I think the Lineage OS Updater package is a good answer to your question: https://github.com/LineageOS/android_packages_apps_Updater

You can easily embed it to your AOSP project, and has strong documentation. I recommend to visit the following question, too: How to use Lineage OS OTA in AOSP projects?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM