Commit Graph

104167 Commits

Author SHA1 Message Date
Tao Bao
56f111e13b Merge "Use ParcelFileDescriptor over FileDescriptor" 2019-10-07 16:38:11 +00:00
Tobias Thierer
4435606858 Construct default MimeMap lazily rather than eagerly.
A side effect of CL topic r.android.com/q/topic:bug136256059_attempt2
was that the default MimeMap instance is now loaded eagerly (pre-fork)
regardless of whether any app process ends up using it, whereas
previously it was loaded lazily (post-fork) the first time an app
process used it.

This traded off CPU and memory use post-fork vs. pre-fork. Because it
isn't known / hasn't been proven whether and how many app processes
use that instance, the net CPU and memory impact is not known: if at
least one process makes use of a relevant API, the net impact will be
neutral or positive, or else negative.

Until this can be investigated and undergo system health review, this
CL topic changes the behavior back to post-fork lazy loading of the
default MimeMap instance.

Bug: 142019040
Test: Treehugger

Change-Id: I2a3f244240c51e7ada1f41a8abadb946ebcab40b
2019-10-04 16:34:18 +00:00
Tobias Thierer
0801b7c222 Merge "Track MimeMap moving to libcore.content.type." 2019-10-04 12:54:17 +00:00
Tobias Thierer
8edd837b79 Track MimeMap moving to libcore.content.type.
Another CL in this topic moves libcore.net.MimeMap to package
libcore.content.type. This CL updates associated references.

Bug: 136256059
Bug: 124232146
Test: Treehugger
Test: CtsMimeMapTestCases
Exempt-From-Owner-Approval: move affecting imports only
Change-Id: I30aac8b28a1740180ea01834a2bb66b61cb255d4
2019-10-04 12:52:38 +00:00
Treehugger Robot
2f44b1ebbd Merge "Add UID APIs to PlatformCompat." 2019-10-04 11:52:54 +00:00
Kyeongkab.Nam
73fde3809a Use ParcelFileDescriptor over FileDescriptor
The java.io.FileDescriptor object has a poor definition of ownership,
which can result in obscure use-after-close bugs. Instead, APIs should
return or accept ParcelFileDescriptor instances.

Bug: 130209137
Test: manual
Change-Id: Ifb3dd53dc138ec47f416f2d4b46c4668bc8ee1d8
2019-10-04 17:58:11 +09:00
Elliott Hughes
363a602bd1 Merge "Remove a user/userdebug difference." 2019-10-03 19:03:23 +00:00
Treehugger Robot
d34e18c036 Merge "zygote: respond and wait for reply to --boot-completed." 2019-10-03 17:43:22 +00:00
Josh Gao
273613653f zygote: respond and wait for reply to --boot-completed.
The zygote handles requests by polling on its sockets, and then handling
one request for each active socket. However, it does so by reading from
a socket via a BufferedReader, which means that if multiple requests are
written into the socket before the zygote gets a chance to read them,
the zygote reads multiple requests into its BufferedReader, it handles
one request, and then never responds to the request that's buffered,
leaving its client stuck waiting for a response that will never happen.

For most requests, this can't happen, because the client will wait for a
response to be sent from the zygote before sending another request, but
this isn't true for --boot-completed until this patch.

Bug: http://b/141767463
Test: forrest runs of apct/text/text_native_test-cloud-tf
Change-Id: I8b7a80abfd9443d98f8cf5aedb7669b82c0cb84a
2019-10-03 17:18:04 +00:00
atrost
64cacec12b Add UID APIs to PlatformCompat.
Needed for scoped storage (to be used from MediaProvider).
IsChangeEnabled returns true if there are no installed packages for the
required UID, or if the change is enabled for ALL of the installed
packages associated with the provided UID.

Bug: 138275545
Test: Test app
Change-Id: I6785f57e4fcfb92ed7529f4da0a6db6ffe8b3ad4
2019-10-03 15:21:24 +01:00
Nicolas Geoffray
165050810b Merge "Adjust and update dumpsys meminfo output." 2019-10-03 14:12:25 +00:00
Nicolas Geoffray
0567cd4c7b Adjust and update dumpsys meminfo output.
Adjust for JIT zygote.

Test: dumpsys meminfo
Bug: 119800099

(cherry picked from commit 08fcd7588c)

Change-Id: I84e0d41619558ff3528d7ac8670b1fac04afd34e
Merged-In: Ie0e7d6b938b6ee81c01191d6830f1196fa2121c1
2019-10-03 12:09:50 +01:00
Treehugger Robot
3b6a00ec3c Merge changes If9068025,I728e5bf9,I9d41169d
* changes:
  InputManagerService: Add Mic Mute switch support
  AudioService: Add reporting of Mic Mute on start
  InputManager: Add isMicMuted() helper
