Commit Graph

8634 Commits

Author SHA1 Message Date
Andreas Gampe
07578c786a Merge "Framework: Add API to get zygote PID"
am: 1109e2333f

Change-Id: I6f50efa61bcdec321cd71edae8a28881293c0398
2018-05-24 13:00:41 -07:00
Andreas Gampe
8444dca38c Framework: Add API to get zygote PID
Add a zygote call that returns the PID of the zygote. Used for
profiling.

Bug: 79266002
Test: m
Change-Id: Idf9ba5ec314eb4cb72921000ad6cb34d1035a92a
2018-05-10 09:10:00 -07:00
Calin Juravle
35fe028c93 Merge "Properly prepare system server profiles"
am: 15b9558018

Change-Id: I83070dd881f164e8d458925274b2fb41851b1ae5
2018-05-09 17:37:42 -07:00
Calin Juravle
a50afa5ebf Merge "Make system server profiling an explicit runtime intent"
am: 232011c7d9

Change-Id: I07e6b4f0e75ff96bda3d5ce5acf6b9ea1f999325
2018-05-09 16:25:53 -07:00
Calin Juravle
15b9558018 Merge "Properly prepare system server profiles" 2018-05-09 22:12:42 +00:00
Calin Juravle
7a514d6327 Properly prepare system server profiles
Update the logic for system server profiles to work without disabling
SELinux policies.

Test: check that system_server profile is created without disabling
SElinux

Bug: 74081010

(cherry picked from commit 3f3a08ad0d)

Merged-Id: I63ffadfbe6850992634d0720fb077a4dc65b5736
Change-Id: I63ffadfbe6850992634d0720fb077a4dc65b5736
2018-05-04 16:23:32 -07:00
Calin Juravle
8eb891be6f Make system server profiling an explicit runtime intent
Pass an explicit flag to the runtime when we need to profile the system
server. This ensures that we only start the ProfileSaver and allocate the
code cache when needed.

Test: manual, on a device with system server profiling enabled
Bug: 74081010
Change-Id: I5647e0bfb47d31c0e39bb3f59650cc956f49c4db
2018-05-03 20:06:10 -07:00
android-build-prod (mdb)
b86d2b4b84 Merge changes from topic "ifaceStats"
am: 90c01b0093

Change-Id: I0b564b2d3b13c0e5d033c5cf4aaddad3a750f2c7
2018-05-01 19:41:39 -07:00
Chenbo Feng
2e13ecc88d Use eBPF map data for per iface stats
am: dcc56783f5

Change-Id: I9d6b930c8bb20f0bffd8eecee56ea7d3081b6f54
2018-05-01 19:36:30 -07:00
Chenbo Feng
b815c978b8 Remove the unused file parsing function
With the new xt_bpf support for iface stats. We no longer need to parse
the per interface stats from /proc/net/dev. And since the old xt_qtaguid
code path also not depend on it, we can completly remove that helper
function since no caller is depending on it now.

Bug: 72111305
Test: runtest frameworks-net -c com.android.internal.net.NetworkStatsFactoryTest
Change-Id: Icb7eaeef0eeb9fdffd32a90316c76ee05bafffbe
2018-05-01 14:13:55 -07:00
Chenbo Feng
dcc56783f5 Use eBPF map data for per iface stats
After adding the xt_bpf module and ifaceStatsMap, eBPF tool can now
support reading per interface data. So networkStatsFactory should move
away from parsing proc/net/dev and use the eBPF map stats instead.

Bug: 72111305
Test: atest com.android.server.net.NetworkStatsServiceTest
Change-Id: Ibcc6150d00835b3bd33af22a72e4a86e172581cf
2018-05-01 14:13:48 -07:00
Andreas Gampe
c9740fb393 Merge "Frameworks: In the kill handler, ensure the logging handler was run"
am: c0ac9e916f

