Reject non-staged APEX install if there is staged install of same APEX
There is a interesting interaction between staged and non-staged installs of the same APEX. Let's say an installer staged v1 -> v2 APEX update, and then does a non-staged update to v3. After device is rebooted, apexd will apply the staged v1 -> v2 session, silently downgrading an APEX from v3. For apks, this problem is solved by storing an expected version. When an APK session is being applied during boot, Package Manager will check if the currently installed version is equal to the expected one stored in the staged session. If they mismatch, an install is failed. Unfortunately, implementing the same logic in apexd will require a non-trivial refactoring which is too late to do in S. Instead we are just going to fail the non-staged installation. Test: atest StagedInstallInternalTest Bug: 187864524 Change-Id: I9000f40cede9a324a5059a09deb8eb5be13b21f9
Loading
Please register or sign in to comment