Commit Graph

5567 Commits

Author SHA1 Message Date
Ryan Mitchell
93320661ca Fix potential double destroy of AssetManager
Assume there is a XmlBlock [X] created by a AssetManager [A]
([A] will have mNumRefs = 2). After [A].close is called
(mNumRefs = 1) and then both [X] and [A] are going to be GCed,
if [A].finalize is called first (nativeDestroy), the later
[X].finalize will invoke [A].xmlBlockGone that triggers the
second nativeDestroy of [A] and leads to crash.

By clearing the mObject in AssetManager.finalize, the
decRefsLocked from other paths won't call nativeDestroy again.

Bug: 144028297
Test: atest android.security.cts.AssetManagerTest

Change-Id: Ia938502d2443f5a6de6a3cabdb7ce1d41d3ff6d1
Merged-In: Ia938502d2443f5a6de6a3cabdb7ce1d41d3ff6d1
2020-01-16 20:48:57 +00:00
Jeff Sharkey
a1ec7b115c RESTRICT AUTOMERGE: Recover shady content:// paths.
The path-permission element offers prefix or regex style matching of
paths, but most providers internally use UriMatcher to decide what
to do with an incoming Uri.

This causes trouble because UriMatcher uses Uri.getPathSegments(),
which quietly ignores "empty" paths.  Consider this example:

    <path-permission android:pathPrefix="/private" ... />

    uriMatcher.addURI("com.example", "/private", CODE_PRIVATE);

    content://com.example//private

The Uri above will pass the security check, since it's not
technically a prefix match.  But the UriMatcher will then match it
as CODE_PRIVATE, since it ignores the "//" zero-length path.

Since we can't safely change the behavior of either path-permission
or UriMatcher, we're left with recovering these shady paths by
trimming away zero-length paths.

Bug: 112555574
Test: cts-tradefed run cts -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.AppSecurityTests
Change-Id: Ibadbfa4fc904ec54780c8102958735b03293fb9a
2018-10-05 20:39:03 +00:00
Android Build Merger (Role)
6e4eaec69b [automerger] Make safe label more safe am: 2263da9539 am: 05086b1008 am: 77f449068a am: 46f4563313 am: 6be1d6713f
Change-Id: I68cc7356fb9069b8e59913e5524955c241990c8c
2018-05-22 21:59:45 +00:00
Android Build Merger (Role)
6be1d6713f [automerger] Make safe label more safe am: 2263da9539 am: 05086b1008 am: 77f449068a am: 46f4563313
Change-Id: I49cbda7a4d9643808cc9c164970a6ee630b2233c
2018-05-22 21:59:39 +00:00
Android Build Merger (Role)
46f4563313 [automerger] Make safe label more safe am: 2263da9539 am: 05086b1008 am: 77f449068a
Change-Id: I0f74a4a39349e7c45f1468776618e360be87090c
2018-05-22 21:59:34 +00:00
Android Build Merger (Role)
77f449068a [automerger] Make safe label more safe am: 2263da9539 am: 05086b1008
Change-Id: Ibf0d6da3ef712a2cc45587d59880ddce03a34447
2018-05-22 21:59:30 +00:00
Android Build Merger (Role)
05086b1008 [automerger] Make safe label more safe am: 2263da9539
Change-Id: If833354e5ae2b056de124fe23f0414c7654f6c33
2018-05-22 21:59:24 +00:00
Todd Kennedy
2263da9539 Make safe label more safe
* limit the absolute maximum size of the label to 50000 characters
[which is probably far more than necessary, but, can be dialed down]

* use a string buffer while processing the string [instead of creating
multiple string objects]

Bug: 62537081
Test: Manual. Install APK in bug and see that it can be uninstalled
Change-Id: Ibf63c2691ad7438a123e92110d95b1f50050f8b1
Merged-In: Ibf63c2691ad7438a123e92110d95b1f50050f8b1
2018-05-22 21:59:22 +00:00
Sunny Goyal
cee125012a RESTRICT AUTOMERGE Preventing recursive referrence in drawables
Bug: 68706673
Bug: 66498711
Test: Added CTS tests