Change-Id: Ica29cdf9a4b17b6cec957093c35b735d64568029
2018-04-03 13:29:06 -07:00
Andreas Gampe
50fa122cff Frameworks: In the kill handler, ensure the logging handler was run
In the KillApplicationHandler for uncaught exceptions ensure that the
LoggingHandler has been run. This ensures logging when code directly
calls getUncaughtExceptionHandler().uncaughtException().

Bug: 29624607
Bug: 73380984
Test: m
Test: manual
Change-Id: I9c9216714b4cf029d7ed21e29313c0e802345337
2018-04-03 08:33:28 -07:00
Remi NGUYEN VAN
aa20932ff1 Merge "Fix network usage stats on 464xlat tethered."
am: 83088dcd8e

Change-Id: I0e13c2a6b9f6b5d0701a073ddc835781d5d2aace
2018-03-29 07:36:21 +00:00
Remi NGUYEN VAN
9fb55e4f03 Fix network usage stats on 464xlat tethered.
Usage stats corrections for 464xlat in NetworkStatsFactory are not applied
to tethered traffic. Add adjustments in NetworkStatsService. After
migrating external callers off NetworkStatsFactory, we will be able to
only apply adjustments in NetworkStatsService and remove stacked
interface tracking from NetworkStatsFactory.
Bug: 72107146
Fixes: 72107146
Test: runtest frameworks-net & manual - checked corrected network usage

Change-Id: I5ce450e616b4fddf21f2a491fe5d0c9e9f969bda
2018-03-28 12:14:14 +09:00
Mathew Inwood
625aa8d33a Merge "Configurable hidden API exemptions."
am: 4b8285b907

Change-Id: Ia61896bdedff170d75715094ce87b97dc96994ed
2018-03-27 22:05:14 +00:00
Mathew Inwood
2c6f97d4c9 Configurable hidden API exemptions.
Extend the existing hidden_api_blacklist_exemptions config to support a
list of API signature prefixes to exclude from hidden API enforcement.

Push this list down to the zygote process when that process is created,
and when the list changes. This minimizes overhead, but should also ensure
that all new processes get the latest whitelist.

Test: $ adb shell settings put global hidden_api_blacklist_exemptions \
Test:    Landroid/view/RemoteAnimationDefinition\\\;:Landroid/app/ActivityManager\\\$TaskDescription\\\;
Test: Manually verify logcat output from app which uses named APIs
Bug: 73337509
Change-Id: Ib1245b69da4dac50c6968f1be62f1a74591dc433
2018-03-27 10:51:10 +01:00
Mathew Inwood
daef557352 Merge "More flexible API enforcement policy."
am: 69e1cbc3fe

Change-Id: I8b54dcbca3991b2b076e0648e3948c80d74351d3
2018-03-23 15:02:12 +00:00
Mathew Inwood
69e1cbc3fe Merge "More flexible API enforcement policy." 2018-03-23 13:29:03 +00:00
David Srbecky
5a0a33a8fb Merge "Fix mini-debug-info generation for apps with wrap.sh script."
am: 5c3521d54f

Change-Id: I22f7893925d2d774cc3e3f10287fb54ae1acf0e1
2018-03-23 12:10:41 +00:00
Mathew Inwood
16073b8a7c More flexible API enforcement policy.
This CL adds the basics to set black, dark gray or light gray list
enforcement, rather than just black as before. It's not possible to
actually set the policy per-package yet.

PackageDexOptimizer still uses a single bit, for API checks on/off, rather
than the new enum. It assumes blacklist enforcement internally. This can
be improved in a follow up CL.

(cherry-picked from commit e52130ae4c)

Test: m
Test: Boot device

BUG: 73337509
Change-Id: Ic0d5b8fa631c2bd583b6fc52b2ee3708c8113f59
Merged-In: Idd73c9938592c5c4d67cfb9efefdffed0dd5f262
2018-03-23 11:44:42 +00:00
David Srbecky
5c3521d54f Merge "Fix mini-debug-info generation for apps with wrap.sh script." 2018-03-23 10:50:32 +00:00
Remi NGUYEN VAN
af2fafe743 Merge "Add method to NetworkStatsService for UID stats."
am: db89ca3c12

