History log of /frameworks/base/services/core/java/com/android/server/pm/ParallelPackageParser.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cd154e95353e7af11314d2339500d6c7f85e181a 01-Mar-2017 Dianne Hackborn <hackbod@google.com> Implement issue #34842682: Add ability to limit permissions based on features

Two new attributes for <uses-permission>: android:requiredFeature and
android:requiredNotFeature.

Also update aapt to include this information in badging:

uses-permission: name='android.content.cts.REQUIRED_NOT_FEATURE_UNDEFINED' requiredNotFeature='android.software.cts.undefined'
uses-permission: name='android.content.cts.REQUIRED_MULTI_DENY' requiredFeature='android.software.cts.undefined' requiredNotFeature='android.software.cts'

Test: new PermissionFeatureTest suite.

Change-Id: Icc1f815a4675ae9dd2cb7f61730ab28b5c11228a
/frameworks/base/services/core/java/com/android/server/pm/ParallelPackageParser.java
3aea7330591e90a44e2bceb76decfe879bcdf8e5 06-Jan-2017 Narayan Kamath <narayan@google.com> Merge "PackageManagerService: Implement packageParser cache in ParallelPackageParser."
e29a5a11529dc7df82911b48b9f95461383cbcc2 17-Dec-2016 Fyodor Kupolov <fkupolov@google.com> Added SystemServerInitThreadPool

System services can use it during the boot to submit tasks that can be run in
parallel with the main thread.

Switched PersistentDataBlockService and FingerprintService from FgThread to
the new thread pool.

UiModeManagerService: update initial configurations on init thread. They run
while holding the mLock so no extra synchronization barriers are needed at a
later stage.

Test: manual - device boots without errors
Test: ParallelPackageParserTest passes
Change-Id: I548f34b0a18f61924e09a39afb12e085cde35442
/frameworks/base/services/core/java/com/android/server/pm/ParallelPackageParser.java
5c50e8630164d7d9a1a097f70d2f8bcbf1bd854f 24-Nov-2016 Narayan Kamath <narayan@google.com> PackageManagerService: Implement packageParser cache in ParallelPackageParser.

We save about 2800ms of cold startup time over baseline on a marlin,
and ~1200 ms over the parallel parsing case.

warm cold
---------------
Baseline : 1700ms 4300ms
Parallel : 1400ms 2700ms
Cache : 1000ms 1600ms
Cache & parallel : 900ms 1500ms

Note that further changes will improve the speed of cache processing.

This change also includes support for :
- a flag that been flipped in code (currently set to false).
- disabling the cache via a system property.
- wiping the cache on system upgrades.
- cache versioning.

Bug: 30792387

Test: FrameworksServicesTests
Test: manual timing

Change-Id: I281710c110af5307901dd62ce93b515287c91918
/frameworks/base/services/core/java/com/android/server/pm/ParallelPackageParser.java
fd6f4fb264d56726cd0e2fed731ad60bbe4aa06f 18-Nov-2016 Fyodor Kupolov <fkupolov@google.com> Parse packages in parallel

Introduced ParallelPackageParser. Parsing requests are processed by a
thread-pool (currently 4 threads). At any time, at most 10 results are kept
in RAM. This is enforced by the blocking queue.

scanDir has become a two-stage process:
1) Collects files for parsing and submit them to the parallel parser
2) Sequentially take elements from the parsing queue and process them by
calling scanPackageLI (as before)

Test: manual - device boots, all packages are parsed
Test: ParallelPackageParserTest passes
Bug: 30792387
Change-Id: I07a64da4d83e355b2b1f1ab350e6d8087dfd2feb
/frameworks/base/services/core/java/com/android/server/pm/ParallelPackageParser.java