Commit Graph

5954 Commits

Author SHA1 Message Date
Philip P. Moltmann
615fefc04a Merge changes from topic 'TransferInstallSession-oc-mr1-dev' into oc-mr1-dev am: fdaad13803
am: f288de8421

Change-Id: Ia429dfd3ee1f44094ba519d22300297326f3421e
2017-08-08 01:07:17 +00:00
TreeHugger Robot
fdaad13803 Merge changes from topic 'TransferInstallSession-oc-mr1-dev' into oc-mr1-dev
* changes:
  Allow to read all params used to create session.
  Allow to transfer+seal a install session
2017-08-08 00:45:48 +00:00
Makoto Onuki
c7421baee7 Merge "Reduce duplicate strings due to the package cache." into oc-mr1-dev am: ce3e863f31
am: a0518fb7ac

Change-Id: I02cfeba937fac4815c55ea158dfdc9723a2a2031
2017-08-07 21:41:12 +00:00
TreeHugger Robot
ce3e863f31 Merge "Reduce duplicate strings due to the package cache." into oc-mr1-dev 2017-08-07 21:05:42 +00:00
Peter Qiu
f4fb876a4e Merge "Revert "PackageManager: update documentation for FEATURE_WIFI_PASSPOINT"" into oc-mr1-dev am: e2dc2d9e9a
am: 7b2c3a73b4

Change-Id: I49c2e7048fdf6d72363f42b8f885f62079125e3f
2017-08-07 20:33:51 +00:00
Peter Qiu
e2dc2d9e9a Merge "Revert "PackageManager: update documentation for FEATURE_WIFI_PASSPOINT"" into oc-mr1-dev 2017-08-07 20:12:05 +00:00
Peter Qiu
50354046ac Revert "PackageManager: update documentation for FEATURE_WIFI_PASSPOINT"
This reverts commit 8493332166.

Change-Id: Ibecf24689952d4888269863ff02d8c97e14a0c31
2017-08-07 20:06:20 +00:00
Peter Qiu
10b9463343 Merge "PackageManager: update documentation for FEATURE_WIFI_PASSPOINT" into oc-mr1-dev am: cbf16572eb
am: 25a08bb2f2

Change-Id: I94f6dafb4b2dbcc060fe0dc8904a39bae7f8ba14
2017-08-07 19:02:45 +00:00
TreeHugger Robot
cbf16572eb Merge "PackageManager: update documentation for FEATURE_WIFI_PASSPOINT" into oc-mr1-dev 2017-08-07 18:19:59 +00:00
Philip P. Moltmann
5d74493f64 Allow to read all params used to create session.
So that they can be verified by the app calling commit().

This really only makes sense if the app calling commit is different from
the app that created the session.

Bug: 37281396
Test: cts-tradefed run cts-dev -m CtsContentTestCases --test=android.content.pm.cts.InstallSessionTransferTest
      Installed and uninstalled packages via the PackageInstaller app

Change-Id: I5c954ca59b7582555bea847f3ddbba0aeefba301
2017-08-07 10:50:58 -07:00
Philip P. Moltmann
94deaf7725 Allow to transfer+seal a install session
... so that one package can supply the data and another one can issue
the commit.

Also allow reading of sealed sessions.

Also lock more in PackageInstallerSession so that we can be sure the
session is not used by the old package anymore once transferred and that
all calls into the session work on consistent data.

Bug: 37281396
Test: cts-tradefed run cts-dev -m CtsContentTestCases --test=android.content.pm.cts.InstallSessionTransferTest
      Installed and uninstalled packages via the PackageInstaller app
      Installed and uninstalled packages via the Google Play Store

Change-Id: Id4b7a0071d703b7d18c9f5bf2bd15ebf67086d07
2017-08-07 10:50:57 -07:00
Jeff Sharkey
1fb3a312e7 Merge "Fix broken javadocs." into oc-mr1-dev am: b79eb54d36
am: 1ad38fe278