2019-10-02 20:20:50 +00:00
Elliott Hughes
e14fa97af9 Remove a user/userdebug difference.
There isn't much users can do to get app developers to care anyway, so
leaving this on just for apps with debuggable="true" should be
sufficient.

Bug: http://b/141754375
Test: treehugger
Change-Id: I3a796f9c4b9358fce499649c3f289e956ee9a97a
2019-10-02 11:40:03 -07:00
Tobias Thierer
6ed8fce33f Merge changes from topics "bug136256059_attempt2", "bug136256059_builder"
* changes:
  MimeMapImpl.createDefaultInstance() -> DefaultMimeMapFactory.create().
  Make MimeMap final and introduce MimeMap.Builder.
  Move default MimeMap implementation to frameworks.
2019-09-30 09:15:53 +00:00
Treehugger Robot
417aed2c61 Merge changes from topics "dsu_ashmem", "dsu_clean_up"
* changes:
  Use Ashmem to reduce buffer copies
  Clean up usage on deprecated GSID methods
2019-09-28 11:45:28 +00:00
Dmitry Shmidt
d6cf4d986b InputManager: Add isMicMuted() helper
Bug: 141192769
Test: Manual

Change-Id: I9d41169d1859e311f8824fc4990b7c875e02abf1
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2019-09-27 11:09:02 -07:00
Tobias Thierer
af0cef987d MimeMapImpl.createDefaultInstance() -> DefaultMimeMapFactory.create().
The class no longer implements MimeMap, so the name MimeMapImpl
no longer made sense.

Test: Treehugger
Bug: 136256059
Change-Id: I2cbc70a7769232b704a9bdfde2def832c1e292b8
2019-09-27 17:25:13 +01:00
Tobias Thierer
878c77b704 Move default MimeMap implementation to frameworks.
This is the second attempt to submit this CL. The first attempt
regressed on app startup because RuntimeInit installed the
custom MimeMap from commonInit() which runs post-fork of the zygote,
but that was fixed by installing it pre-fork.

This CL topic moves the default MimeMap implementation to frameworks.
Libcore starts with a minimal implementation sufficient to pass
CtsLibcoreTestCases,  but frameworks can inject the real implementation.
Before this CL topic, the data files and logic (MimeMapImpl) were part of
core-*.jar on device; after this CL, they instead live in framework.jar.

Tests from MimeMapTest that check behavior of that default
implementation also move to a non-libcore CTS test.

Planned work for follow-up CL:
 1. Make CTS more opinionated, with a plan to assert that all of
    the default mappings are present. How exactly the expectated
    mapping will be bundled in CTS is still TBD.
 2. Add a vendor.mime.types file (defaults to empty) where vendors
    can add additional mappings; I plan to make it such that mappings
    in that file are parsed last but never override any earlier
    mappings, as if each mime type / file extension was prefixed
    with '?'.
 3. Perhaps enforce that public APIs android.webkit.MimeTypeMap
    and java.net.URLConnection.getFileNameMap() behave consistently
    with MimeMap.getDefault().

Test: atest CtsLibcoreTestCases
Test: atest CtsMimeMapTestCases
Test: Checked that CtsLibcoreTestCases still passes on a build that
      is missing the MimeMap.setDefault() call from RuntimeInit.java.
Test: Checked that app startup time does not regress as part of this
      CL topic - see http://b/136256059#comment17
Bug: 136256059

Change-Id: I716914bf1a7e6205e539f0551f010615dacb17a8
2019-09-27 16:53:15 +01:00
atrost
a8f3c48495 Rate limit non statsd logs.
Limit 1 log per app launch as the statd logs as this is spamming logs.
Consider increasing in the future to once every x minutes/seconds if
needed.

Bug: 138374585
Bug: 141714588
Test: flash device
Change-Id: I3ed696fb557527d807d03aecc64c0207d7b93f08
2019-09-27 11:25:06 +00:00
Treehugger Robot
a828ee6442 Merge changes from topic "system_ext"
* changes:
  Consider overlay in system_ext as system's
  Support /system_ext partition
2019-09-26 22:18:07 +00:00
Tobias Thierer
52efd46075 Merge "Introduce ZygoteInit.preForkInit()." 2019-09-26 18:38:39 +00:00
Tobias Thierer
a45917eb77 Introduce ZygoteInit.preForkInit().
Until recently, I and apparently some others were under the assumption
that RuntimeInit.commonInit() runs before the Zygote fork. Actually, it
does not.

