Thoughts on versioning:

So a problem exists where an ota, or userdata update can partially update
the files. Also, an OTA can come in that contains a newer policy then
userdata. So assuming that userdata is the newest, is not always feasible.
Time stamping on release servers, drift, etc, make using a time stamp not
feasible.

Initially, I thought the client setting policy in data could just wake up
on boot, check against a list of hashes and versions internally, and remove
the stale ones from userdata, reboot, and viola, your on the OTA files (or
invoke it via the setprop).

This would require the update agent to know which is older and newer,
perhaps time stamp on the device, or something, but those could be wrong
too. Essentially, it needs a cohesive way to know what version it is, so
the system can apply the proper policy.

Their is essentially two issues here:
1. How do we keep files from being partially updated incorrectly
2. How do we know which version is the correct one to apply

For issue one, Josh suggested a db and then a zip. He initially just though
of data, however the larger takeaway is perhaps a container of some sort is
a good way to keep the policies as a cohesive unit (solving number 1) for
both ramdisk and data.Not sure what the best container format would be,
offhand.

Issue 2, we just need a way to know that this policy version is higher,
please use it instead. Updating agents, places policy is reloaded, whatever
may want to make use of this. So having it as a part of the core container
(bundle) of policy files would be nice as well as an interface for
extracting them, etc. Then the larger issue is just properly creating the
version number.

Just my 2 cents, and is not meant to be the direction we have to go, but
rather get a good discussion on how we can solve these issues together.


-- 
Respectfully,

William C Roberts

Reply via email to