Change-Id: I21266d20be036196dbeddb9c4366d641ab1b68a8
2017-08-06 17:00:09 +00:00
Jeff Sharkey
67f9d5070a Fix broken javadocs.
Bug: 64337634
Test: make -j32 doc-comment-check-docs
Change-Id: I20fdd3dcddef09111d35946c41c596c7689effa6
2017-08-06 07:37:08 -06:00
Makoto Onuki
4501c61d65 Reduce duplicate strings due to the package cache.
Change from the previous attempt:
- Fixed the helper class.  The original version had a few bugs.
- Bundle.readFromParcel() now handles a Parcel with a read-write helper
properly.

** Comparison **
The following charts are the actual measurement with and without the fix,
using "dumpsys system".
- The red bar is "total private dirty".
- The X axsis is time since boot.

Without fix:
- #1 First boot:
-- https://docs.google.com/spreadsheets/d/1CbmU8cQQQw7n7tyqbZi3beRHNuzqcmJgdvzDpi40Q1I/edit#gid=1971317391
-- Private dirty stabilizes at ~16.8M.
-- Loading system packages took 1.8 seconds.

- #2 Second boot:
-- https://docs.google.com/spreadsheets/d/1CbmU8cQQQw7n7tyqbZi3beRHNuzqcmJgdvzDpi40Q1I/edit#gid=982210726
-- Private dirty stabilizes at ~17.5M.
-- Loading system packages took 0.5 seconds.

With fix:
- #3 First boot:
-- https://docs.google.com/spreadsheets/d/1R6lL0AnAp93HnrqWujJFNgOjj6wvGicgDlbDAevbc3g/edit#gid=791764875
-- Private dirty stabilizes at around the same level as #1.
-- Loading system packages took 1.9 seconds.

- #4 Second boot:
-- https://docs.google.com/spreadsheets/d/1CbmU8cQQQw7n7tyqbZi3beRHNuzqcmJgdvzDpi40Q1I/edit#gid=1820894299
-- Private dirty stabilizes at around the same level as #1.
-- Loading system packages took 0.7 seconds.