Change-Id: I2c6cba3ebbc8c23ade754cfd411ac54a561b020a
2018-03-23 03:54:13 +00:00
David Srbecky
28a89370f0 Fix mini-debug-info generation for apps with wrap.sh script.
Debuggable apps enable mini-debug-info after fork, however, this does not
work with apps with wrap.sh script since they follow different code path.

Enable mini-debug-info generation for those as well.

Bug: 74070426
Test: check that app with wrap.sh generates debug info for JIT now
Change-Id: I489ac3c82bcced8fc0448ed5666f67009cbb043d
2018-03-22 13:58:19 +00:00
Remi NGUYEN VAN
088ff6824f Add method to NetworkStatsService for UID stats.
Useful for clients such as BatteryStats which currently rely
on NetworkStatsFactory. Data at that stage is incomplete as
it does not account for tethering, VT data and corresponding
464xlat corrections.

Test: runtest frameworks-net, CTS tests pass.
Change-Id: I763b77f601c827fd2963204694fb5b45425cc791
2018-03-22 15:31:28 +09:00
Erik Kline
5e9725bdc7 Merge "Add new netd event callback for changes to private DNS validation state."
am: 40ca5a06bf

Change-Id: I504148b6a508b6f5e4b5dfa0976362496b91c15c
2018-03-13 13:11:37 +00:00
dalyk
99c5029b91 Add new netd event callback for changes to private DNS validation state.
Test: None.
Bug: 71828272
Change-Id: Ibf2683b9ff7c6cb69d7f4ad12b8bdff7cf7008f0
2018-03-12 15:00:55 -04:00
Erik Kline
30563dee52 Merge "Add BaseNetdEventCallback class that provides no-op implementations for INetdEventCallback."
am: 59787b4247

Change-Id: I63d8b36ec1594134bce8c60eb653e9b53a1b1963
2018-03-09 07:01:21 +00:00
Erik Kline
59787b4247 Merge "Add BaseNetdEventCallback class that provides no-op implementations for INetdEventCallback." 2018-03-09 04:49:51 +00:00
dalyk
985d89a6e0 Add BaseNetdEventCallback class that provides no-op implementations for INetdEventCallback.
Test: None
Bug: 71828272
Change-Id: I75e0620f82195f18befe9dc079492a8c69bb764b
2018-03-08 16:35:57 -05:00
Siddharth Ray
a09adc6db1 Merge "Obtain cellular related battery statistics"
am: 4b0172bcb6

Change-Id: I364d329e92a6bd92ce601d34c94a92c91f09eb38
2018-03-06 20:08:15 +00:00
Siddharth Ray
073f5de149 Obtain cellular related battery statistics
API to obtain cellular battery stats for power
drain diagnostics.

Test: Manual

BUG:67647477
Merged-In: Iffdb1471cd55847b6454313c94497ab2cd6533cc
Change-Id: Iffdb1471cd55847b6454313c94497ab2cd6533cc
2018-03-02 20:06:18 +00:00
Mathew Inwood
3d2a3e25d3 Merge "Package whitelist for hiddenapi checks."
am: 9a50d75795

Change-Id: Iad8ccab4d46677320c9d39f73e6bbc67262c18b2
2018-02-22 14:11:57 +00:00
Mathew Inwood
787c193ee5 Package whitelist for hiddenapi checks.
Some packages in the system image are not built against the SDK, so
enforcing hiddenapi checks for these will break them. Add a whitelist
for such packages.

For now, just add the contacts provider to the whitelist. The list will be
further populated later.

Test: Added test app package name to whitelist to verify.

Bug: 73244707

Merged-In: I94746b7f12dd9371d5068bb235eb853f63ee4d97
Change-Id: I1cbbd220c61b1b4b767c301f97096607ee902a7b
2018-02-22 11:05:14 +00:00
Robert Sesek
486190f87b Merge "Reparent the webview_zygote to be a child of the main app_process zygote."
am: 1c81aa6375