Change-Id: I8034f49d16f9a7bc1749714fd6d6231bba5088d0
(cherry picked from commit I8034f49d16f9a7bc1749714fd6d6231bba5088d0)
Merged-In: I8034f49d16f9a7bc1749714fd6d6231bba5088d0
2018-01-16 23:41:21 +00:00
TreeHugger Robot
48df033607 Merge "Wrap StackOverflowError in NotFoundException. Bug: 67462465 Bug: 66498711 Test: builds and tested using faulty apk with recursive drawable. Change-Id: I47691343dae892beb5ed8c1c66c33edefade321e (cherry picked from commit dc92d925d8)" into oc-dev 2018-01-12 05:23:45 +00:00
Kevin Hufnagle
d195a9972b Merged-In: I0906de76abf4124d74f7f4f80ac0eab3cbf94f7e
docs: Revised descriptions of binding and connecting to services.

Clarified that Context.bindService() returning true only indicates
that the system has found a service to bind to the client and that
ServiceConnection.onServiceConnected() might not be called if the
service encounters an error, such as crashing during startup.

Test: make ds-docs

Bug: 63118511
Change-Id: I0906de76abf4124d74f7f4f80ac0eab3cbf94f7e
2018-01-09 12:25:22 -08:00
Jon Dormody
ce7f1e6601 Merge "Docs: Renamed ParcelFileDescritor to ParcelFileDescriptor Test: make ds-docs Bug: 1766768" into oc-dev 2017-12-01 15:53:36 +00:00
Jonathan Dormody
1c7c4b2f14 Docs: Renamed ParcelFileDescritor to ParcelFileDescriptor
Test: make ds-docs
Bug: 1766768

Change-Id: Idfea122569bb6f80889be3f224f9629cfebc0ca3
2017-11-30 22:25:42 +00:00
Jonathan Dormody
1bca5db0cb Docs: Added mention that the getSharedPreferences method is thread
safe.

Test: make ds-docs

Bug: 5370116
Change-Id: I5aa851db5e1dbcb3563f1ce15f96cc10c80e90ba
2017-11-16 11:25:20 -07:00
Hyunyoung Song
aff04c35ae Wrap StackOverflowError in NotFoundException.
Bug: 67462465
Bug: 66498711
Test: builds and tested using faulty apk with recursive drawable.
Change-Id: I47691343dae892beb5ed8c1c66c33edefade321e
(cherry picked from commit dc92d925d8)
2017-11-09 20:18:43 +00:00
Kevin Hufnagle
e7cbfa995d docs: Updated ShortcutManager API reference guide.
The guide now contains supplemental, rather than duplicate,
information relative to the "App Shortcuts" guide, available at
https://developer.android.com/guide/topics/ui/shortcuts.html

Test: make ds-docs -j8

Bug: 64401518
Change-Id: Iefa34299a9765eb5d853da71d9197a0edb346026
2017-08-07 20:01:31 -07:00
Svetoslav Ganov
adb8c522a8 Report permission flags for all protections based on SDK
We added a couple of protection flags that also apply to
normal and dangerous permissions. These flags are folded
in the protection level breaking apps that directly and
compare against the protection constants. Apps that target
older than O SDK don't get protection flags folded into
the protection level.

Test: All permission tests pass
      Added a new test to ensure no protection flags reported
      for normal and dangerous permissions

Change-Id: I87b10a7695d8ecfa7156525d6f3d101fc0639513
bug:62755026
2017-07-28 05:46:53 +00:00
Bart Sears
784b56e1e6 Revert "Report permission flags for all protections based on SDK"
This reverts commit 852cf98cb8.