This CL introduces a method ZygoteInit.preForkInit() which runs before
the Zygote fork. For now, only enableDdms() moves into it and can become
private. This should not alter behavior since enableDdms() is called
from the same places as before, and because enableDdms() (now private)
was already not part of any API surface.

The CL also removes the qualifier "final" from the (static) method
enableDdms(), because it is redundant.

Note: This CL was uploaded with --no-verify because of preexisting
import ordering issues in RuntimeInit.java

Test: Treehugger
Change-Id: I8f637e160a2d7810feb43b6a43ec7d628af18fb8
2019-09-26 16:08:59 +01:00
atrost
6624ffa207 Refactor ChangeReporter and rate limit stats logging.
Only log once per change-package-state(resets every app launch if used
from within the app process).

Next: reset every app launch for server usage as well.

Test: using the test app.
Bug: 138374585
Change-Id: I5587f7138cf2cd8d144e88cf294e65c14bb32bfb
2019-09-26 12:59:19 +01:00
Anna Trostanetski
ef530d9fa4 Merge "Add package name based APIs to PlatformCompat." 2019-09-25 18:31:49 +00:00
atrost
12d0da3179 Add package name based APIs to PlatformCompat.
The APIs behave the same as the AppInfo APIs, and returns the change is
enabled if there is no installed package with the provided name.

Test: flashed device, used the test app, and made the API use the new
      per-package API.
Bug: 138275545

Change-Id: Ic925751dddc6c2e0996fe195a208f5c689554839
2019-09-25 16:32:07 +01:00
Treehugger Robot
1ae4c5b781 Merge "Add documentation for *.sysprop" 2019-09-25 03:01:21 +00:00
Oscar Shu
54bb8a1625 Merge "Followup to CL 1103896" 2019-09-24 22:06:27 +00:00
Jiyong Park
09c730b197 Add documentation for *.sysprop
Bug: 141246285
Test: N/A
Change-Id: Ia90dd8fc75a9caa3b90c4e3adfb1252a5b1c19c4
2019-09-24 14:52:36 +09:00
Mike Ma
a11beeca12 Merge "Add an API to dump incident report for dumpstate" 2019-09-24 01:07:25 +00:00
Mike Ma
15f83a3118 Add an API to dump incident report for dumpstate
Instead of just relying on the regular iteration through the system
services inside dumpstate, add another API to IIncidentManager
dedicated for dumpstate.

- It is only callable by dumpstate() (check the calling uid)
- It has the same behavior as the current call inside dump()

Advantages:
- More explicit function name, right next to takeIncidentReport will
  make it easier to keep them in sync.
- Nobody else can call it, make security easier.
- If dumpstate calls it explicitly, it can skip the 10 second timeout
- The regular dump() call should provide debugging data about
  incidentd itself, for example timestamps for the most recent N
  incident reports taken and the current state of the work directory,
  allowing us to debug incidentd itself.

Bug: 137493082
Test: Manually trigger a bug report, and verify
      /proto/incident_log.proto in the zip file.

Change-Id: I19139c765b53ede63d3beb3ea3ac40ada1aba42d
Merged-In: I19139c765b53ede63d3beb3ea3ac40ada1aba42d
2019-09-23 16:20:53 -07:00
Jeongik Cha
f6629839d1 Support /system_ext partition
This commit is mainly from I7a6a30bf8e8db9f2738594d187bb9148f138b8da, so
test cases and features are mostly same.

We change product_services partition name to "system_ext" because this
partition's purpose changes.

 - installing a RRO package for framework from /system_ext/overlay
 - installing apps from /system_ext/app
 - installing priv-apps from /system_ext/priv-app
 - installing permissions from
   /system_ext/etc/[default-permissions|permissions|sysconfig]

Bug: 134359158
Test: `mma` under frameworks/base/tests/[libs|privapp]-permissions
      adb sync && adb reboot
      adb shell cmd package list libraries
        => confirmed com.android.test.libs.system_ext library
      adb shell cmd package dump \
        com.android.framework.permission.privapp.tests.system_ext
        => confirmed that the package is a priv-app

Change-Id: Ibbccbba64156a7bc464ffb3785fb8fe69ebb973c
Merged-In: Ibbccbba64156a7bc464ffb3785fb8fe69ebb973c
(cherry picked from commit 9ec059ac1d)
2019-09-23 22:00:50 +00:00
xshu
b483607abe Followup to CL 1103896
Optimizes the logic that ensures the default randomized MAC is not
returned.

