Merge commit '0d725f7d5a7efd9dc63f6ddb67a619d659bb4428'
* commit '0d725f7d5a7efd9dc63f6ddb67a619d659bb4428':
Hold a wakelock during backup/restore/clear operations
We need to make sure we stay alive for the duration of a backup or (especially)
restore operation. The existing Handler-based timing system was simply not
properly functional, so it's been retooled to use a repeating alarm delivering a
broastcast PendingIntent to our registered receiver.
We acquire a partial wake lock in the broadcast receiver [i.e. while the Alarm
Manager is holding one for the duration of broadcast delivery] and pass the
wakelock object to the backup thread, which eventually releases it when it's
finsihed operations. A similar pattern is used for the threads handling restore
and clear.
Merge commit 'e15df4017c3625de700e9f9953073f38898bbc89'
* commit 'e15df4017c3625de700e9f9953073f38898bbc89':
If we can't get the restore set's metadata, don't continue
Merge commit '9701b3d594868bd6750d5887af560c6295ea091b'
* commit '9701b3d594868bd6750d5887af560c6295ea091b':
Remove the constraint to assign new uid when code path changes for system packages
Merge commit '4e3e50cfa7cf02270ed0dd454d5c51bf7065bd14'
* commit '4e3e50cfa7cf02270ed0dd454d5c51bf7065bd14':
Clean up the last two literal permission string usages
There are 2 types of vibrations: simple and repeated. Simple vibrations run for
a given length of time while repeated patterns run until canceled or the calling
process dies.
If a vibration is currently running and another request is issued, the newer
request always takes precedence unless the current vibration is a simple one and
the time left is longer than the new request.
If a repeating vibration is running and a new request overrides that vibration,
the current vibration is pushed onto a stack. Once the new vibration completes,
the previous vibration resumes. IBinder tokens are used to identify Vibration
requests which means that multiple calls to Vibrator.vibrate with the same
Vibrator object will override previous vibrations on that object.
1. the certtool.h is modified for avoiding the side effect,
for saving the configuration with wpa_supplicant.
2. put the loadLibrary back in CertTool.java
3. Fix incorrect JNI declarations.
Merge commit 'd7cd29da91ccc0aba1f1097e19366f9ca36c7ce1'
* commit 'd7cd29da91ccc0aba1f1097e19366f9ca36c7ce1':
Add facility to run setup wizard after an update.
Merge commit '2bbb80e183c6492689f8b10b2d0f5dfe9872a6ac'
* commit '2bbb80e183c6492689f8b10b2d0f5dfe9872a6ac':
Less logging in some places. More in others.
Merge commit 'a54755962ca7725d1e2b6cacbbaece6f1cbf5af4'
* commit 'a54755962ca7725d1e2b6cacbbaece6f1cbf5af4':
Cleanup a bunch of warnings in app widgets code.
Merge commit 'd18dc8c641cb4c89ffb205fb510e59a40ddf43fe'
* commit 'd18dc8c641cb4c89ffb205fb510e59a40ddf43fe':
resolve complex value in application context instead of system context.
Merge commit 'ce0bf069fe8c5c93f91cb70b0cd9365245d144c1'
* commit 'ce0bf069fe8c5c93f91cb70b0cd9365245d144c1':
Use secure settings for backup enable / transport selection
Without the metadata we can't verify the version number or the signatures of the
apps whose data we'd be trying to restore against the apps present on device.
This is not acceptable; we need to refuse to give data to an unauthenticated
app.
It's now possible to ask that the backup manager wipe the saved data for a given
application from the backing store. LocalTransport implements this now but the
Google backend does not yet. When the data is wiped, the on-device backup state
is also wiped to ensure that the next backup pushes all necessary data.
Bmgr has not yet been modified to actually call into this method, but it will
be soon.
The system now keeps a tag of the last version (just an arbitrary string)
that the setup wizard was run for. If this is different than the current
one in the setup wizard, then setup is launched at boot.
This introduces a new intent action for the part of the setup wizard that
gets run for an ungrade, which the system uses to find its current version
tag for comparing against what was last stored. It is up to the launched
setup activity update the stored setting to reflect its current value,
once it is happy.
This changes the backup service to use the settings provider instead
of system properties, correspondingly making it off by default and
allowing specific devices to define the transport. Also tweaks
the permission checks to use the permission symbol instead of raw
strings.
This requires some corresponding changes in the vendor projects.
We now schedule a periodic check of pending backups; if any apps have requested
a backup since the last check, we perform all of the pending backups. The
periodic backup scheduling matches the enable/disable state of the backup
manager; while backups are disabled entirely there are no periodic wakeups.
The period is set here to one hour. If an external caller (transport, the
'bmgr' command line tool, etc) requests an immediate backup pass, that is
performed and then the periodic backup check is rescheduled using that pass as
the starting point of a new interval.
Merge commit '6f317426e49e73ef3e50d8839877504039cd2fca'
* commit '6f317426e49e73ef3e50d8839877504039cd2fca':
Don't issue a deletion for the global metadata backup