Commit Graph

65541 Commits

Author SHA1 Message Date
Lenka Trochtova
f15cf38311 Introduce a new user restriction for disallowing Bluetooth.
Only the device owner will be able to set the restriction
and the restriction will prevent usage of Bluetooth on the
entire device - i.e. in all the users.

Test: cts-tradefed run cts -m CtsDevicePolicyManagerTestCases --test com.android.cts.devicepolicy.UserRestrictionsTest
Test: cts-tradefed run cts -m CtsDevicePolicyManagerTestCases --test com.android.cts.devicepolicy.DeviceOwnerTest#testBluetoothRestriction

Bug: 32895300

Merged-In: I2875cf178cb16eca1965d0ba965d1cd3d8db2ad5

Change-Id: I2875cf178cb16eca1965d0ba965d1cd3d8db2ad5
2016-12-05 10:46:58 +01:00
Tobias Thierer
1e498a96c1 Merge "Migrate StrictJarVerifier and ShortcutPackageInfo to java.util.Base64" 2016-12-05 09:28:47 +00:00
Treehugger Robot
d758ce1586 Merge "Add Settings.Global.WIFI_WAKEUP_ENABLED flag." 2016-12-02 23:41:36 +00:00
Treehugger Robot
eda1af611f Merge "Add new hostingType for startProcessLocked() that selects using the WebViewZygote." 2016-12-02 17:02:31 +00:00
Tobias Thierer
9f00d71787 Migrate StrictJarVerifier and ShortcutPackageInfo to java.util.Base64
Previously, they weres using libcore.io.Base64, which is @deprecated.

The two implementations' encoders produce the exact same result.

The two implementations' decoders' behavior differs for malformed
input:
 - In case of error, libcore.io.Base64.decode() returns null while
   java.util.Base64.getDecoder().decode() throws.
 - java.util.Base64 tends to be stricter about rejecting malformed
   input; specifically, it allows neither whitespace nor unexpected
   '=' characters (should only occur in the padding) whereas
   libcore.io.Base64.decode() leniently allows them throughout the
   input.
 - if the input terminates prematurely, libcore.io.Base64 tends to
   return fewer bytes (stops at a four byte boundary).

The behavior differences for malformed Base64 encoded data should
not affect ShortcutPackageInfo because it should only need to deal
with XML attribute values written by itself, which are well-formed.
Note that this CL does not lead to any known changes of the encoding
step, so values written by earlier versions should not cause problems
when read by later versions of ShortcutPackageInfo.

StrictJarVerifier may now reject or behave differently for .jar /
.zip files with malformed attribute values but this seems okay since,
per its name, it is meant to be strict. For example, after this CL,
StrictJarVerifier will no longer accept algorithm + "-Digest"
attribute values with extra whitespace or padding characters as valid.

Test: Confirmed that the two implementations' encoders produce the
      same result by running the following code just before this CL:
      assertEquals(
          libcore.io.Base64.encode(allBytes()),
          Base64.getEncoder().encodeToString(allBytes()));
      where allBytes() returns a byte[] with values (byte) 0 .. (byte) 255
Test: Test that phone still boots after flashing code that includes
      this CL.
Test: CtsLibcoreTestCases

Bug: 31292683

Change-Id: I775d32f329f693514a8f14d87e1ef0d7a757e6c3
2016-12-02 16:20:53 +00:00
ltrochtova
8874fcf97f Revert "Introduce a new user restriction for disallowing Bluetooth."
This reverts commit 69f9d321ac.

Change-Id: I5859b262a741d1fe8e8b61e142eecf7d742d8d41
2016-12-01 20:50:53 +00:00
Lenka Trochtova
69f9d321ac Introduce a new user restriction for disallowing Bluetooth.
Only the device owner will be able to set the restriction
and the restriction will prevent usage of Bluetooth on
the  entire device - i.e. in all the users.

Test: cts-tradefed run cts -m  CtsDevicePolicyManagerTestCases --test com.android.cts.devicepolicy.UserRestrictionsTest
Test: cts-tradefed run cts -m  CtsDevicePolicyManagerTestCases --test com.android.cts.devicepolicy.DeviceOwnerTest#testBluetoothRestriction

Bug: 32895300