Change-Id: I62763bf85ec95a02a245c6b503aa34bb0e9d997a
2017-07-28 05:05:38 +00:00
Svetoslav Ganov
852cf98cb8 Report permission flags for all protections based on SDK
We added a couple of protection flags that also apply to
normal and dangerous permissions. These flags are folded
in the protection level breaking apps that directly and
compare against the protection constants. Apps that target
older than O SDK don't get protection flags folded into
the protection level.

Test: All permission tests pass
      Added a new test to ensure no protection flags reproted
      for normal and dangerous permissions

bug:62755026

Change-Id: I72547b0146e6b6919803e33ff64b7208c4a255ad
2017-07-28 01:46:04 +00:00
David Friedman
e4d0557334 Merge "Docs: Updates guidance about using permissions when accessing OBB expansion files, Bug: 34273998 Test: Ran "make" to verify error-free building." into oc-dev 2017-07-21 23:01:56 +00:00
Dave Friedman
cfe508824f Docs: Updates guidance about using permissions when accessing OBB
expansion files,
Bug: 34273998
Test: Ran "make" to verify error-free building.

Change-Id: Ic2022bd8bd78e2f6077d6ee6807fbbda7214737a
2017-07-19 10:08:49 -07:00
Benjamin Miller
7afa84c373 Docs-change: clarification of LauncherApps.getApplicationInfo()
Staged at: go/dac-stage/reference/android/content/pm/LauncherApps.html#getApplicationInfo(java.lang.String, int, android.os.UserHandle)

Test: make ds-docs and output staged
Bug: 38024981
Change-Id: I9f256d675433457b7c85fa111ed87d1147f1f2bc
2017-07-17 18:35:38 +00:00
Makoto Onuki
8f2a478d9d Fix activity icon badging for non-bitmap icons
Bug 62930145
Test: Manual test with development/samples/ShortcutDemo/launcher/

Change-Id: I8d0eed2e1f93a3b04a6a078c25cefbfc47c528a4
2017-06-23 13:10:41 -07:00
Seigo Nonaka
80f6a985c3 Stop loading other package's font by default.
Since CONTEXT_RESTRICTED is not a default flag of createPackageContext,
we can't rely on it for preventing unexpected font injections.
To protect developers and existing apps from a risk of font injection,
stop loading font from other package's resouce unless the developer
explicitly set CONTEXT_IGNORE_SECURITY.

This CL contains Iac2a6fb3d82ef23d5ca6ee33f4aaa9ed28455271 by manual
merging to handle repository split.

Bug: 62813533
Bug: 62879353
Test: Manually done
Merged-In: I4442ddc48dadb5c968b444be86038b602074d301
Change-Id: I4442ddc48dadb5c968b444be86038b602074d301
2017-06-22 19:07:17 -07:00
Svetoslav Ganov
324c41ba89 Merge "[DO NOT MERGE] Support native shared libs" into oc-dev 2017-06-21 01:06:22 +00:00
Svet Ganov
f8579581c1 [DO NOT MERGE] Support native shared libs
Add the shared libs that are APKs to the native library
path when creating application class loaders. Also don't
allow shared libraries hosting native libs to request
extraction of the native libs out of the APK. Lastly,
shared libraries hosting native libs must be declared
as multi-architecture.

Test: CTS tests in this topic

bug:62720360

Change-Id: I0a398593ebe41b2976cb706ca8a388005f5aec83
2017-06-20 12:12:34 -07:00
Phil Weaver
846cda9397 Separate a11y and autofill view ids
Autofill seems to need IDs to be preserved across things
like configuration changes, while accessibility will not
function without views with unique ids. Separating out the
two types of IDs. We can re-combine them once it's clear
that both demands can be satisfied.

Bug: 62301218
Test: Run a11y and autofill CTS, and verify that the play
store app functions with TalkBack after a screen rotation.

