In order to notify netd to swap eBPF maps before pulling the
networkStats from eBPF maps, NetworkStatsFactory need to use the
NetdServices to issue binder calls. So it need to be moved from
framework/base/core to framework/base/service since object in
framework/base/core cannot get any system services. This change is also
necessary for setting up a lock inside NetworkStatsFactory to prevent
racing between two netstats caller since the lock need to be hold before
netd trigger the map swap.
Also fix the compile problem caused by moving the NetworkStatsFactory
and the related tests. Rename the packages and the jni functions to a
more proper name.
Bug: 124764595
Bug: 128900919
Test: NetworkStatsFactoryTest
android.app.usage.cts.NetworkUsageStatsTest
android.net.cts.TrafficStatsTest
Merged-In: Ifcfe4df81caf8ede2e4e66a76552cb3200378fa8
Change-Id: Ifcfe4df81caf8ede2e4e66a76552cb3200378fa8
* changes:
Move BatteryStats and StatsCompanionService to use NetworkStatsService.
NetworkStatsService: Fix getDetailedUidStats to take VPNs into account.
Take all VPN underlying networks into account when migrating traffic for VPN uid.
This CL is a manual merge of http://ag/c/6015966/3.
Bug: 113122541
Bug: 120145746
Test: atest FrameworksNetTests
Test: manual test: verified that BatteryStats are correctly accounting
for VPN traffic.
Change-Id: I5b07ce70ac58bdcbebc3114bfe9fd411469d57af
Merged-In: I230c1edbf64cfeb3dbb560db368b5e420f7b79a4
This API is similar to one provided by NetworkStatsFactory with the
difference that NSS also migrates traffic from VPN UID to other apps.
Since traffic can only be migrated over NetworkStats delta, NSS
therefore maintains NetworkStats snapshot across all UIDs/ifaces/tags.
This snapshot gets updated whenever NSS records a new snapshot
(based on various hooks such as VPN updating its underlying networks,
network getting lost, etc.), or getDetailedUidStats API is invoked by
one of its callers.
Bug: 113122541
Bug: 120145746
Test: atest FrameworksNetTests
Test: manually verified that battery stats are migrating traffic off of
TUN (after patching above CL where we point BatteryStats to use this
API).
Change-Id: Ib0f0c2d4d41ee1d7a027ea9da457baaf198d649e
VPN uid.
Bug: 113122541
Bug: 120145746
Test: atest FrameworksNetTests
Test: Manually verified on device that stats from VPN UID are moved
appropriately based on its declared underlying network set.
Test: vogar --mode app_process --benchmark NetworkStatsBenchmark.java
Change-Id: I9d8d0cc58d18002c1c96f8ddff780ef8dc452d21
For packages:
com.android.internal.app
com.android.internal.database
com.android.internal.http
com.android.internal.os
com.android.internal.policy
com.android.internal.util
com.android.internal.view
com.android.internal.view.menu
com.android.internal.widget
com.android.server.net
com.android.server
com.google.android.collect
com.google.android.util
This is an automatically generated CL. See go/UnsupportedAppUsage
for more details.
Exempted-From-Owner-Approval: Mechanical changes to the codebase
which have been approved by Android API council and announced on
android-eng@
Bug: 110868826
Test: m
Merged-In: Ia5306f4713298b46ae3aba6fc9d87fae41f8a593
Change-Id: Ie26033d486033289ad3e010a534a921d29c3b2ca
This is specifically for HIDL but is applicable to other libs.
Classes on the bootclasspath are implicitly used by apps. For this
reason, many classes should not go there. However, there are some
libraries which are used by many apps/processes which are still
nice to preload the ClassLoaders of.
Now, cacheNonBootclasspathSystemLibs in ApplciationLoaders keeps
a map of jar -> ClassLoader in zygote to be retrieved by child
processes.
Bug: 128529256
Bug: 127406460
Test: boot Pixel 2, verify libs are preloaded and used, try apps that
use these libraries.
Test: grep for ClassLoaderContext errors, for instance:
- ClassLoaderContext shared library size mismatch
- ClassLoaderContext classpath element mismatch
Test: showmap on various processes which use the preloaded libs.
Change-Id: I351bf1679e9a928c10dca860b6cd6cb414c3bb8e
In an effort to allow loading integrity-checked artifacts from
the dalvik-cache, attempt to create and cache the system server's
classloader early, while still being in the system_server_startup
selinux domain.
The advantage of this approach is that allowances for loading
from the cache are restricted to startup.
Bug: 128688902
Test: m
Test: Device boots, picks up /system artifacts
Test: Device boots, picks up integrity-checked /data artifacts
Merged-In: If4a75fa106db09f1bd666d6d8df7ac3ac3e35a8c
Change-Id: If4a75fa106db09f1bd666d6d8df7ac3ac3e35a8c
Test: checked SecurityException is thrown for my custom app
Test: whiltelisted my custom app, checked no SecurityException is thrown
Bug: 126541701
Change-Id: Id0b61ccc1adf40bcb455d3b59b640f4b160bdd84
Merged-In: Id0b61ccc1adf40bcb455d3b59b640f4b160bdd84
(cherry picked from commit 07964b49ac)
Currently libnativeloader appends vendor lib path if apk is from vendor
partition. Similar to this we should add product lib path if apk if from product partition.
Bug: 124705551
Test: m -j && tested from crosshatch with product apps (such as Wallpaper)
Change-Id: Ic85b16e8e4484a35c659c16e067f1e7c7285d05e
Merged-In: Iaa8d0ea61b1b9ab8a1da676a492f75c6a5d71d5d
Also removed emeritus accounts ek@ and silberst@ from various places.
A cleanup using 'include' would probably be in order...
Test: N/A
Change-Id: I575e60dd5e600e42d9571ce8e8d7661d30e99bfe
For packages:
com.android.internal.app
com.android.internal.appwidget
com.android.internal.location
com.android.internal.os
com.android.internal.policy
com.android.internal.statusbar
com.android.internal.telecom
com.android.internal.telephony
com.android.internal.widget
This is an automatically generated CL. See go/UnsupportedAppUsage
for more details.
Exempted-From-Owner-Approval: Mechanical changes to the codebase
which have been approved by Android API council and announced on
android-eng@
Bug: 110868826
Test: m
Merged-In: I6eba34467b2492047e5264684312adfa029eb317
Change-Id: I413c4b6dd12bcf40b69423718ed278cbefe82087
Properties accessed across partitions are now schematized and will
become APIs to make explicit interfaces among partitions.
Bug: 117924132
Test: m -j
Change-Id: I968b342fdd0b8c30405611e53aca2479784636d7
Merged-In: Id36208fac5d4de062a51d541b64145560242f8fc
For testing we often need to run shell commands. This can be done
today via running a shell command from an instrumentation test
started from the shell. However, this requires adding shell commands
which are not in the API contract, involve boilerplate code, require
string parsing, etc.
This change allows an instrumentation started from the shell to
adopt the shell UID permission state. As a result one can call APIs
protected by permissions normal apps cannot get by are granted to
the shell. This enables adding dedicated test APIs protected by
signatures permissions granted to the shell.
Test: cts-tradefed run cts-dev -m CtsUiAutomationTestCases
-t android.app.uiautomation.cts.UiAutomationTest#testAdoptShellPermissions
bug:80415658
Merged-In: I4bfd4b475225125512abf80ea98cd8fcacb6a1be
Change-Id: I4bfd4b475225125512abf80ea98cd8fcacb6a1be
* changes:
Fix merge problems with cherry-picking "Add notification settings to backup&restore" change into pi-dev
DO NOT MERGE - Merge PPRL.190205.001 into master
The hidden api logger interface also receives the actual sampled value.
This is an intermediate step before a new logging method is added.
Test: m
Bug: 119217680
(cherry picked from commit 31bde16393)
Change-Id: I3345bdcdf57e1f60970c85572e503d7b33af7148
Merged-In: I707a2624a254a80391cdae277dd59daa503d055f
When recycling SomeArgs in pool, some fields are not set to null.
Which result potential memory leak as SomeArgs in pool still holds
the reference object.
To fix this issue, clear all args when recycling.
Change-Id: Ie730c3889da948c60ef746ddbe2e926d94ad7e06
Signed-off-by: Bin Chen <bin0515@gmail.com>
Signed-off-by: Wei Huang <hwbest.v@gmail.com>
Properties accessed across partitions are now schematized and will
become APIs to make explicit interfaces among partitions.
Bug: 117924132
Test: m -j
Change-Id: I141ae3a011f9cb3ea283ca25175205b6af966ec6
Merged-In: I141ae3a011f9cb3ea283ca25175205b6af966ec6
When per-procstate cpu times tracking is turned on,
BatteryStatsImpl tries to access mKernelSingleUidTimeReader but
it's possible that mKernelSingleUidTimeReader hasn't been initialized
yet after a reboot and this could lead to a system_server crash.
Bug: 111523951
Test: manual
Change-Id: Id014f23fbe31fed64fba769f14ba4396a003092e
Merged-In: Id014f23fbe31fed64fba769f14ba4396a003092e
(cherry picked from commit 020239df85)
The configuration change occurs twice and the CallbackTrackingActivity is
relaunched twice, this causes the test to fail on some devices with certain
densities.
BUG:123342948
Change-Id: Idbf79a48a55477445cd70a6f76c104d7669bf2fa
Signed-off-by: Raj Mamadgi <r.mamadgi@samsung.com>
Make HiddenApiUsageLogger a singleton initialised in Zygote pre-fork and
rely on copy-on-write to prevent heap size increases
Test: atest google/perf/memory/memory-test
Bug: 123705750
Change-Id: I384d3bdefa6525fcce494783c548e85979bce4d5
Merged-In: Idc5ad13d4e158659009290f410ce721013345308
Passed down to the zygote if the corresponding system property is set:
runtime_native / use_app_image_startup_cache.
Bug: 123524494
Bug: 116059983
Test: adb shell device_config put runtime_native use_app_image_startup_cache true
(cherry picked from commit ced7e08129)
Merged-In: I27c0b9ea9533b2b6ad1ccd45f0fb9292c4cfca02
Change-Id: I27c0b9ea9533b2b6ad1ccd45f0fb9292c4cfca02
For VPN apps targeting Q and above, they will by default be treated as
metered unless they override this setting before establishing VPN.
Bug: 120145746
Test: atest FrameworksNetTests
Test: On device tests verifying meteredness setup correctly for apps
targeting Q and apps targeting P.
Change-Id: Ia6d1f7ef244bc04ae2e28faa59625302b5994875
Track ZygoteHooks API changes in libcore to make
the ZygoteHooks API more consistent.
Bug: 111742291
Test: build / boot / treehugger
Merged-In: Ie65aac6539cffc90663807791511b95a6cd61ab4
Change-Id: Ie65aac6539cffc90663807791511b95a6cd61ab4
In android, we met a lot of watchdog timeout which
caused by read file "/d/wakeup_sources".
The root cause is that in kernel side wakeup.c, it uses single_open()
interface to show the stats. But single_open() interface
requires that the whole output must fit into a single
buffer(physical continuous). This will lead to timeout when system
memory is not in a good situation.
Problem in kenrel side has been merged in [1]. Then kernel will return
max a page bytes to user space. So in KernelWakelockReader, we
need to read again when returned count > 0.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.0-rc4&id=00ee22c28915d111ba415750a3311d7678fd1206
Change-Id: If7886514c609c8d6338532c67c1cee79f2754ab1
Signed-off-by: Ganesh Mahendran <opensource.ganesh@gmail.com>
This commit adds two OWNERS files and modifies a third to add owner
entries for files related to the Zygote.
Test: none
Change-Id: Id26271e5af168775b2d2d3f9d3cc0c3421ad03f1