Change-Id: Iae77647b1e48be6b8efbeccdff6a3d468a0e174d
2016-12-01 10:56:51 +01:00
Stephen Chen
8ca96c1f3c Add Settings.Global.WIFI_WAKEUP_ENABLED flag.
Set the flag default to false. This addition is for the
Android Wi-Fi Snooze project:
https://docs.google.com/document/d/1zewDZ6Ne-qH7zKFDtcSx55f9jPauZwT5VvOs1uVNXf8/edit#

Bug: 32920000
Bug: 32913119
Test: runtest --path
frameworks/base/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsProviderTest.java

Change-Id: I597d5dd643e8044315cc6d7553ae5740485a0552
2016-11-30 18:31:44 -08:00
Amin Shaikh
aa09aa0210 Refactor NetworkScoreAppManager for testing.
Test: runtest frameworks-services && runtest frameworks-core
Change-Id: Ie2172009e9ba0438050488fe0aea6408f852c2c2
2016-11-30 13:52:43 -08:00
Treehugger Robot
6e54c31f0a Merge "Add ACTION_WIFI_SAVED_NETWORK_SETTINGS to Settings." 2016-11-30 20:25:13 +00:00
Robert Sesek
c5f86647b1 Add new hostingType for startProcessLocked() that selects using the WebViewZygote.
Test: m
Test: angler boots
Test: Turn on Multiprocess WebView in Developer Options and launch the WebView
      Shell. The sandboxed_service parent process is the webview_zygote.

Bug: 21643067
Change-Id: I9dab548853372fd91f6bbe204cc8686ef2e94448
2016-11-29 11:08:49 -05:00
Stephen Chen
767e453cdf Add ACTION_WIFI_SAVED_NETWORK_SETTINGS to Settings.
Exposes an activity that deep links into saved network Settings.

Bug: 32738882
Test: gts test
Change-Id: Ic639b7543439bbe52941fa58a74a767a4a0f8a76
2016-11-28 16:26:16 -08:00
Hall Liu
b222d2045d Add removeState method to StateMachine
Method to be used by BluetoothRouteManager in Telecom.

Test: unit tests in Telecom
Change-Id: Icdd1a3d42224246a5f26100fabb26313ce83b14c
2016-11-23 11:52:58 -08:00
Jakub Pawlowski
76f517a173 Bluetooth: report proper advertiser status on error
When advertiser is not started because too many advertisers are
registered, return proper error code.

Bug: 30622771
Test: sl4a ConcurrentBleAdvertisingTest
Change-Id: I57384ff30132e9a7ee17dcf191ff89baa7abf1ef
2016-11-22 13:38:15 -08:00
Treehugger Robot
45c0c6939f Merge "Add SystemProperties.reportSyspropChanged()." 2016-11-22 09:43:23 +00:00
Treehugger Robot
67fe28d925 Merge "StrictMode to detect untagged network traffic." 2016-11-21 21:33:15 +00:00
Jeff Sharkey
4db1632b3a Merge "Stub Binder API." 2016-11-21 20:10:29 +00:00
Jeff Sharkey
763a140796 StrictMode to detect untagged network traffic.
Define some constants for early use in AOSP code.

Test: builds, boots, all common traffic tagged
Bug: 30943431
Change-Id: Ia58a8933bccfddbc027afb78c63ae65bd71ce562
2016-11-21 12:15:16 -07:00
Jeff Sharkey
1324531355 Stub Binder API.
Provide a stub API for AOSP code to call.

Test: builds
Bug: 32715088
Change-Id: Iab74d269e795a722e82fd3fa304200d57d152f57
2016-11-21 18:11:25 +00:00
Martijn Coenen
0754b27b56 Add SystemProperties.reportSyspropChanged().
To support notifying libutils of system property
changes.

Bug: 31262344
Test: builds
Change-Id: Iea77532eaa84d00f7d640edd1e3a1da66afdadc5
2016-11-21 17:57:13 +00:00
Treehugger Robot
566b1c80e4 Merge "Precreate the classloader for the WebView." 2016-11-21 16:54:53 +00:00
Torne (Richard Coles)
3b6ca99b10 Precreate the classloader for the WebView.
We want to create the classloader for the WebView in advance in the
zygote so that it can preload Java and native code for its children, but
the zygote can't talk to the package manager (so doesn't have a
PackageInfo for the APK) and also doesn't have an ActivityThread, so
constructing a LoadedApk is difficult.