Change-Id: I2af77c52ea7aca058ab1a1fc224968760e6c3ac5
2018-02-21 02:16:22 +00:00
Robert Sesek
602d1323ed Reparent the webview_zygote to be a child of the main app_process zygote.
This uses the new ZygoteProcess.startChildZygote() method to launch the
webview_zygote, rather than having init start it. This will share more
memory between the app_process and the webview_zygote, reducing the
overall system footprint.

Bug: 63749735
Test: m
Test: Launch "Third-party licenses" activity from Settings, and it
      renders correctly via the WebView.
Change-Id: I3e39cd8adb9c099c92ee34640428916d90cb2b8f
2018-02-20 17:00:41 -05:00
Robert Sesek
5b9410c74b Merge "Add Zygote.startChildZygote() to fork a new process that itself is a zygote."
am: 554cfd1f1d

Change-Id: I723f75be6488390932a60b411ac04660c16d93d1
2018-02-17 03:41:55 +00:00
Treehugger Robot
554cfd1f1d Merge "Add Zygote.startChildZygote() to fork a new process that itself is a zygote." 2018-02-17 01:39:54 +00:00
Treehugger Robot
80ae7124f5 Merge "[DO NOT MERGE] Fix context menu position for RTL" 2018-02-16 19:54:26 +00:00
Robert Sesek
d0a190df8a Add Zygote.startChildZygote() to fork a new process that itself is a zygote.
This adds a new --start-child-zygote argument that instructs the main
zygote to create a new child process that will also be a zygote. The
system_server generates a random name in the abstract socket namespace
for it and the child-zygote to communicate over, and that is passed as
an argument to the new process.

A child-zygote bypasses the normal post-fork-child of the zygote process
in order to preserve itself as a zygote. This means not starting the
Binder threadpool nor launching into ActivityThread. Instead, a
child-zygote calls into its own main function. The main function runs a
ZygoteServer select loop, listening on the socket name specified by the
system_server when it was forked.

Unlike the system zygotes, a child-zygote can be killed without bringing
down the system. Killing a child-zygote will not terminate its child
processes, which will be reparented to init for reaping when they
eventually exit.

Bug: 63749735
Test: m (with multi-project commits landed)
Change-Id: I3e7ebbdba498f8fec1d84cdf927dc43a92be4b68
2018-02-16 14:17:41 -05:00
Calin Juravle
b981617ec7 Pass the compilation reason to dexopt
Record the compilation reason in the oat files to enable better
performance monitoring.

Test: DexoptOptionsTest
      manual
Bug: 73102540

Change-Id: Ifa487d4bc33dcd06f12af6bdd1d9a9c5f4562f4b
2018-02-15 12:49:26 -08:00
Calin Juravle
29c772cb48 [framework] Pass .dm files to dexopt at install time
(cherry picked from commit cc65194e8e)

Test: DexoptOptionsTest
      adb install foo.apk foo.dm
Bug: 30934496

Merged-In: If7e705a0efc0954a385ec3bfe7a93921c0d83351
Change-Id: If7e705a0efc0954a385ec3bfe7a93921c0d83351
2018-02-14 08:19:42 -08:00
Calin Juravle
ea6c0ffb4a [framework] Extend profile operations to take the profile name
Extend the installd profile interface to take the profile name as
argument. This shifts the responsibility for choosing the names of
profiles for primary apks completely to PackageManager. Each of the
application code paths will get an unique profile name based on their
split name.

All the profile operations will now work on a specific profile name rather
than assuming a default global name.

Also, move dumpProfiles and clearProfiles functionality to the
ArtManagerService so that we can re-use profileName computations easier.

(cherry picked from commit 6ae39fc2e5)

Test: manual (dexopt apps, merge profiles, clear profiles)
      gts GtsAndroidRuntimeManagerHostTestCases
Bug: 30934496