Change-Id: I17a99de2874768fc0ade3aa354130dd1f6b4cd7e
2017-06-16 14:36:36 -07:00
Todd Kennedy
b274947dfb Save overlay paths as user state
Instead of maintaining a separate structure just for overlay
paths, store them as user state in the package setting. Also
centralize updating the overlay paths to avoid issues with
inconsistent updates.

Fixes: 36561125
Test: Manual
Change-Id: Iac1c987e8650074dbc564e332d5da1950fad6ac5
2017-06-13 12:05:44 -07:00
Jeff Sharkey
b31afd2273 Improve developer docs for storage APIs.
No code changes; only docs.

Test: builds
Bug: 38508833, 37987197, 37978296
Change-Id: Idfeb680480b2f818d18f787cbf20ceab896763a2
2017-06-12 20:19:53 +00:00
Adam Lesinski
887544e100 Merge "Revert "always adjust per-user application info"" into oc-dev 2017-06-08 21:14:09 +00:00
Adam Lesinski
157be6ead8 Revert "always adjust per-user application info"
This reverts commit e0046cecb0.

Reason for revert: Regresses UI theme

Bug: 62445682
Bug: 36561125
Change-Id: I9b60bd8e4eb89129368d38e83c0036ab459a524e
2017-06-08 21:10:52 +00:00
TreeHugger Robot
dacdf2e978 Merge "Passing callingUid to internal methods" into oc-dev 2017-06-08 01:00:52 +00:00
Bryce Lee
f867733d4f Merge "Revert "Coordinate configuration changes and window frame size."" into oc-dev 2017-06-07 23:23:30 +00:00
Bryce Lee
46b01655b3 Revert "Coordinate configuration changes and window frame size."
This reverts commit afb45bba83.

Bug: 32839232
Fixes: 62424393
Change-Id: Ifaa0176e18100ec85b8c81268a26fb16ffe9b5f3
2017-06-07 23:03:09 +00:00
Todd Kennedy
18211fd8f6 Passing callingUid to internal methods
Sometimes callers want to clear the calling identity [to avoid permission
calls]. In this case, allow passing the original calling identity to
internal methods.

Test: Manual; create profile account and observe launcher still works cross profile
Test: bit FrameworksServicesTests:com.android.server.pm.ShortcutManagerTest{1..10}
Change-Id: I73f8ad4b2dc1895227c3fcb14f3f1f18f600562f
Fixes: 38349978
2017-06-07 15:53:21 -07:00
Todd Kennedy
91a9d65e42 Merge "always adjust per-user application info" into oc-dev 2017-06-07 18:42:13 +00:00
Makoto Onuki
a9c185f6e7 Merge "Refer to ShortcutManagerCompat in the javadoc" into oc-dev 2017-06-06 16:26:10 +00:00
Todd Kennedy
e0046cecb0 always adjust per-user application info
Test: manual; it runs
Change-Id: I98db17ebe9ebe34a5affad44300a55ed68adb565
Fixes: 36561125
2017-06-06 07:51:10 -07:00
Bryce Lee
afb45bba83 Coordinate configuration changes and window frame size.
Previously, it was possible for the view hierarchy to be measured,
laid out, and drawn around a window frame size that did not match
the current configuration. This stems from new configurations not
always propagating back from WindowSession#relayout, which is
called from ViewRootImpl.

This changelist makes WindowManagerService#relayoutWindow always
return the latest configuration. It also adds rotation to the
configuration.

Fixes: 32839232
Test: go/wm-smoke
Test: Open Camera while rotating phone to landscape. Added
      temporary logs to detect inconsistencies between measurements
      and reported rotation on draw.
Change-Id: I39daca338b4f87eff1a509eb99493f01e710ced1
2017-06-05 20:55:46 -07:00
Jeff Sharkey
d86b8fea43 Annotate @SystemApi with required permissions.
Most @SystemApi methods should be protected with system (or higher)
permissions, so annotate common methods with @RequiresPermission to
make automatic verification easier.