Instead, we use the fact that ApplicationLoaders contains a
process-global cache of classloaders for APKs, and prepopulate a cache
entry without constructing a LoadedApk. This requires making
ApplicationLoaders public. To calculate the correct library paths from
the information the zygote has, we reuse the logic in LoadedApk (which
is already public, and just needs a small change to allow a null
ActivityThread when checking for instrumentation).

The other parameters for classloader creation (target SDK, bundled app,
etc) are hardcoded to usable values for the WebView's case. WebView
never needs to use any system libraries that aren't public so claiming
it's not bundled is fine even when that isn't actually true, and WebView
will always target the current platform API level.

Once the classloader is created, look up the factory class and call
preloadInZygote on it to give it a chance to preload the native library
and do other shared initialisation.

Bug: 21643067
Test: enable multiprocess WebView, examine librank output to see sharing
Change-Id: I696ead637e3f7382bcc58cfaf61eac5921862015
2016-11-21 15:04:13 +00:00
Jerry Zhang
b37d826204 Merge changes from topic 'usb_bugfixes-mirror-aosp-master'
* changes:
  Refactored setCurrentFunction and setUsbDataUnlocked into single method.
  Clean up persistent usb state on boot.
  Fixed handling of usb state during adb changes.
2016-11-16 23:59:33 +00:00
Treehugger Robot
224d9e48fa Merge "CountDownTimer: not skip onTick()" 2016-11-16 07:55:27 +00:00
Jerry Zhang
935372bfd6 Refactored setCurrentFunction and setUsbDataUnlocked into single method.
This gets rid of an extraneous configuration change when going from
adb to adb + file transfer as previously the config would have been
reset once for functions and once for data unlocked.

It also simplifies some of the code.

