today telephonyRegistry lives in system process
this is intended to persists all telephony listeners when
phone process crash. Telephony today notify system server by
using AIDL APIs directly. Instead, we are exposing a proper API
surface: telephonyRegistryManager where only phone app and
carrier privileged apps are allowed to use APIs in
TelephonyRegistryManger to notify telephony related status update.
Bug: 140908357
Test: Build & Manaul
Change-Id: I1b750751148925b4a7bd94553318907654012fc1
(cherry picked from commit 288b71c8c11dc25fa1dab4aadc1525d0c576008a)
Merged-in: I1b750751148925b4a7bd94553318907654012fc1
SQLiteDebug.Const isn't supposed to be preloaded.
Fix: 134176355
Test: "setprop db.log.slow_query_threshold.10045 0" and make sure ...
it works for UID 10045
Change-Id: I06ca1531e968faa2378d0cb7f627e2c6a87cf502
This is a conservative tuning for the last profile update (commit
5b70220fb5a174a7142ca5403563bf528120a63f) which regressed a few metrics
(b/130553966). The numbers below are quoated relative to the sate before
that update.
=Perf numbers=
The boot image compilation artifacts are 17MiB smaller (art/vdex/oat for
arm and arm64).
System server .art file is 100KiB smaller.
Startup and memory number are within the noise. Startup shows 0.72%
improvement. However that's most likely noise. The tests were run with:
- atest google/perf/app-startup/hermetic-apps/cold-dropcache-lock-test
- atest google/perf/app-startup/non-hermetic-apps/cold-dropcache-lock-test
- atest google/perf/memory/memory-test
- atest
google/perf/app-startup/benchmark-app-hermetic/cold-dropcache-lock-test
- atest
google/perf/app-startup/third-party-apps/cold-dropcache-stable-test
=Profile metrics=
Boot:
- methods and classes used by at least 9% of the sampled (non unique)
applications (see below for more explanations)
- 1.13% of hot methods added, 33.77% removed
- 0.65% of classes added, 21.61% removed
- 29256 hot methods in the profile (vs 43429 in the old one)
- 8681 classes in the profile (vs 10985 in the old one)
Preloaded clases:
- classes used by at least 20% of sampled applications during startup
- 1.5% added, 0.3% removed
- 7601 classes in the profile (vs 7516 in the old one)
System server:
- methods and classes used on at least 5% of sampled devices
- system server is speed compile and the image classes are the most
relevant
- 4% classes added, 23% of classes removed
- 2819 classes in the profile (vs 3418 in the old one)
=Data sample=
- 35000+ (non unique) applications contributed to the final profile
- these were spread across 4000+ (non unique) devices
- 'non unique' means that the same app or the same device (or a
combination of both) could have contributed to the final profile multiple
times
Bug: 122068885
Bug: 130553966
Test: m, build, boot, atest startup-tests
(cherry picked from commit 439305caddf8ad574b230a24cd7523ee6c591364)
Merged-In: Ic61ed2784af034ed4ae4bc8346ed67c6bed04152
Change-Id: I1fc3b301bf80bfc7dda3540c5a204af8321279bf
=Perf numbers=
The boot image compilation artifacts are 28MiB smaller (art/vdex/oat for
arm and arm64).
System server .art file is 100KiB smaller.
Startup and memory number are within the noise. Startup shows 0.11%
improvement and memory shows 0.22% improvements. However that's most
likely noise. The tests were run with:
- atest google/perf/app-startup/hermetic-apps/cold-dropcache-lock-test
- atest google/perf/app-startup/non-hermetic-apps/cold-dropcache-lock-test
- atest google/perf/memory/memory-test
=Profile metrics=
Boot:
- methods and classes used by at least 9% of the sampled (non unique)
applications (see below for more explanations)
- 0.6% of hot methods added, 51.31% removed
- 0.3% of classes added, 29.96% removed
- 21403 hot methods in the profile (vs 43429 in the old one)
- 7826 classes in the profile (vs 10985 in the old one)
Preloaded clases:
- classes used by at least 20% of sampled applications during startup
- 1.5% added, 0.3% removed
- 7601 classes in the profile (vs 7516 in the old one)
System server:
- methods and classes used on at least 5% of sampled devices
- system server is speed compile and the image classes are the most
relevant
- 4% classes added, 23% of classes removed
- 2819 classes in the profile (vs 3418 in the old one)
=Data sample=
- 35000+ (non unique) applications contributed to the final profile
- these were spread across 4000+ (non unique) devices
- 'non unique' means that the same app or the same device (or a
combination of both) could have contributed to the final profile multiple
times
Bug: 122460899
Bug: 122068885
Test: m, build, boot, atest startup-tests
(cherry picked from commit 5b70220fb5a174a7142ca5403563bf528120a63f)
Merged-In: Ib3aac3c7efae64af9d2b46e350146e53ba653cbd
Change-Id: Ib42ab29e3d28591817a396407445a6c23e5c9a27
Added these classes to prevent initialization of AsyncTask since
initializing AsyncTask may cause memory leaks.
Bug: 130206915
Test: make
Test: look at classes initialized during preloading
Change-Id: I6bacbbdf61d8a782d88debc29d9f0ca29d273888
Some API changes per API reivew:
- Move DynamicAndroidClient and ~Manager to android.os.image.
- Rename them to DynamicSystemClient and ~Manager.
- Rename permission MANAGE_DYNAMIC_ANDROID to MANAGE_DYNAMIC_SYSTEM
- Corresponding changes in the installation service.
- Corresponding changes in privapp-permissions-platform.xml.
- Add missing annotations.
- Change setOnStatusChangedListener's parameters order.
- Improve documentations.
- Re-generate api/system-current.txt.
Bug: 126613281
Test: adb shell am
Change-Id: Ia920e9ccf6de1dbbd38c52910cb72cb81b9b5b32
Boot profile:
- we added 164 methods & classes and remove 2312.
- everything that gets used is in the profile (without filtering).
Preloaded classes:
- we added 1000 classes (we used to have 6563 classes preloaded,
now we have 7528)
- all the classes that are used on more than 7 devices are
preloaded.
This is the initial update for Q. More tuning will follow up.
In particular, we have access on how many apps reported a particular
sample, which will provide grounds for more aggressive filtering.
This CL also update the preload blacklist. SystemConfig attempts to parse
OEM properties which is not allowed by SELinux and the PermissionManager
attempts to statically initialize the SystemConfig.
Bug: 122068885
Test: m & boot
Change-Id: I1f929d2c365db23f1c2c15475d59d1006e7c0a66
Removing AR from the Android code base. We had already severed the
connection to the AR HAL in Android Oreo. This change simply removes all
unused references and uses of the stubs.
Test: Build compiles. Ensure that clients that provide AR through other
channels continue to work.
Change-Id: I79d19c0bd2b80962cdecc8ad88065911fd6311ac
DropBox and EventLogger provide hooks for use by framework to intercept
messages sent by libcore. However, neither of these mechanisms are
actually used by libcore so there is no point in framework code using
it.
Bug: 119748341
Test: make checkbuild, flash
Change-Id: I9dbd1b6dea92f7441efb6d0a579efd13bc0e5139
Some time zone related libcore classes are moving from
libcore.util to libcore.timezone.
Bug: 119026403
Test: build only
Change-Id: Ic807977a85276b888362295d1d305effe33076fc
The version information about time zone formats is moving
to a new libcore class TzDataSetVersion.
Bug: 119026403
Test: build
Change-Id: I6f80f16f9cd7e37fc04d75c89483497f4f00a6a5
Split out the View/ViewRootImpl bits from the
hardware rendering bits.
Create a potential public API surface for
hardware rendering
Bug: 112709971
Test: builds & boots
Change-Id: I9e6f44b07a170574a905f42338282c4bb7e95f56
This reverts commit 766b425c27f128d507cc5101c01d7c4bf107dbca.
Appears to be the cause of a 14ms regression in wifi startup time in system server that could be offset here (and potentially other places) by keeping the preload in zygote. A local trial of five showed this revert to take it 111.2ms -> 108ms. The variance is likely too high for this to be significant, however, logically, in the short term, these libraries are being used, and so preloading makes sense. I'll leave further changes to this list to the owners of this list.
Test: boot walleye 5 times w/ and w/o this test, and find small gain in reverting this.
Reason for revert: b/115771598
Change-Id: Ia53dbe8b70900d6f04011b15cbdddf786378fc3b
These are being removed from boot jars.
Test: (sanity) boot device, no longer see 'Class not found for preloading'
Bug: 77307025
Change-Id: I854d3397ff362495ff392c2c4ea8594d1b2449bd
Update preloaded-classes to track libcore class renames.
The class renames may have caused a regression in some
performance metrics, though overall boot time was unaffected.
This is probably because the first user is now paying the cost
of the class initialization and that happens to be in the affected
metrics. There's no reason not to update the preloaded-classes.
Metrics affected:
SystemServerTiming_StartUsageService_avg
SystemServerTiming_StartJobScheduler_avg
SystemServerTiming_StartJobScheduler_avg
Test: build only
Bug: 111055375
Bug: 112595254
Change-Id: If1697918046ec7f186c095eaf68864d075989b9c
These classes cannot be statically preloaded in Zygote.
Change-Id: I7d9f10e634409bedfdd71f8daa43b8e23516638e
Fixes: 109652611
Test: atest com.android.cts.devicepolicy.MixedManagedProfileOwnerTest#testCaCertManagement
The tests use the preloaded classes to create the core image and
that leads to UnixChannelFactory being initialized despite the
fact that FileDescriptor is not. This manifests with a null pointer
crash in tests.
Bug: 80495283
Test: m test-art-host
Change-Id: I785104e6c69c605b16357a9557b203b489972261
Data aggregated across 41 dogfood profiles from 10 different
(builds,devices). The threshold for preloaded_classes was 5.
What has changed:
preloaded_classes: 643 added, 1 removed
boot image profile: ~10k methods and classes added.
Test: m, build & boot
Bug: 73313191
Change-Id: Ic2662255081a5166180f4eb894d75b2e5bd76950
Data obtained from dogfood device.
Also updated system server profile.
Bug: 73313191
Test: make and flash sailfish
Change-Id: I9cf059f177a10e940e7cda1d12a8ed7429019c3c
All violations of StrictMode now inherit from one central Violation
class. This unlocks adding penaltyCallback(Violation).
Parsing strings is no longer required to infer what type of violation
something is.
Violation classes have no need to be loaded in Zygote as only developers
opt-in to this feature and will see violations.
Cross-binder thread violation perf test:
before
2872331
2574093
2481208
after
1938227
1742714
2654538
Bug: 64258734
Test: cts-tradefed run cts-dev --module CtsOsTestCases --test
android.os.cts.StrictModeTest
Change-Id: I1971feb03ff77cf297c940cacee62fadb5b8422c
To avoid issues with late initialization, let the holder be
initialized in the zygote.
Bug: 65927416
Test: m
Change-Id: I6f454df46d4c64d295e1f2510793d5087b74fb74
> Using helper methods when writing and reading typed objects
> Moving the tag write outside the action, as it is read outside
the action as well
> Removing usused tags
Test: am instrument -w -e class android.widget.RemoteViewsTest com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner
Bug: 65574108
Change-Id: Iaf51cae6ef9f82b70dc1f19c2f019af40c4424a2
Bug: 64458884
Test: runtest -c com.android.server.NightDisplayServiceTest \
frameworks-services and manually tested Hawaii and London
Change-Id: I052034a4c64eb73c42672215e8847c11e00efeb5
(cherry picked from commit 2ce862c3ed3739c4bb794794fb57e00fe233a3d5)
Bug: 64458884
Test: runtest -c com.android.server.NightDisplayServiceTest \
frameworks-services and manually tested Hawaii and London
Change-Id: I052034a4c64eb73c42672215e8847c11e00efeb5
- Remove the class as part of removing setsockoptGroupSourceReq from
Os.java
- CtsLibcoreTestCases and CtsLibcoreOjTestCases pass on aosp/master
Bug: 32071916
Test: m
Change-Id: I132190f47cea9f56ec56a824763f7e2b2cfde893
* Pass a full object instead of just a string. I will be adding more
detailed assertions making sure cross-binder violations work.
* AOSP format the test class.
* Update to modern junit.
* Lambda-fy.
* Load ViolationLogger in Zygote.
Bug: 62458734
Test: Test improvments.
Change-Id: I2ddc489f845928154269cad449cbdc7b15dabe8e