Package manager start up time with and without the fix:
- (Ignored ones that are too fast; probably the thermal throttling didn't kick in.)
- https://docs.google.com/spreadsheets/d/1CbmU8cQQQw7n7tyqbZi3beRHNuzqcmJgdvzDpi40Q1I/edit#gid=499396796
- Before: 3.5 seconds (average of 5 reboots)
- After: 3.6 seconds (average of 5 reboots)

Package scan speed comparison:
- With the fix, first boot.
08-03 08:49:56.851  1000   779   779 I PackageManager: Finished scanning system apps. Time: 2133 ms, packageCount: 143 , timePerPackage: 14 , cached: 0
08-03 08:49:56.971  1000   779   779 I PackageManager: Finished scanning non-system apps. Time: 121 ms, packageCount: 11 , timePerPackage: 11 , cached: 0

- With the fix, second boot.
08-03 08:53:29.387  1000   779   779 I PackageManager: Finished scanning system apps. Time: 484 ms, packageCount: 143 , timePerPackage: 3 , cached: 143
08-03 08:53:29.424  1000   779   779 I PackageManager: Finished scanning non-system apps. Time: 37 ms, packageCount: 11 , timePerPackage: 3 , cached: 11

** Conclusion **
- This CL wil slightly slow down the boot time (0.2 seconds on a thermal-throttled bullhead), but
the system server's ram consumption will go down to the no-cache level.

- Using the package cache is still faster than not using it.

Test: build, boot, reboot, adb-install, reboot
Test: bit FrameworksCoreTests:android.content.pm.PackageParserTest
Test: bit FrameworksServicesTests:com.android.server.pm.PackageParserTest
Test: cts-tradefed run cts-dev --skip-device-info --skip-preconditions --skip-system-status-check com.android.compatibility.common.tradefed.targetprep.NetworkConnectivityChecker -a armeabi-v7a -l INFO -m CtsOsTestCases -t android.os.cts.BundleTest

Bug: 64112468
Change-Id: I30691a032cb1dd1c7f6c1966a096c2f0d07a09cb
2017-08-04 14:19:32 -07:00
Peter Qiu
8493332166 PackageManager: update documentation for FEATURE_WIFI_PASSPOINT
Bug: 64331342
Test: build
Change-Id: I94937e8ff921b01c62e6b478b3ee6e581e38408e
2017-08-04 09:37:50 -07:00
Jeff Sharkey
0bb9c8ead5 Merge "Fix NPE when reading icon for removed session." into oc-dr1-dev am: 65abebbadd am: eb6733e93a
am: 1ab9c0cdff

Change-Id: I24a948b29145434376b03c3e12d23f7c7a83b0f4
2017-08-02 23:04:49 +00:00
Jeff Sharkey
623fbea979 Merge "Fix NPE when reading icon for removed session." into oc-dr1-dev
am: 65abebbadd

Change-Id: I6ef312422ea84b352f8d07a9937c64394b14776a
2017-08-02 22:49:42 +00:00
Jeff Sharkey
1ab9c0cdff Merge "Fix NPE when reading icon for removed session." into oc-dr1-dev am: 65abebbadd
am: eb6733e93a

Change-Id: I4bb82ed141cf10d74c5e6d0c08346cd6aeb73931
2017-08-02 22:43:52 +00:00
Garry Boyer
3edc04d32b Merge "Revert multi-package APK flag to off." 2017-08-02 16:25:34 +00:00
Jeff Sharkey
d1dd2c662e Fix NPE when reading icon for removed session.
The underlying session may have been destroyed before we go back to
read out the icon.

Test: builds, boots
Bug: 63795821
Change-Id: I16eb32c74a0e3b1d0605392878d65f28437006a6
2017-08-02 15:36:12 +00:00
Todd Kennedy
0681d29966 Merge "Add new API to retrieve app names in a batch" into oc-mr1-dev am: 5e049eb884
am: a1cb029caf

Change-Id: I9454b85835e0deb8264f7371748aad90cf04a42d
2017-08-02 14:43:36 +00:00
Todd Kennedy
5e049eb884 Merge "Add new API to retrieve app names in a batch" into oc-mr1-dev 2017-08-02 14:23:16 +00:00
Garrett Boyer
17041530bf Revert multi-package APK flag to off.
Disable tests when multi-package APK is disabled.

Test: Ran framework tests with flag both on and off.
Change-Id: I0aae693816af06eebe1bc6cdeebf8dad4c179260
2017-08-01 14:17:49 -07:00
Fyodor Kupolov
fc1a8ac863 Merge "Log package parse timings" into oc-mr1-dev am: cd0d29e9fc
am: 7881a63734

Change-Id: I45d395d6830c25702797068e14e2341a4e250326
2017-08-01 20:08:32 +00:00
TreeHugger Robot
cd0d29e9fc Merge "Log package parse timings" into oc-mr1-dev 2017-08-01 19:46:29 +00:00
Calin Juravle
565cab11ff Merge changes from topic 'class-loaders-mr1' into oc-mr1-dev
* changes:
  Use the class loader context when optimizing secondary dex files
  Add DexClassLoader to the list of supported class loaders
2017-08-01 18:38:05 +00:00
Makoto Onuki
443d9cacfe Merge "Revert "Reduce duplicate strings due to the package cache."" into oc-mr1-dev am: f6764fb7f7
am: a843ab3727

Change-Id: I3fd60202b73e6905e14f908f739cb53a8fe722db
2017-08-01 16:37:17 +00:00
Makoto Onuki
f6764fb7f7 Merge "Revert "Reduce duplicate strings due to the package cache."" into oc-mr1-dev 2017-08-01 16:11:27 +00:00
Fyodor Kupolov
28a988f7d5 Log package parse timings
Log time it takes to parse a package (parse=) and update the cache
(update_cache=), if time exceeds 100ms threshold.

This can be useful for analyzing bugreports of slow PM init post-OTA.

Test: manual
Bug: 62462279
Change-Id: I4099b21fae6a5db8c8f1cbc2147a33b9ee51767a
2017-07-31 18:45:32 -07:00
Makoto Onuki
63e624a61e Revert "Reduce duplicate strings due to the package cache."
The pool is just broken.... I need to fix it and re-evaluate.

This reverts commit e86a29c6e6.

Change-Id: I296df71e76ffff1d1d0fc8a50e3493e20c124a7b
2017-08-01 00:42:33 +00:00
Bryce Lee
d2ed053f6e Merge "Do not call onConfigurationChanged for appBound position changes." into oc-dr1-dev am: 33d4702a12 am: 05865fb40a
am: 94795bcaf8

Change-Id: Ifb914ce593e914e83db9cea9c9c574c627216d6f
2017-07-31 19:00:08 +00:00
Bryce Lee
94795bcaf8 Merge "Do not call onConfigurationChanged for appBound position changes." into oc-dr1-dev am: 33d4702a12
am: 05865fb40a

Change-Id: Ia5817040ce14ee6dbd995bd83444f34e78bef375
2017-07-31 18:53:39 +00:00
Bryce Lee
69aac0a7b6 Merge "Do not call onConfigurationChanged for appBound position changes." into oc-dr1-dev
am: 33d4702a12

Change-Id: Id6748aab9ee83844303324ea397d4ac699fb5839
2017-07-31 18:45:19 +00:00
Todd Kennedy
9da8b8a7fc Add new API to retrieve app names in a batch
Change-Id: I57e5c132bc58a32d70007a7a105775b526ff7bb9
Fixes: 62805090
Test: cts-tradefed run commandAndExit cts-dev -m CtsContentTestCases -t android.content.pm.cts.PackageManagerTest#testGetNamesForUids_null
Test: cts-tradefed run commandAndExit cts-dev -m CtsContentTestCases -t android.content.pm.cts.PackageManagerTest#testGetNamesForUids_empty
Test: cts-tradefed run commandAndExit cts-dev -m CtsContentTestCases -t android.content.pm.cts.PackageManagerTest#testGetNamesForUids_valid
2017-07-31 11:29:37 -07:00
Makoto Onuki
6afc3001b9 Merge "Reduce duplicate strings due to the package cache." into oc-mr1-dev am: bb77e6c689
am: bc939bbe7c

Change-Id: I33e1627e178ec4933c973767caada906c0a7f2e7
2017-07-31 18:12:08 +00:00
TreeHugger Robot
bb77e6c689 Merge "Reduce duplicate strings due to the package cache." into oc-mr1-dev 2017-07-31 17:52:41 +00:00
Bryce Lee
658d984f04 Do not call onConfigurationChanged for appBound position changes.
Since appBounds encodes both dimensions and positions, movement will
cause a diff change. This happens in situations where the dimensions
stay constant, such as dragging a PiP window around.

To avoid flooding the client side with configuration changes, this CL
checks whether the new configuration is equivalent to the existing
configuration with the exception of the position of the appBounds
before sending to the registered callbacks.

Change-Id: I8fbc94458fd9ed3b39494c3587f25e704ec02a7d
Fixes: 63927944
Test: bit FrameworksServicesTests:com.android.server.wm.AppBoundsTests
Test: go/wm-smoke
2017-07-31 08:46:00 -07:00
Bryce Lee
62781c3190 Merge "Merge "Remove rotation and app bounds from Configuration diff." into oc-dr1-dev am: 5b76ce1b2b am: d6dfd4a8b4" into oc-mr1-dev-plus-aosp
am: 5cbba88608

Change-Id: Ib281ee072bfb0f2ce1fc88ffcf1bcdee742e7901
2017-07-28 22:18:52 +00:00
Makoto Onuki
e86a29c6e6 Reduce duplicate strings due to the package cache.
The following charts are the actual measurement with and without the fix,
using "dumpsys system".
- The red bar is "total private dirty".
- The X axsis is time since boot.

Without fix:
- First boot:
https://docs.google.com/spreadsheets/d/1R6lL0AnAp93HnrqWujJFNgOjj6wvGicgDlbDAevbc3g/edit#gid=0
Private dirty stabilizes at ~16.8M.

- Second boot:
https://docs.google.com/spreadsheets/d/1R6lL0AnAp93HnrqWujJFNgOjj6wvGicgDlbDAevbc3g/edit#gid=1918404197
Private dirty stabilizes at ~17.8M.

With fix:
- First boot:
https://docs.google.com/spreadsheets/d/1R6lL0AnAp93HnrqWujJFNgOjj6wvGicgDlbDAevbc3g/edit#gid=791764875
Private dirty stabilizes at ~17.0M.

- Second boot:
https://docs.google.com/spreadsheets/d/1R6lL0AnAp93HnrqWujJFNgOjj6wvGicgDlbDAevbc3g/edit#gid=1820894299
Private dirty stabilizes at ~17.0M.

Test: build, boot, reboot, adb-install, reboot
bit FrameworksCoreTests:android.content.pm.PackageParserTest

Bug: 64112468
Change-Id: I5ae9c1b2d021fe62526d4e0dd1a52a962b48206e
2017-07-28 15:09:13 -07:00
Bryce Lee
96d54d41f4 Merge "Remove rotation and app bounds from Configuration diff." into oc-dr1-dev am: 5b76ce1b2b
am: d6dfd4a8b4

Change-Id: I38aeed5d2ab2cf7932e98e97800fa1cd73c7a3ec
2017-07-28 21:47:21 +00:00
Bryce Lee
84fa183e7d Merge "Remove rotation and app bounds from Configuration diff." into oc-dr1-dev
am: 5b76ce1b2b

Change-Id: Ibf899e9a08cdab31ae38897add813fc4c8089474
2017-07-28 21:28:05 +00:00
Bryce Lee
5b76ce1b2b Merge "Remove rotation and app bounds from Configuration diff." into oc-dr1-dev 2017-07-28 17:57:09 +00:00
Svetoslav Ganov
2cfc752278 Merge "Report permission flags for all protections based on SDK am: adb8c522a8 am: fc862c9f86" into oc-dr1-dev-plus-aosp am: bccc7625ec
am: bd0cf0ab06

Change-Id: I5bdb9b5d5ff91652a2bd4395bc4f7f783e25eb66
2017-07-28 17:27:57 +00:00
Svetoslav Ganov
bd0cf0ab06 Merge "Report permission flags for all protections based on SDK am: adb8c522a8 am: fc862c9f86" into oc-dr1-dev-plus-aosp
am: bccc7625ec

Change-Id: Idf1e289d5e70246433e5eccf286026b48e57282f
2017-07-28 17:06:59 +00:00
Svetoslav Ganov
899f54da72 Report permission flags for all protections based on SDK am: adb8c522a8
am: 436b901dbb

Change-Id: Ibe7cecd60242f1895434d586af30c2081d451f0b
2017-07-28 16:59:55 +00:00
Svetoslav Ganov
70ec94fd12 Report permission flags for all protections based on SDK am: adb8c522a8
am: fc862c9f86

Change-Id: Ie08845d6e5afa8f75e1cc5392a1f5c2166d06d20
2017-07-28 16:54:06 +00:00
Svetoslav Ganov
436b901dbb Report permission flags for all protections based on SDK
am: adb8c522a8

Change-Id: Ia30269ec2097d5978ae3e0b3930a38b3f4441ea4
2017-07-28 16:42:59 +00:00
Svetoslav Ganov
fc862c9f86 Report permission flags for all protections based on SDK
am: adb8c522a8

Change-Id: I259df147b8345f6bdba5a1ed31d01d3c42e90518
2017-07-28 16:42:09 +00:00
Bryce Lee
0e4a6dfb3f Remove rotation and app bounds from Configuration diff.
The presence of these new flags leads to issues with application that
do not expect their presence. Since these flags can appear at
critical times, such as on orientation change, these issues are
brought to the surface often.

This CL remedies this problem by first removing the rotation
property. It is not used and the original issue of orientation and
Configuration alignment has been addressed. For app bounds, the CL
reverts the behavior back to identifying diffs as a screen size
change.

Fixes: 64004417
Test: bit FrameworksServicesTests:com.android.server.wm.AppBoundsTests
Test: go/wm-smoke

Change-Id: I1fabb564dfb5c13d897336708523cf7cd5099fa0
2017-07-28 07:49:01 -07:00
Svetoslav Ganov
adb8c522a8 Report permission flags for all protections based on SDK
We added a couple of protection flags that also apply to
normal and dangerous permissions. These flags are folded
in the protection level breaking apps that directly and
compare against the protection constants. Apps that target
older than O SDK don't get protection flags folded into
the protection level.

Test: All permission tests pass
      Added a new test to ensure no protection flags reported
      for normal and dangerous permissions

Change-Id: I87b10a7695d8ecfa7156525d6f3d101fc0639513
bug:62755026
2017-07-28 05:46:53 +00:00