Test: manually changing usb configurations
Change-Id: Ica10a195338b2189db13113f44657393db110bee
(cherry picked from commit 7a396be6d5)
2016-11-15 15:29:45 -08:00
Neil Fuller
8631e19d38 Merge "Correctly handle when the user has no explicit time_12_24 setting" 2016-11-15 16:39:42 +00:00
Neil Fuller
c66ec40d38 Correctly handle when the user has no explicit time_12_24 setting
The code would previously interpret "null" (meaning the user
hasn't touched the setting in the Settings app) as meaning
"use 12 hour format". The actual meaning of "null" is
generally accepted in the platform as
"use the locale default". For example, the Settings app does
this, as does the code in libcore.icu.LocaleData. For
locales where the default is "use 12 hour format" anyway
this wasn't obvious. However, locales like Germany should
default to  24 hour, and then the setting is displayed
incorrectly in the Settings app.

Also, German devices boot for the first time with 12 hour SHORT
and MEDIUM time formats too. After the user had explicitly set
the format the setting would be correct.

There appear to be no tests for this behavior, presumably
because of the difficulty in forcing the setting to "unset"
which would have to have to happen before the app was launched,
and the fact that CTS tests run in the US locale.

Bug: 32868036
Test: Manual testing with a device set to German
Change-Id: Ifd2e8d345f6afee467d7525d6793fc8fda37c900
2016-11-14 16:06:42 +00:00
Jakub Pawlowski
3d83b0e90b Bluetooth: advertising improvements
This patch removes isPeripheralModeSupported(), hidden public method
which is always returning true. It also modify the BluetoothLeAdvertiser
to be able to use advertising instance with instance id equal 0.

Bug: 30622771
Bug: 24099160
Change-Id: Id31582621dbe56d5c3a8d4ee5cd296af66a5f026
2016-11-11 23:28:32 +00:00
Treehugger Robot
264d1f12a3 Merge "fixed applyConfigurationToResourcesLocked WeakReference is null" 2016-11-11 03:16:42 +00:00
Jakub Pawlowski
f465823f6d BLE OOB Pairing - parse address type (5/5)
When address type is not parsed, creating bond to devices not using
random address is impossible.

Bug: 32780409
Test: try pairing with nRF52DK using random address
Change-Id: Ie6cc1f8c008d43b2acd021b47f9bbfb1f63472e8
2016-11-10 19:51:49 +00:00
liangweikang
a9c9bf5106 fixed applyConfigurationToResourcesLocked WeakReference is null
https://code.google.com/p/android/issues/detail?id=226956

Test: compile anr monkey test

Signed-off-by: liangweikang <liangweikang900911@gmail.com>
2016-11-09 01:40:33 +00:00
Steven Moreland
f3c53496c0 Update for namespaced services in hwservicemanager.
Test: end to end, hidl_test_java
Bug: 31861268
Change-Id: I3e91cf8a87f9345d4ae0650e521414407c7fc780
2016-11-08 08:53:16 -08:00
Etan Cohen
0849ded008 [NAN-AWARE] Rename NAN to Aware
~Rename only (and any reformatting needed to pass lint) - no
functional changes!

Remove android.net.wifi.nan.STATE_CHANGED from manifest:
redundant/remnant of an older configuration.

(cherry-pick of commit a61b9fb569)

Bug: 32263750
Test: All unit tests and integration (sl4a) tests pass.
Merged-In: Ie4ff675fa61041e8fcf6a9bf9900ea835d0a7614
Change-Id: I4206d2fd722dc7dec9df4aee5c818101d7f9dccc
2016-11-05 09:41:38 -07:00
Joseph Pirozzo
b8fc0679e8 MAP MCE
Fix @LINK to @link in javadoc.

Bug: 30467210
Change-Id: Icac176947bee971c3f5d11fd4166cf8ceb0a437e
(cherry picked from commit f5fba751d360bbe8294c4640f5ad12a990f13122)
2016-11-01 17:39:16 -07:00
Joseph Pirozzo
631768d814 MAP MCE
Add MAP client code into packages/apps/Bluetooth.  Changes here are to
define the MAP MCE interface and enable its selection when running on a
device that is also running a PBAP client (Car Kitt).

Bug: 30467210
Change-Id: Ifa2cdea7d67f63a2b5f3d971df8ec6d321dc5fee
(cherry picked from commit 433b3054847951e8e7b3864d11990604a66b8651)
2016-11-01 17:39:16 -07:00
Tomasz Mikolajewski
7f64c195f7 Merge "Add support for opening JAR/ZIP files via FD." 2016-11-02 00:24:07 +00:00
Bryce Lee
f6b74dea04 Add a way to query for supported Bluetooth profiles.
Currently there is no way to get the profiles supported by the Bluetooth
adapter. Asking for a profile proxy of an unsupported profile does not
fail and can lead to code indefinitely waiting for the proxy response. This
new code will allow for checking the supported profiles before asking for
the proxies.

Bug: 26451648
Change-Id: I4b48e7151f5ca53851aa3b967c143fae140ecd34
(cherry picked from commit b1301fa284)
2016-11-01 15:13:04 -07:00
Treehugger Robot
8bcd159234 Merge "Zygote: Avoid string concatentation for systrace" 2016-11-01 15:38:50 +00:00
Tomasz Mikolajewski
6c3df1543c Add support for opening JAR/ZIP files via FD.
Test: Upcoming change in DocumentsUI uses this feature.
Bug: 31783726
Change-Id: Ia74e9bdb66722dfb2855380375a99cc94d288b2e
(cherry picked from commit 5a5c44a2e3)
2016-11-01 09:25:59 +09:00
Sanket Agarwal
773297a83e Configuration for priority/auto-connection for PAN.
We protect the auto-connection via a flag so that it is only enabled on
some devices.

Bug: b/30679978
Change-Id: I5b7f273e09a659b561913d5c6f3a76feb245e6ce
(cherry picked from commit 1f09d5f255980488cabd55a5c44a5737e24541d8)
2016-10-31 17:45:32 +00:00
Marie Janssen
6a383a7d32 Bluetooth: prevent enabling BLE in airplane mode
Enabling BLE in airplane mode puts BluetoothManagerService in an
unexpected state which causes Bluetooth to be on when airplane mode
is disabled.

Also fixes a bug where a crash of a BLE client would trigger a restart
into ON mode.

Test: SL4A BleBackgroundScanTest:test_airplane_mode_disables_ble

Bug: 32140251
Bug: 32140271
Bug: 32369494

Change-Id: Ie65157e65c3a1ca914f567a7a0c631175d1e5835
2016-10-31 09:06:36 -07:00
Andreas Gampe
c425362049 Zygote: Avoid string concatentation for systrace
Avoid the allocation of an unneeded string. With more than 4000
classes being preloaded, this adds up.

Test: m
Test: device boots
Change-Id: I61f10f61ebdd08d17e09aaedd8bf54cc40c41838
2016-10-28 18:19:30 -07:00
Sanket Agarwal
52a04e4467 Use UUIDs for call management in Headset Client (HF)
Using UUIDs that are managed by the service gives more control and error
handling in the service since it has control over assigning them.

Bug: b/29788044
Change-Id: I8483f8e61a33302ba95d544828947d7fb4a21be9
(cherry picked from commit dbeab2c6e12693fe9b06b6a680677da5325c9230)
(cherry picked from commit 40bb6f3f8f)
2016-10-28 18:16:53 +00:00
Jakub Pawlowski
1b49e6eb04 Separate LE scanner from GATT client (1/4)
Right now, LE scanning functionality is combined with the GATT client.
This is the source of various bugs, like scans suddenly stoppinging when
a GATT client is killed. It also increases memory consumption, because
we associate many structures with a GATT client, which are not necessary
when just scanning.

Test: sl4a BleScanApiTest ConcurrentBleScanTest
Change-Id: I0c25bd4a58bb430eb0ee4100d5f2bbab194f9621
2016-10-27 23:09:35 +00:00
Svetoslav Ganov
f9e2ad0b3c Add Bluetooth toggle prompts - framework
If permission review is enabled toggling bluetoth on or off
results in a user prompt to collect consent. This applies
only to legacy apps, i.e. ones that don't support runtime
permissions as they target SDK 22.

Also added a configuration resource which controls whether
permission review mode is enabled. By default it is not and
an OEM can change this via an overlay. For now we also keep
the old mechanism to toggle review mode via a build property
which is still used and will be removed when clients have
transitioned.

bug:28715749

Change-Id: I94c5828ad6c8aa6b363622a26ff9da4fc2e2fac7
(cherry picked from commit ac69be543f)
2016-10-27 22:49:11 +00:00
Leonard Mosescu
1ab879be90 Adding "attach-agent" to ActivityManagerShellCommand
This new command is used to attach runtime agents to a running application:

attach-agent <PROCESS> <FILE>
   Attach an agent to the specified <PROCESS>,
   which may be either a process name or a PID.

Test: m test-art-host, manual testing:
    . invalid syntax, missing arguments
    . invalid syntax, extra arguments
    . invalid numeric PID
    . invalid process name
    . valid process, not debuggable
    . valid process, missing agent
    . valid process, valid agent

Bug: 31682382

Change-Id: Ife88dbf23991dde7945d9208e54cd014bb7ecdc6

Merged-In: Ife88dbf23991dde7945d9208e54cd014bb7ecdc6
2016-10-27 17:03:57 +00:00
Andreas Huber
c3d8550cf3 Merge "Adds support for specifying the version of a service to register/lookup." 2016-10-26 15:38:45 +00:00
Andreas Huber
35eb7994f8 Adds support for specifying the version of a service to register/lookup.
Bug: 32405011
Test: hidl_test_java
Change-Id: I91a31cafa68d570c67f9a1aa7efb9d3dcb35e591
2016-10-25 13:35:44 -07:00
Jakub Pawlowski
f67ee83a22 Add helper method to convert Bluetooth UUID to bytes
Bug: 30622771
Test: sl4a ConcurrentBleAdvertisingTest
Change-Id: I7f646d1d357c51b82efc504a0e65d868ad363ddb
2016-10-25 12:30:24 -07:00
Hidenari Koshimae
0c3149191f CountDownTimer: not skip onTick()
CoundDownTimer internally performs counting down with a handler and
fires onTick() callback at countdown intervals. At this internal
counting down, firing onTick() is skipped if the account of time until
finished is less than countdown interval. Due to this skip of onTick(),
user will miss last onTick() callback.

This change ensures CountDownTimer to fires every onTick() callback
until the time is up.

Bug: 32392931
Change-Id: I951f5cd46743873d7f8c353f8cf8c700999d8ae0
2016-10-25 08:19:36 +00:00