Following article will help, what are important factor required for OTA update in same Android Operating System as different Android Operating System
I always have a question about how Operating System Updated from one version to another. Because it will unique as well as updated one and huge package. Now I come to know the general knowledge on this topic. Hope this will help you people as well as I am sure this is very interesting topic.
Now let’s see what Operating System is. We know that Operating System is the software that will control the hardware or we can say Operating System will initialize the hardware to provide the essential feature to the users. So, Operating system have so many binaries. Then people ask what binaries is. Binaries are the packages that will flash into the Flash storage of the hardware and load to Random Access Memory for execute. Now we clear about how Android Operating System boots.
Now let’s see what the difference between two version of operating system should be. Hope this question raise between people. But, if use same vendor there will be no huge difference between the two different version of operating system except two factors,
- Update Engine Public Key
- USER data Encryption method
In common, Google release the Android Operating System and manufacturers/ vendor use the source code and modified, implement, and configure for their products. Update Engine is also google provide tool that will help to software update
Update Engine Public Key
Software update done by using Update Engine Client. There will be secure public key is there for Operating System as well as new package or Operating System or Over The Air (OTA) package. Before update, update Engine client will check/ compare the Update Engine Key between Current/ running Operating System as well as New Operating System which is going to update simply we can tell OTA package.
The file extension of Update Engine Public key is .pem and it will have certificate actually public key
This checking happened for every software update. This will not give any signature mismatch error if update going to happened for same Operating System.
So, now we needs the solution how to make the both operating system update engine public key should same, here I will provide some solutions,
- Update Engine Public Key generation methods are different between the operating system. So, what we do just use/copy the current operating system public key generation method to new operating system.
User Data Encryption Method
We know what is user data that is nothing but to store the files and logging purpose. We know that sdcard folder mounted in all board which is running under Android Operating System. In Android for every partition mount there will some disk encryption and decryption method will be there. Same for data partition mount there will be encryption mechanism. It may be different for each Operating System. How we can achieve this, as per the software update data partition also should be update. Same we discussed about the Update Engine Public key right, if it same version of Operating no problem but different version of Operating how we can achieve.
Yes, we can do it in many ways, Here I will discuss some limited solutions,
- Configure the current Operating system data partition encryption same as the new Operating System data partition encryption or vice versa. But I this work or will not work it is dependents on the environment as well as Vendors
- And one more way is just format/ wipe the current operating system data partition – This scenario we already know that factory reset
And final from my experiment, it will be easy to understand. I did in board levels. Just copy the PEM key and replace in current Operating and start the update and once update done just remove data partition. Finally reboot.