Commit Graph

2 Commits

Author SHA1 Message Date
Christopher Tate
f79f800864 Send UpdateLock broadcasts to manifest receivers
So that e.g. the system update service doesn't need to run all the time.

Bug 5543442

Change-Id: Icd0fcc7f771f7ba92ff190ffed0f0debba4bd911
2012-03-01 12:39:25 -08:00
Christopher Tate
66e817655a Introduce UpdateLocks - "now is not a good time for non-interactive OTA"
An "UpdateLock" works similarly to a wake lock in API: the caller is
providing a hint to the OS that now is not a good time to interrupt
the user/device in order to do intrusive work like applying OTAs.
This is particularly important for headless or kiosk-like products
where ordinarily the update process will be automatically scheduled
and proceed without user or administrator intervention.

UpdateLocks require that the caller hold the new signatureOrSystem
permission android.permission.UPDATE_LOCK.  acquire() and release()
will throw security exceptions if this is not the case.

The "is now convenient?" state is expressed to interested parties
by way of a sticky broadcast sent only to registered listeners.  The
broadcast is protected; only the system can send it, so listeners
can trust it to be accurate.  The broadcast intent also includes a
timestamp (System.currentTimeMillis()) to help inform listeners that
wish to implement scheduling policies based on when the device became
idle.

The API change here is a tiny one: a dump(PrintWriter) method has been
added to the TokenWatcher class to facilitate getting information out
of it for dumpsys purposes.  UpdateLock itself is still @hide.

Bug 5543442

Change-Id: Ic1548dd43935f45d4efc67f970abdc290a45f715
2012-02-28 15:01:30 -08:00