45c8743428e0c9445430995ba395b3b5ebf82b3e |
|
22-Jun-2017 |
Shubham Ajmera <shubhamajmera@google.com> |
Check dexopt needed for secondary dex while downgrading Test: make otapreopt Test: manual * Remove the check in the code that allows downgrade only when the space is low on the device. * adb root * Set pm.dexopt_unopt_after_inactive_days to 600 * Make sure the current time of the device is correctly set * Install 2 non system apps - B, C * Downgrade B to extract * Upgrade a system apps to speed-profile - E * Downgrade a system app to quicken - G * adb shell cmd package bg-dexopt-job Expected Results: * Extract - B * Verify - C * There should not be any entries for apps E an G in dalvik_cache For secondary dex: * compile googlequicksearchbox to everything. * run background dexopt service for secondary dex. * verify the compiler filter for the corresponding odex files. Bug: 36598475 Change-Id: I6ad40e2c53433326f83c2589646d94ba555400b2
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
6b26ae49fc41d61bde300a074fec8dc5dcb2985c |
|
01-Jun-2017 |
Andreas Gampe <agampe@google.com> |
Installd: deleteOdex's outputPath can be null am: c523409f0f am: 7b28d34ee2 Change-Id: I8d700639d5056dd68b41e01b994f074dafe9bedc
|
c523409f0fd03aa498cedc486f85e9a4b7257f3a |
|
01-Jun-2017 |
Andreas Gampe <agampe@google.com> |
Installd: deleteOdex's outputPath can be null Add @nullable, as the outputPath can be null for system apps. Bug: 62236497 Test: m Test: Fill up /data, apply OTA Change-Id: I61d86721b485f85195b153d76ce25412dcb68be6
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
76dd2a7016e2f0afcc45d23be1b3e51c2acc4440 |
|
31-May-2017 |
Jeff Sharkey <jsharkey@google.com> |
Merge "Consistent "low storage" behavior." into oc-dev am: 1e4088fc68 am: 666ff7278b Change-Id: Ifeab043cb89ce953845a6db67cde1100ec7f715d
|
60f8a5330ca921d936ae306bf6d17596b82b518c |
|
30-May-2017 |
Jeff Sharkey <jsharkey@android.com> |
Consistent "low storage" behavior. When freeing cached data, the caller can now provide a "reserved" size which we won't clear cached data from. Bug: 38008706 Test: cts-tradefed run commandAndExit cts-dev -m CtsJobSchedulerTestCases -t android.jobscheduler.cts.StorageConstraintTest Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.StorageHostTest Change-Id: Ieb91b3e5345a950d4785fd7915f520f0a68a567a
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
f966f2a5af6cc2022a5af4edeb20cf4b5ede0d40 |
|
10-May-2017 |
Mathieu Chartier <mathieuc@google.com> |
Add copy system profile functionality Test: Flash preopted speed-profile maps. Test: Confirm ref profile exists. Test: Close maps, recompile with speed-profile, test the profile was used. Test: Launch maps, do some stuff until cur profile exists. Test: Re-compile with speed-profile and confirm cur merged over ref correctly. Bug: 38032017 Change-Id: I19c8009ad61213bdcb52f010329eb459ca82f92b
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
a084fcdcd052d71e8205a2eea0955911b99160b9 |
|
18-Apr-2017 |
Jeff Sharkey <jsharkey@android.com> |
Fix external cache and secondary user bugs. External cache files now have their own GID range, so measure using those quotas. Fix secondary user code measurement, since it always lives under user 0. Fix secondary user data measurement in manual mode; we need to match based on appId instead of pure UID. Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.StorageHostTest Bug: 35812899, 35844919, 37193650 Change-Id: Ic3b153798164c33ea10e8a4dabc65edff26c56ca
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
cb556e340b50d16e8fac41b0c69d8d35bd7915f9 |
|
05-Apr-2017 |
Calin Juravle <calin@google.com> |
Restore selinux labels for secondary dex oat directory Bug: 36896515 Test: adb shell cmd package compile -r bg-dexopt --secondary-dex com.google.android.gms adb shell ls /data/user_de/0/com.google.android.gms/app_chimera/m/0000000c/oat/arm64/ -Z youtube loads gms modules without extracting from apk Change-Id: I4e12a6f532a1442a840e3ed8d01b98dd9a328eb6
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
e12d5964a8d14abe7f2eb6e57469cbe7f7391a19 |
|
04-Apr-2017 |
Jeff Sharkey <jsharkey@android.com> |
Offer to "fixup" GIDs used for app data. We recently started tracking cached app data using a per-app GID for the "cache" and "code_cache" directories and their contents. For upgraded devices, we ideally want to "fixup" the GIDs of any existing data while the device is still showing the boot animation, instead of blocking the user when they unlock the device. Since all the information we need is available in metadata, we can update GIDs before the user has unlocked data. We're pretty paranoid and we only pivot between the normal app GID and the cache GID; any other GID values are ignored. This "fixup" method can also be used in the future to ensure consistency of the files on disk. Also fix bug by always using "fts_path" instead of "fts_accpath" which is based on racy chdir(). Test: /data/nativetest/installd_service_test/installd_service_test Bug: 34201111, 35084485 Change-Id: Ia52694f3763cba09926082c08f0766477e03e39c
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
325b8c94a5ae47b7903ea5fe386a78466d6cb3b7 |
|
21-Feb-2017 |
Jeff Sharkey <jsharkey@android.com> |
Method to test for quota support. Framework logic needs to change its behavior depending on how quickly disk usage calculations can be performed. Test: builds, boots Bug: 34690590 Change-Id: I6139d1ea6a6084b1fd42062e2032ec9f515f6d98
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
bd9683607d391a29b1422a50f8972267e9bddc47 |
|
25-Jan-2017 |
Calin Juravle <calin@google.com> |
[Installd] Clean up logic for secondary dex oat files Add a new method to installd, reconcileSecondaryOdex, which checks if the given dex files still exist and if not, deletes the oat files that were generated for it. Test: devices bots adb shell cmd package reconcile-secondary-dex com.android.google.gms (after artificially/temporarily renaming some dex files) Bug: 32871170 Change-Id: I8465a7be9fd4e44e191ad40f7bd0f41c8b2d6f73
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
5c6944c35211accd783d2584fac6421dd0af5bdd |
|
15-Dec-2015 |
MÃ¥rten Kongstad <marten.kongstad@sonymobile.com> |
installd: add command 'removeIdmap' Add an installd command to remove an idmap file. This is the inverse of the 'idmap' command and is intended for clean-up once an idmap file is no longer needed because an APK was removed, etc. This commit depends on a corresponding commit in frameworks/base (with the same Change-Id). Bug: 31052947 Test: run tests from 'OMS: tests for OverlayManagerService' Change-Id: Iae19a519803f0c172b02a32faa283ef36f43863c
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
88ddd94834dae9c5862a07a1e4432b171b2f5d9f |
|
18-Jan-2017 |
Jeff Sharkey <jsharkey@android.com> |
First pass at updated cache clearing logic. The old clearing algorithm is very naive and it sorts all cached files globally by modified time. This sadly lets apps gamify the system by setting their modified times far in the future, and it's very expensive because it requires a global filesystem traversal to free up even the smallest amount of data. Instead, this CL introduces a much more fair cache clearing algorithm that deletes files from specific UIDs based on how much cache space that UID is using proportional to the space allocated to them. This new design has several nice properties: -- It uses the recently added quotactl() feature to rapidly target the apps that are using the most space. -- We only need to traverse the filesystem for UIDs that actively enter the crosshairs of the clearing algorithm. -- Disciplined apps who stay under their allocated quota will be the last to have their cached data cleared. -- This design can be easily adapted to support additional features such as atomic purging and tombstones. In summary, the new algorithm is extremely efficient when freeing up the typical small-to-medium amounts of disk space, and is only moderately less efficient than the old algorithm when forced to clear all cached data. Test: builds, boots, clearing strategy looks sane Bug: 33965858 Change-Id: I66f95089cb33f1add3f31fcf1082ab2469870fda
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
66b1a12e7a120f85042669bb58f1db864616b506 |
|
17-Jan-2017 |
Jeff Sharkey <jsharkey@android.com> |
Handle devices without quota, speed up lookup. Start tracking which block devices have quota support, and gracefully clear FLAG_USE_QUOTA when no support is present. Also build a cached map of mounted volumes that support quota, which halves the average quota calculation speed from 0.70ms to 0.35ms, since we're no longer parsing procfs every time. Test: builds, boots, common operations work Bug: 34249218 Change-Id: Ie791df7801b67495331f3eea256c018860c9b4f6
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
df2d754b38796e0c49c70e0a67f7d383e3079ff2 |
|
07-Jan-2017 |
Jeff Sharkey <jsharkey@android.com> |
Methods to calculate user and external disk usage. Add method to calculate user disk usage, which will be faster than making a Binder call for every single appId under a user. Add method to calculate external disk usage, which uses file extensions to track usage with "audio", "video", and "images" categories. Add script to generate optimized file extension matcher logic. Start measuring internal and external storage space separately; new GIDs are coming in a future CL. Pass down all package names, inodes, and code paths, since shared UIDs host more than one. Test: builds, boots, stats are consistent Bug: 27948817, 32206268 Change-Id: Icb9843ac5159e0e5f1503d9b64e0bcae407e1a5d
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
3dfae0c008576c873c4039bb4c2e54a6adf3720a |
|
13-Dec-2016 |
Jeff Sharkey <jsharkey@android.com> |
Offer to measure disk stats using quotas. Now we're getting somewhere! This CL starts using quotactl() to read UID/GID quota statistics when called with FLAG_USE_QUOTA, otherwise it continues using the old heavy-weight traversal for calculation. We now set the recently defined per-app GID used for identifying cached data, and we use the sticky GID bit on cache directories to ensure that newly created data inherits the GID for tracking purposes. For any existing apps during an upgrade, an initial bootstrapping case will recursively set this new GID. This change also shuffles around a bunch of the tedious manual accounting logic so that we exactly match the new quota statistics. Test: builds, boots, quota stats match manual stats Bug: 27948817 Change-Id: I8512c3193ce698f197a3f446e625d6a1c74e7649
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
36a900a0db526d63e899ed5d5b0a463ad7f9236e |
|
20-Dec-2016 |
Jeff Sharkey <jsharkey@android.com> |
Remove ~1/3 of the installd calls at boot. When preparing CE storage for an app, we always perform a second call to extract any newly created CE directory inode. Let's simplify this and just return the inode number from the createAppData() call. Test: builds, boots, reads CE inodes after wipe Bug: 33463450 Change-Id: I68485e4b9b49e9da7b3ac7c66f50c6abc750b7e3
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
f3e30b936ef103dc0f3d8697e0f86ba82b49609e |
|
10-Dec-2016 |
Jeff Sharkey <jsharkey@android.com> |
Filename refactoring, remove DEXOPT_OTA flag. Test: builds, boots Bug: 13758960, 30944031 Change-Id: Ib60899fc70b12f76fad9dfad596b513777752703
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
6c2c056193010cf93b4264810d462c120ce801c8 |
|
07-Dec-2016 |
Jeff Sharkey <jsharkey@android.com> |
Final push of installd to Binder; goodbye socket! Move last two straggling installd commands to Binder and destroy the socket-based communication channel forever. Test: builds, boots, apps install fine, pre-OTA dexopt works Bug: 13758960, 30944031 Change-Id: I2ecd604fb6627b9028a7e32f87d0367e4a4afde3
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
475c6f9743e5f6696c38fb22b8b8e9d49a82ab56 |
|
07-Dec-2016 |
Jeff Sharkey <jsharkey@android.com> |
Yet another set of installd Binder methods. Pretty straightforward refactoring. Test: builds, boots, apps install fine Bug: 13758960, 30944031 Change-Id: I6e79fe1a3663807c24eb28dca684b539df398c13
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
c1e93e7d746e07791b0667c80ad43a407c515fa8 |
|
06-Dec-2016 |
Jeff Sharkey <jsharkey@android.com> |
Move more installd methods to Binder. Test: builds, boots, apps install fine Bug: 13758960, 30944031 Change-Id: I1fcaaaaad34c2f9a3d6a15443ef1764186669865
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
0274c977e3b10b52936fd5b2eb464857f0ca6358 |
|
06-Dec-2016 |
Jeff Sharkey <jsharkey@android.com> |
Shuffle installd Binder implementation around. Instead of writing wrapper methods in InstalldNativeService.cpp, this change shifts the Binder implementation over into the existing commands.cpp file. This will let us migrate all methods over, and then perform one final file rename to InstalldNativeService.cpp. The downside of this approach is that we no longer have a giant kill switch to quickly switch back. Moves the moveCompleteApp() method over to Binder. Test: builds, boots, apps install fine Bug: 13758960, 30944031 Change-Id: I53550e05bc2b65155c3de18424f67b1a95450a6f
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|
9087400f3c82b97aa17a74329c7e65c0a5ff4062 |
|
05-Dec-2016 |
Jeff Sharkey <jsharkey@android.com> |
Initial Binder interface for installd. Define an AIDL for installd, starting with a single method. Publish that interface for the system to start using. We'll circle back and migrate more methods in future CLs. Migrating installd to Binder will allow us to get rid of one of the few lingering text-based command protocols, improving system maintainability and security. Test: builds, boots Bug: 13758960, 30944031 Change-Id: Icdb5320082567e0355d8f76f413f01cfacf0fb99
/frameworks/native/cmds/installd/binder/android/os/IInstalld.aidl
|