Verification is really only relevant when calling into system
services (where permissions checking can happen on the other side of
a Binder call), so annotate managers with the new @SystemService
annotation, which is now automatically documented.

This is purely a docs change; no logic changes are being made.

Test: make -j32 update-api && make -j32 offline-sdk-docs
Bug: 62263906
Change-Id: I2554227202d84465676aa4ab0dd336b5c45fc651
2017-06-05 13:27:11 -06:00
Makoto Onuki
9aeff8abcc Refer to ShortcutManagerCompat in the javadoc
Bug: 62193112
Test: m offline-sdk-docs and manually checking the result
Change-Id: I5f608f9b22dec595a0e14026a9f4aaf7898bfdba
2017-05-31 09:58:47 -07:00
Jeff Sharkey
ddff807b76 Consistent "low storage" behavior.
When answering the question "how much space is free", use the same
logic for Settings UI and StorageManager.getAllocatableBytes().  That
is, the reported free space is usable bytes plus any cached data the
system is willing to delete automatically.

This does *not* include any reserved cache space, since we don't want
abusive apps to penalize other well-behaved apps that are storing
their data in cache locations.  Callers freeing cached data need to
now explicitly request defiance of the reserved cache space.  (Most
callers are already doing this by using FLAG_ALLOCATE_AGGRESSIVE.)

Rewrite the core logic of DeviceStorageMonitorService to understand
this new "reserved" cache space, and to be easier to understand.  It
also now handles cached data on adopted storage volumes, which had
been ignored until now.  Also fix bug where we had skipped "low"
broadcasts when the device skipped directly from/to "full" state.

Bug: 38008706
Test: cts-tradefed run commandAndExit cts-dev -m CtsJobSchedulerTestCases -t android.jobscheduler.cts.StorageConstraintTest
Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.StorageHostTest
Change-Id: Icbdcf3b52775f7ada1ceaeff2f96094c8d8052f9
2017-05-30 22:17:23 -06:00
Adam Lesinski
24c18af14a Merge "Add ResourceId validation helper method" into oc-dev 2017-05-26 18:45:28 +00:00
Tenghui Zhu
36d6a985cd Merge "Create a new drawable after caching the DrawableContainer" into oc-dev 2017-05-26 16:10:25 +00:00
Adam Lesinski
9553fb3240 Add ResourceId validation helper method
An invalid, 'null' resource ID is defined as 0. Apps often use -1.

Add a helper method that makes checking valid IDs easy and more
centralized.

Eventually make it public API.

Bug: 38393777
Test: manual
Change-Id: I969ec4a45e86bdab3d7f57d357d475b77c7f8a78
2017-05-24 15:39:23 -07:00
TreeHugger Robot
1de10d6602 Merge "System installed launcher can see instant apps" into oc-dev 2017-05-24 20:38:56 +00:00
Todd Kennedy
3051caac52 System installed launcher can see instant apps
Change-Id: I97f791b61f9b4f7ed33305345bf3d92394b40ae4
Fixes: 38202759
Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.EphemeralTest
Test: Manual. Create sample app that replaces the launcher to test ability to see ephemeral apps.
2017-05-24 07:34:55 -07:00
Adam Lesinski
4fed971437 Resources: fix race with creating theme
Bug: 38353957
Test: none
Change-Id: Id78770b475b979635da6a4067db6269e3a1b04d6
2017-05-23 13:14:54 -07:00
Dianne Hackborn
ad6dde65ff Merge "Fix issue #38393543: Not allowed to start service Intent" into oc-dev 2017-05-22 20:03:33 +00:00
Dianne Hackborn
3e6e3855ea Fix issue #38393543: Not allowed to start service Intent
Turns out there was another path in to the activity manager
to trigger a PendingIntent, which needs to be modified to
now also pass in the whitelist token of that pending intent.

Test: manual
Change-Id: I755ff87db1b782fa6974d404dcb490786053c5e0
2017-05-19 16:12:08 -07:00