Bug: 137796328
Test: atest MacAddressTest
Change-Id: Ie95d7a020bfac8850b8a67e4d396de77db22e1db
2019-09-20 16:56:54 -07:00
Treehugger Robot
6265eea819 Merge "Document that SystemProperties.set() can throw RuntimeException" 2019-09-20 05:53:03 +00:00
Tom Cherry
39373b2e81 Document that SystemProperties.set() can throw RuntimeException
Bug: 140148206
Test: n/a
Change-Id: I32df2ed4979edcc0d9abc46830ebd3defc431c57
2019-09-19 08:41:44 -07:00
Treehugger Robot
e25075b2fb Merge "Exposing flickerlib classes and layer tracing to sysui" 2019-09-19 13:42:49 +00:00
Victor Hsieh
3c68afee05 Mirror fs-verity ownership UID to Java
This has been done in system/core, so mirroring for later use.
https://android-review.googlesource.com/c/platform/system/core/+/1115493

Test: compile
Bug: 112038744
Change-Id: I2d7f5d38caae0b6ada1f208b3d71d937d527716e
2019-09-18 14:33:54 -07:00
Anna Trostanetski
3cadf0d9ea Merge "Implement stats logging for Compatibility API." 2019-09-18 12:25:47 +00:00
Amit Mahajan
eeeb74a093 Merge "Fix descriptions for default SIM in global preferences" 2019-09-17 17:18:04 +00:00
Taesu Lee
0399854df0 Fix descriptions for default SIM in global preferences
Test: Not required.

Change-Id: I7f32eb495b53d13aba50b07d86e63f0549e9e6bb
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
2019-09-17 13:45:54 +09:00
Yifan Hong
bc45ac13ef Merge "VintfObject: Fix getHalNamesAndVersions doc" 2019-09-16 23:58:51 +00:00
Winson Chung
0d4ac4ec1c Exposing flickerlib classes and layer tracing to sysui
- Allow recents component to enable/disable layer tracing
- Expose flickerlib classes for use with sysui/launcher tests
- Allow trace files to be moved to a path that the client can read
- Ensure layers are flattened with depth traversal to encode ordering

Bug: 140244969
Test: atest FlickerTests
Change-Id: I7af5699ff5b8a4bc62c1a8105c67b31bc45a2236
Merged-In: Ia0934ec7c2b9484fa6c85f5aa8d9b2e5e6f7dc0f
2019-09-16 18:08:13 +00:00
atrost
e36b1a142f Implement stats logging for Compatibility API.
Add a new atom and log from both the app process API and the system server API
Bug: 136794938
Bug: 138378110
Test: statsd_testdrive 228

Change-Id: I80f07d0beb30c779c4bce70bebf2bb4ab22f6bfe
Merged-In: I80f07d0beb30c779c4bce70bebf2bb4ab22f6bfe
2019-09-16 14:55:53 +01:00
Tao Bao
7e3b406f26 Merge "Add nullability anotations" 2019-09-13 17:04:12 +00:00
Treehugger Robot
4efb0c510d Merge "Honor HDMI_CONTROL_ENABLED setting in AudioService" 2019-09-13 16:58:19 +00:00
Madhava Srinivasan
154e0193ce Honor HDMI_CONTROL_ENABLED setting in AudioService
This change updates how AudioService is updated of changes to Hdmi Cec
status (enable/disable) and availablity.

Bug: 138956107
Bug: 138373017
Test: Android TV STB: make; flashall;Volume -/+; HDMI control enable/disable.
Change-Id: Iaf83a45206be076858e13d113ba772ed5c59ef60
Merged-In: Iaf83a45206be076858e13d113ba772ed5c59ef60
2019-09-12 22:14:59 +00:00
Kyeongkab.Nam
77f1aac15d Add nullability anotations
Add missing nullability for applyPayload.

Test: manual
Change-Id: Iafce9091767bd7a31937b0be329ede6639239d73
2019-09-12 11:33:39 +09:00
Christian Wailes
d9bce3cfff Merge "Revert "Revert "Remove a misleading "flush" function.""" 2019-09-11 18:23:50 +00:00
Yifan Hong
0cdba3256c VintfObject: Fix getHalNamesAndVersions doc
Test: CTS device info collect
Bug: 140832836
Change-Id: Iddc3c36d15370baa661e485b76c490a5d2b7815c
2019-09-11 11:07:43 -07:00
Neil Fuller
28b12c347c Merge "Track changes to CountryTimeZones API" 2019-09-11 10:58:38 +00:00