BluetoothManagerService for some reason leaks the Android's Bluetooth
MAC address via Settings.Secure which is normally readable by all
apps. This lets apps bypass the restriction on access to Bluetooth MAC
address from apps.
This commit fixes the issue by restricting access to bluetooth_address
secure setting (Settings.Secure). Only packages which hold the
android.permission.LOCAL_MAC_ADDRESS permission retain access.
This commit accordingly grants LOCAL_MAC_ADDRESS permission to the
system Shell app because a number of scripts (including Android CTS)
use "adb shell settings get secure bluetooth_address" as a convenient
way to query the device's Bluetooth MAC address over ADB. This is
acceptable because the user of the device can see the Bluetooth MAC
address and thus it's fine for shell to be able to see the address as
well.
Test: See CTS test added in the cts project in this topic.
Test: "adb shell settings get secure bluetooth_address" returns the
Bluetooth MAC address of the Android.
Test: "adb shell settings list secure | grep bluetooth_address"
returns the Bluetooth MAC address of the Android.
Test: Bluetooth works (toggling off/on, pairing, file transfer)
Bug: 33701414
Change-Id: I17b110b96eb3794b25c1661e93d29a7a003e3c9a
Atomic file requires sync between writers otherwise we may end
up with partially written settings file and no backup to recover.
Test: not testable by how we hold a mutex
bug:35915719
Change-Id: I97eebf869fa7e4989dcd2a29e4418c22706edcb8
1. Added a new API for a connected auto-fill service to
disable itself
2. Added a new shell command to destroy all pending sessions
which is used in CTS tests
3. Fixed a bug where the unbind timeout was in minutes
instead of seconds
Test: wrote CTS tests, all auto-fill tests pass
bug:35848030
Change-Id: I681605aa0b8c004a0f14e30b57117c291d89a894
Stop relying on the file marker recorded by the runtime. We have the
same data available from the DexManager.
The clean up CL to remove the handling of the file markers will follow.
Test: verify that "shared packages" (e.g. gmscore) are not compiled with speed-profile.
Bug: 32871170
(cherry picked from commit 07b6eabe79)
Change-Id: I2969b75fa77d38dde0073ef67aa89b1dc91237b5
Merged-In: I6cc5834ac88489e69896cd5fba9ed9968aa7f5a2
Pass '&' marker to dex2oat classpath when compiling secondary dex files.
This will skip class path checking when loading the oat files.
Test: adb shell cmd package compile -m speed -f --secondary-dex com.google.android.gms
oatdump --header-only --oat-
file=/data/user/0/com.google.android.gms/app_chimera/m/00000006/oat/arm64/DynamiteModulesC_GmsCore_prodmnc_alldpi_release
check that the class path contains the special '&' marker
Bug: 32871170
(cherry picked from commit aae35767b6)
Change-Id: I7f3c6743e749316ee02e8586a525ad28ae1ef765
Merged-In: If0628aeb4e3f5717604bfc4a87a4b1d438e5fa65
replacing a queued broadcast.
- Also don't replace a broadcast for a different user.
Test: Manual test with the following test code:
Intent intent = new Intent(Intent.ACTION_PROVIDER_CHANGED)
.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
AlarmManager alm = this.getSystemService(AlarmManager.class);
long time = SystemClock.elapsedRealtime() + 5 * 1000;
for (int i = 0; i < 5; i++) {
alm.setExact(AlarmManager.ELAPSED_REALTIME, time,
PendingIntent.getBroadcast(this, i, intent, PendingIntent.FLAG_UPDATE_CURRENT));
}
Without this CL, after the alarm fires, AlarmManagerService.mBroadcastRefCount
is left > 0 and the wake lock is held forever.
With this CL, mBroadcastRefCount eventually gets back to 0.
Bug: 35779096
Change-Id: I4e21c94b08f25f9ca1242182670ff4a69f8bd9f2
This reverts commit 693f3432ae.
P0: When playing encrypted content the Fugu displays a blank screen.
Test: with topic "surfaceview-without-wm" reverted, encrypted playback
works on ToT oc-release. See repro steps in 35917840#12.
bug:35917840
Change-Id: I37fa1e427daff3a1c18ed1c92d035421d891f67c