Merged-In: Ie65d45eed7de0844edf4b7af918d7eaa74ec1f2c
Change-Id: Ie65d45eed7de0844edf4b7af918d7eaa74ec1f2c
2018-02-14 08:19:42 -08:00
Calin Juravle
011603ab76 Support installation of DexMetadata files (.dm)
Add support in the package installer to install dex metadata files
alongside the application apks (base or splits).

During installation or update the dex metadata files will need to have a
matching apk file. The matching is done by checking the file extension
(e.g. base.apk -> base.dm, split_a.apk -> split.dm).

On disk, the metadata files are placed next to the apks.

The .dm files will be used during install-time optimizations and passed
verbatim to dex2oat.

Test: adb shell am instrument -w \
1) adb shell am instrument -w \
  -e class android.content.pm.DexMetadataHelperTest

com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner

2) adb install-multiple CtsClassloaderSplitApp.apk
CtsClassloaderSplitApp.dm CtsClassloaderSplitAppFeatureA.apk
CtsClassloaderSplitAppFeatureA.dm CtsClassloaderSplitAppFeatureB.apk

3) gts-tradefed -m GtsAndroidRuntimeManagerHostTestCases

(cherry picked from commit 3fc56c3000)

Bug: 30934496
Merged-In: I86f0a8307705ff3d6a5a85c2fcaae085dd62d4af
Change-Id: I86f0a8307705ff3d6a5a85c2fcaae085dd62d4af
2018-02-14 08:00:56 -08:00
David Brazdil
b3a4aab310 Refactor runtime hidden API flag from negative to positive
There are only two situations in which we want to enable hidden API
access flag checks. Turning the flag from DISABLE_ to ENABLE_
simplifies logic in ART and reduces the number places where the flag
had to be passed down to ART.

Bug: 64382372
Test: boot device, install and run apps, check log messages

(cherry picked from commit f7e31c0a2b)

Change-Id: Ib2f70696d98c6e1500d1d419d6acf0a8d0487213
2018-02-14 10:13:06 +00:00
yuanhuihui
e669ac2520 fix misleading FATAL EXCEPTION IN SYSTEM PROCESS log
There will be the following situations about mApplicationObject:

1) fork app process will invoke ActivityThread.main(),
then set mApplicationObject.

2) fork system_server, don't set mApplicationObject value.

3) using app_process fork process except zygote, will inovke RuntimeInit,
don't set mApplicationObject value。

For example using command as below:
app_process /system/bin com.android.commands.am.Am "$@",

if this process throw uncaught exception,will output FATAL EXCEPTION IN SYSTEM PROCESS log,
it's not in system process but in normal process。

so should add condition: Process.SYSTEM_UID == Process.myUid()

BUG: 72759350
Test: manual

Change-Id: Ie8d769e4149cd9b938577058de871c4f8db9efe5
Signed-off-by: yuanhuihui <yuanhuihui@xiaomi.com>
2018-02-13 12:52:38 +00:00
Treehugger Robot
1a535ba4b9 Merge "BootReceiver: changed deprecated Build.RADIO to Build.getRadioVerison to get non-empty radio firmware version in SYSTEM_LAST_KMSG." 2018-02-07 01:24:36 +00:00
Hugo Benichi
771e229a23 Merge "Update OWNER files for connectivity" 2018-02-04 23:18:52 +00:00
Hugo Benichi
1c8756154a Update OWNER files for connectivity
Test: no functional change
Change-Id: I25276c769468c37970cb1915660fee29e589008c
2018-02-02 12:49:45 +09:00
Siyuan Zhou
4b1e6c3b2f BootReceiver: changed deprecated Build.RADIO to Build.getRadioVerison to get non-empty radio firmware version in SYSTEM_LAST_KMSG.
Test: Manually verified on Pixel 2 XL, Nexus 5X and 6P devices.
BUG:70934228
Change-Id: I40da7e659619e06587409c6b83c655b46bcbd5b2
2018-01-31 16:17:12 -08:00