f8579581c1d6bf993f26d21aefca410ac9b6706b |
|
17-Jun-2017 |
Svet Ganov <svetoslavganov@google.com> |
[DO NOT MERGE] Support native shared libs Add the shared libs that are APKs to the native library path when creating application class loaders. Also don't allow shared libraries hosting native libs to request extraction of the native libs out of the APK. Lastly, shared libraries hosting native libs must be declared as multi-architecture. Test: CTS tests in this topic bug:62720360 Change-Id: I0a398593ebe41b2976cb706ca8a388005f5aec83
/frameworks/base/core/java/android/app/LoadedApk.java
|
08408b9338f67acc4e9793ec531af2966c7f27da |
|
09-May-2017 |
Makoto Onuki <omakoto@google.com> |
Tweak for b/37809561. From the WTF log we know Args.run() sometimes gets called multiple times. Remove the Runnable interface from the Args class to make it impossible to cast it to Runnable. If the WTF still happens with this change, that'd be *very* interesting. Test: Build and boot Bug: 37809561 Change-Id: Id4bd9bd8d4098086649235fddfc2136527805838
/frameworks/base/core/java/android/app/LoadedApk.java
|
f3bb6f31f4db715b0f42d1dedd13ab84624b9fe8 |
|
02-May-2017 |
Makoto Onuki <omakoto@google.com> |
Add more information to WTF to investigate bug 37809561 Bug 37809561 Test: Build & boot -- didn't actually exercise the WTF case but it should work since getStackTraceString accepts null too. Change-Id: Iabfbe1fcde293fec919c65df7ea9650e1b247b9a
/frameworks/base/core/java/android/app/LoadedApk.java
|
ac2653499692880571922ff63a9dd0ecc2d742a1 |
|
19-Apr-2017 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #37470038: API Review: ServiceConnection.onBindingDead() Renamed. Test: booted and ran. Change-Id: Ic21f7ef66d43fb6db9f7ebbc833f28c09474ea59
/frameworks/base/core/java/android/app/LoadedApk.java
|
9484603c0fa738b67980c18b4abfd3505778ae74 |
|
01-Apr-2017 |
Dianne Hackborn <hackbod@google.com> |
Framework support to improve bg check CTS tests. (Finally) introduce a new ServiceConnection callback to tell you when the binding has died. This allows you to robustly have a weak service monitoring, and also is an easy way to find out about breakages due to app updates etc. Also clean up some debug output. Test: moved to own suite and ran them. Change-Id: I526cc00816c384fa9eb1312b92406f38085cbff9
/frameworks/base/core/java/android/app/LoadedApk.java
|
1665d0f028e3a225cb117d3e227bef5c5dace2d4 |
|
10-Mar-2017 |
Adam Lesinski <adamlesinski@google.com> |
Add support for configForSplit Applications with the android:isolatedSplits="true" attribute in their AndroidManifest.xml would have their Split APKs loaded in isolation of each other, based on a set of dependencies. Configuration Splits generated for a Feature split would not be properly loaded before, so this change, along with a tools change, fixes this issue and completes support for isolatedSplits. Bug: 30999713 Test: CTS test coming (depends on some tool changes) Change-Id: Ia4e7b0e69168a9d6637867558e306f7031720fb3
/frameworks/base/core/java/android/app/LoadedApk.java
|
f5a7bfc8d5f9e74d6fa1e5be3246e7b4cde65bf6 |
|
14-Mar-2017 |
Calin Juravle <calin@google.com> |
Register secondary dex files for JIT profiling Test: boot, and check that profiles get recorded for secondary dex files Bug: 32871170 Bug: 26719109 Change-Id: I2de23ef44eee3f1783ae698821f1c6d88c66c9a6
/frameworks/base/core/java/android/app/LoadedApk.java
|
37dfc8ee3ec676a0f059a9f9f1ec5d273e78a502 |
|
14-Mar-2017 |
Calin Juravle <calin@google.com> |
Move DexLoadReporter out of LoadedApk The DexLoadReporter was part of LoadedApk in order to lazily initialize it when the first class loader of the app was created. However there's no real association between the two and doing the initialization in LoadedApk buys us nothing. Extract the reporter in its own class and set it to BaseDexClassLoader during bindApplication stage. Test: boot, and check that loaded dex files are reported Bug: 32871170 Bug: 26719109 Change-Id: I9a0e734ae4c16d5d0979aa6d0061fbc9b6e144f6
/frameworks/base/core/java/android/app/LoadedApk.java
|
bf07e2a1da19cb020092ab00386febc2b180f130 |
|
15-Mar-2017 |
Narayan Kamath <narayan@google.com> |
LoadedApk: Notify cross-package use only when code is requested. Cross-package use is quite common when only resources are being considered. A common example is that any application that declares itself <searchable /> will see cross package resource only use from the system_server. Test: manual instrumentation. Change-Id: Ic7ad166c71a23c6026f4e12bb52309a50210aaaf
/frameworks/base/core/java/android/app/LoadedApk.java
|
9108ae1a16d1c9b0ad75292903b9cab26ab47633 |
|
07-Mar-2017 |
Calin Juravle <calin@google.com> |
Merge "PackageManager: Clean up code related to foreign dex use"
|
74f0a3450cd598f52b2c68c43531b1a27fb4e1ce |
|
04-Mar-2017 |
Calin Juravle <calin@google.com> |
PackageManager: Clean up code related to foreign dex use We simplified the way we track whether or not a dex file is used by other apps. DexManager in the framework keeps track of the data and we no longer need file markers on disk. Test: device boots, foreign dex markers are not created anymore Bug: 32871170 Change-Id: I3660e2f3913a73904181449c2d910af0a0477950
/frameworks/base/core/java/android/app/LoadedApk.java
|
a5ca62408381058c12bd5a1fe3b30f2512a73e03 |
|
02-Mar-2017 |
Adam Lesinski <adamlesinski@google.com> |
OMS: Introduce default overlays Default overlays are applied at first boot. They are specified by package name in system property ro.boot.vendor.overlay.theme as a semicolon separated list. Eg: ro.boot.vendor.overlay=com.android.vendor.overlay;com.android.vendor.overlay_two Test: manual (remove /data/system/overlays.xml and reboot) Change-Id: I8a7443a9059ccabfe1a63b075b95f1b2b6db7dbd
/frameworks/base/core/java/android/app/LoadedApk.java
|
638d81009918eae44eec3261e235b78eae44331d |
|
23-Feb-2017 |
Dimitry Ivanov <dimitry@google.com> |
Add isBundled argument to LoadedApk.makePaths call There is a disconnect between the way webview created classloader and the way makePaths decides if paths are intended for bundled app. This change moves decision making out of makePaths method which allows WebViewZygote to pass correct argument and have makePath omit java.library.path for libPaths Bug: http://b/35426785 Test: manual Change-Id: Iab5a18c0091d0193dafa750498eb00f378411ba0
/frameworks/base/core/java/android/app/LoadedApk.java
|
0e61883f5d460d733090e1955ca2d2e9922880b8 |
|
07-Feb-2017 |
Adam Lesinski <adamlesinski@google.com> |
Fix WebView crashes Use the sharedLibraryFiles from ApplicationInfo, which is what WebView patches. Bug:34761805 Test: None Change-Id: I5a496e8e017842a3fa30b956edf1b16c9459c5f0
/frameworks/base/core/java/android/app/LoadedApk.java
|
4e8628157ad0c8c52e74b720eb0328086272ffda |
|
22-Nov-2016 |
Adam Lesinski <adamlesinski@google.com> |
Add support for Split APK dependcies Apps can now declare in their base APK AndroidManifest.xml that they want to have their split APKs loaded in isolated Contexts. This means code and resources from the split get loaded into their own ClassLoader and AssetManager. <manifest xmlns:android="..." ... android:isolatedSplits="true" ... In order to make this more useful, splits can declare dependencies on other splits, which will all get pulled in to the Context and run as expected at runtime. A split declares its dependency on another split by using the tag <uses-split> in its AndroidManifest.xml: <manifest xmlns:android="..."> ... <uses-split android:name="feature_split_1" /> ... A split can have a single parent on which it depends on. This is due to the limitation of having a single ClassLoader parent. All splits depend on the base APK implicitly. PackageManager verifies that no cycles exist and that each dependency is present before allowing an installation to succeed. The runtime will then load splits based on the dependencies. Given the following APKs: base <-- split A <-- split C ^----- split B If an Activity defined in split C is launched, then the base, split A, and split C will be loaded into the ClassLoader defined for the Activity's Context. The AssetManager will similarly be loaded with the resources of the splits. A split can be manually loaded by creating a Context for that split, defined by its name: Context.createContextForSplit("my_feature_split_1"); All installed Activities, Services, Receivers, and Providers are accessible to other apps via Intent resolution. When they are instantiated, they are given the appropriate Context that satisfies any dependencies the split they were defined in stipulated. Test: WIP (CTS tests to come) Change-Id: I8989712b241b7bc84381f2919d88455fcad62161
/frameworks/base/core/java/android/app/LoadedApk.java
|
d33ef5665159212e190d2cccda55e77b19779e75 |
|
19-Jan-2017 |
Adam Lesinski <adamlesinski@google.com> |
ActivityThread: Only update code paths that have been added When an ApplicationInfo object is updated and we want to update code paths without restarting the app's process, we need to make sure that we only update the paths that have changed. This means diffing between the old paths and the new paths. Test: watch /proc/<pid>/maps for dex entries before and after running adb exec-out am update-appinfos all <package> Change-Id: I6855d860478ade3184bbb578a5483d8548396daa
/frameworks/base/core/java/android/app/LoadedApk.java
|
8d2a51f1b8fc35a1d4fda6b6cdfdf2754f1e1211 |
|
23-Nov-2016 |
Calin Juravle <calin@google.com> |
Report non-primary dex files loads to PM Scaffold for the reporting of non-primary dex files loads to the package manager. This will enable: 1) monitoring and compilation of secondary dex file 2) better way to track foreign dex file usage (used to determined the compilation filter of apks). Test: device boots Bug: 32871170 Change-Id: Ib0fe076af2c734dd054f092247a1ec7e2a74a70d
/frameworks/base/core/java/android/app/LoadedApk.java
|
2c0dc3e09429973f018f771cdecb7d4ecba48833 |
|
21-Nov-2016 |
Torne (Richard Coles) <torne@google.com> |
Merge "Precreate the classloader for the WebView." am: 566b1c80e4 am: 1feb782f01 am: 9565860b08 am: 7e17c6b0f1 Change-Id: Ie512327827e48319b3244a8d3041cb78538109d3
|
1feb782f01ab246d8050863d542be9b9a85bd81e |
|
21-Nov-2016 |
Torne (Richard Coles) <torne@google.com> |
Merge "Precreate the classloader for the WebView." am: 566b1c80e4 Change-Id: Ic79079748dae515cb8d89ef99148755ac65f1d47
|
3b6ca99b1069e8f303727a00c1da7acabe017fd8 |
|
10-Oct-2016 |
Torne (Richard Coles) <torne@google.com> |
Precreate the classloader for the WebView. We want to create the classloader for the WebView in advance in the zygote so that it can preload Java and native code for its children, but the zygote can't talk to the package manager (so doesn't have a PackageInfo for the APK) and also doesn't have an ActivityThread, so constructing a LoadedApk is difficult. Instead, we use the fact that ApplicationLoaders contains a process-global cache of classloaders for APKs, and prepopulate a cache entry without constructing a LoadedApk. This requires making ApplicationLoaders public. To calculate the correct library paths from the information the zygote has, we reuse the logic in LoadedApk (which is already public, and just needs a small change to allow a null ActivityThread when checking for instrumentation). The other parameters for classloader creation (target SDK, bundled app, etc) are hardcoded to usable values for the WebView's case. WebView never needs to use any system libraries that aren't public so claiming it's not bundled is fine even when that isn't actually true, and WebView will always target the current platform API level. Once the classloader is created, look up the factory class and call preloadInZygote on it to give it a chance to preload the native library and do other shared initialisation. Bug: 21643067 Test: enable multiprocess WebView, examine librank output to see sharing Change-Id: I696ead637e3f7382bcc58cfaf61eac5921862015
/frameworks/base/core/java/android/app/LoadedApk.java
|
dc589ac82b5fe2063f4cfd94c8ae26d43d5420a0 |
|
11-Nov-2016 |
Sudheer Shanka <sudheersai@google.com> |
Update usage of ActivityManagerNative. - Remove references to ActivityManagerProxy. - Add isSystemReady to ActivityManager. Bug: 30977067 Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test android.server.cts adb shell am instrument -e class com.android.server.am.ActivityManagerTest,com.android.server.am.TaskStackChangedListenerTest \ -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner Change-Id: I07390b6124fb1515821f5c0b37baf6ae74adc8fa
/frameworks/base/core/java/android/app/LoadedApk.java
|
a9b43182c6b43204a79e22e7efeadbd190520dd2 |
|
21-Jul-2016 |
Adrian Roos <roosa@google.com> |
ServiceConnection: Properly serialize events Fixes a bug where onServiceDisconnected could be delayed such that it would be dispatched after the connection has already reconnected. Bug: 30182617 Change-Id: I6e3fc2f125a477bb342de601530c254c34ffb4f7
/frameworks/base/core/java/android/app/LoadedApk.java
|
17c77536ec743e79b35e8e2fb17c4da41dd36ab7 |
|
23-Jun-2016 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #29532165: System Server Java Crashes in WiFi (RT Restart) I really have no idea how this can be happening (we check for a null intent before posting the args), but add another check before dispatching to try to avoid it. Change-Id: Ic704850c9750b6a078c49ea628189be568031086
/frameworks/base/core/java/android/app/LoadedApk.java
|
41bfaf870eacf1485c76085e543f354b30b88345 |
|
09-Jun-2016 |
Dianne Hackborn <hackbod@google.com> |
Fix more of issue #28689719: Runtime restart Change-Id: I0cce1cef884cf1508f1e726ea3439a5ffee84993
/frameworks/base/core/java/android/app/LoadedApk.java
|
126f78011de06c6946c814b760e18a0cb78951c3 |
|
24-May-2016 |
Calin Juravle <calin@google.com> |
Don't create or check permissions on profiles during app startup The impact is small but the IO work can be perform at different moments. Profile creation is done during app install and permission check postpone until the first profile write. Bug: 28785119 Bug: 28625993 Change-Id: Ib364f21f07a78c78e03851fa12142319ea1f931b
/frameworks/base/core/java/android/app/LoadedApk.java
|
8cb3b2bb5c49322cef07931a0ee14c99da5e4b0b |
|
19-May-2016 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Frameworks/base: Optimize LoadedApk" into nyc-dev
|
a8a58ffdeeb6a4a05de227a34972d99c005d2bf0 |
|
18-May-2016 |
Andreas Gampe <agampe@google.com> |
Frameworks/base: Optimize LoadedApk Preallocate storage lists and avoid TextUtils and its string builder for a common code path. Optimize list join helper to not have a check in the loop. Bug: 28801010 Change-Id: Iafc582031f973d718252b34bcda6405a77425628
/frameworks/base/core/java/android/app/LoadedApk.java
|
4c8e542f68c990b76ce13748c719d05e65086329 |
|
18-May-2016 |
Andreas Gampe <agampe@google.com> |
Frameworks/base: Add more systrace points Add more systrace points for application startup. Bug: 28625993 Change-Id: I76dca9e842fb43f1b85981ef94582074d31528c8
/frameworks/base/core/java/android/app/LoadedApk.java
|
2675616719734ce069db47bd8b563f775351dd38 |
|
17-May-2016 |
Dianne Hackborn <hackbod@google.com> |
Work on issue #28689719: Runtime restart There are few paths I can see to get a null intent down into the framework at this point. Add in some checks and reports at those places to mitigate and report such problems. Change-Id: If235bf342558321d3fabe9363fcebb2bcea18df1
/frameworks/base/core/java/android/app/LoadedApk.java
|
8995b00ce8f68f2a285a97c2ce711bea8c61179e |
|
11-May-2016 |
Narayan Kamath <narayan@google.com> |
LoadedApk: Avoid unnecessary work when mIncludeCode == false. We don't need to set up JIT profiles and register usage etc when the package context we're trying to construct doesn't request code. This will correct accounting for packages which are only used for resources. bug: 28519185 Change-Id: I849675efa76c8100ae937de478b52254babe384c
/frameworks/base/core/java/android/app/LoadedApk.java
|
eb96b00382f7d339479c27baafd7cfb973ada3e9 |
|
10-May-2016 |
Dimitry Ivanov <dimitry@google.com> |
Simplify permitted-path construction The white list of permitted directories is applied for every classloader namespace by libnativeloader. LoadedApk no longer needs to do that. Add mDataDir to permitted paths in the case if for any reason it is outside of the whitelisted dirs. Bug: http://b/28639227 Change-Id: I5b61ac64e281ecee3e3e9b1fe56cf04dc6ee7b25
/frameworks/base/core/java/android/app/LoadedApk.java
|
bf3b5f7a18b128c0d8b19a3bcbf12e7759bb12f8 |
|
03-May-2016 |
Dimitry Ivanov <dimitry@google.com> |
Allow apps to load libraries from under /data Allow all application classloaders to load native libraries from anywhere under /data Bug: http://b/26954419 Change-Id: I8a808bcdf4a00f7d40b513d4e2ca3d1e76c0909f
/frameworks/base/core/java/android/app/LoadedApk.java
|
c7b9482b0c4bb2d378e63541b96be45c50094e05 |
|
16-Mar-2016 |
Jeff Hao <jeffhao@google.com> |
Support to pass <uses-library> option through to dex2oat. This change takes an app's shared libraries specified by <uses-library> and passes it through to dex2oat to be used during compilation. Part of a multi-project change. Bug: 26880306 (cherry-picked from 7b331b6a8ae8d9f10482b292439457de98abd32a) Change-Id: I523b1b74775e7ed27072498509e743f1f10b1164
/frameworks/base/core/java/android/app/LoadedApk.java
|
2d4a222de157c693b16ca2b35a264dd92ae6abee |
|
25-Apr-2016 |
Narayan Kamath <narayan@google.com> |
LoadedApk: Don't set up JIT profile support inside the system_server. We shouldn't profile *any* packages loaded by the system_server, not just the system_servers own ("android") package. bug: 28241500 Change-Id: I5f3f477b40c758030a5bdc8e97d17cab6e68e204
/frameworks/base/core/java/android/app/LoadedApk.java
|
57413a74777060d9368f89966e9abcf96e33af8e |
|
25-Apr-2016 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Make fake libart for misbehaving apps be loaded." into nyc-dev
|
096e2dcf855714577bb86eaa4869ff46b5980a07 |
|
25-Apr-2016 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Disable StrictMode policy when setting up profile support" into nyc-dev
|
430ef455d626eb0f9d845ef6a283056da4883503 |
|
22-Apr-2016 |
Calin Juravle <calin@google.com> |
Disable StrictMode policy when setting up profile support Bug: 28304158 Change-Id: Iedf8714bd4f3526823b3060b30e0f11c6c0abcea
/frameworks/base/core/java/android/app/LoadedApk.java
|
ca82e616d3131570bf2ee29778f4796f343720d5 |
|
20-Apr-2016 |
Brian Carlstrom <bdc@google.com> |
Add reasons to notifyPackageUse calls This is so we can record more specific times in PackageUsage. If file with only one timestamp per package is found, the value is copied to all usage slots. Bug: 27902702 Change-Id: I8affe43c735e54620a9204433aad367cfddfded7
/frameworks/base/core/java/android/app/LoadedApk.java
|
20ed24fc0cbbada36e84dc1f1e86946db6e6c5a4 |
|
20-Apr-2016 |
Alex Light <allight@google.com> |
Make fake libart for misbehaving apps be loaded. Bug: 27775991 Change-Id: Ie4eba211e876ec0643ce6ecf6a110f3cb5e0f57e
/frameworks/base/core/java/android/app/LoadedApk.java
|
2a727d7bd52555ff2493ffdbc1f421b3228d04cc |
|
15-Apr-2016 |
Calin Juravle <calin@google.com> |
Move profile registration from bindApplication to LoadedApk In order to capture profiles for apps which share the same VM and for splits loaded without restart we need to move the profile registration closer to where we create the class loaders (since bindApplication is not called multiple times). Moving the registration after class loader creation also allows us to not profile apks which are already fully compiled. Bug: 27539488 Bug: 27893309 Bug: 28012567 Change-Id: I6333f026f4f0680ca28e989f1686e3eac1145339
/frameworks/base/core/java/android/app/LoadedApk.java
|
8a372a0a280127743ce9a7ce4b6198c7a02d2a4f |
|
16-Mar-2016 |
Jeff Sharkey <jsharkey@android.com> |
Refactoring FBE APIs based on council feedback. Mostly consists of removing the word "encryption" from most APIs, since we can't actually make promises about the data being encrypted. Bug: 27531029 Change-Id: Iace9d7c4e64716abf86ed11847c40f3947e1d625
/frameworks/base/core/java/android/app/LoadedApk.java
|
d136e51a99df5275eaafdde407e89e78c02b829b |
|
10-Mar-2016 |
Jeff Sharkey <jsharkey@android.com> |
Defuse Bundles parsed by the system process. It's easy for apps to throw custom Parcelables into Bundles, but if the system tries peeking inside one of these Bundles, it triggers a BadParcelableException. If that Bundle was passed away from the Binder thread that delivered it into the system, we end up with a nasty runtime restart. This change mitigates this trouble by "defusing" any Bundles parsed by the system server. That is, if it encounters BadParcelableException while unpacking a Bundle, it logs and delivers an empty Bundle as the result. Simultaneously, to help catch the system process sticking its fingers into Bundles that are destined for other processes, a Bundle now tracks if it's "defusable." For example, any Intents delivered through ActivityThread are marked as being defusable, since they've arrived at their final destination. Any other Bundles are considered to be "in transit" and we log if the system tries unparceling them. Merges several Parcel boolean fields into a flags int. Add better docs to several classes. Bug: 27581063 Change-Id: I28cf3e7439503b5dc9a429bafae5eb48f21f0d93
/frameworks/base/core/java/android/app/LoadedApk.java
|
43b28b17d2af269f58a7b0b8d8714444ac9bbd76 |
|
15-Mar-2016 |
Dimitry Ivanov <dimitry@google.com> |
Restore fix for native activity without a java-code The regression was introduced by 39bfee5e3674faea992c32204abc1c03429b8cda which undid the fix to classloader construction. This commit reapplies the fix from b9c9026bdd0076014aeca62b088053d8fbce2326 Bug: http://b/27250344 Change-Id: I6c341d911ba0f311c63e380dd9dd064ba2faf391
/frameworks/base/core/java/android/app/LoadedApk.java
|
082614c6a57a115ee0c5975e3579bf34a178c0f8 |
|
04-Mar-2016 |
Adam Lesinski <adamlesinski@google.com> |
Cache per-Activity Resources objects Each Activity has a Resources object whose underlying state changes when a configuration change occurs, both global and for that activity only (multi-window). Views and other clients of the Resources object can safely cache it knowing that they always have a reference to the most up-to-date resources. This applies to Resources.Theme objects as well. Bug:26854894 Change-Id: Ifd3da5a1086e17f747dfc265a447fe92a3a5c692
/frameworks/base/core/java/android/app/LoadedApk.java
|
39bfee5e3674faea992c32204abc1c03429b8cda |
|
24-Feb-2016 |
Todd Kennedy <toddke@google.com> |
Splits without restart In specific cases [as determined by the installer], we can install splits without restarting the application. The split must be purely additive [i.e. it should not modify class(es)/resource(s) defined in the base or other splits. Otherwise, the behaviour could be inconsistent [e.g. if a modified class was already loaded, the modified version won't be loaded until the process is restarted]. The platform does not perform any verification that the split is purely additive. Bug: 26463098 Change-Id: I3526c3b1b847a8e0afabc7a4787fa770422196b7
/frameworks/base/core/java/android/app/LoadedApk.java
|
b2b8c3c1d912f7f326ab6b3f9e6493c94f2c72e9 |
|
01-Mar-2016 |
Dimitry Ivanov <dimitry@google.com> |
Explicitly check for updated system apps Unbundled apps should not be allowed to share linker-namespaces with default namespace; it implies that they will not have unlimited access to private native libs once updated. Bug: http://b/27189432 Change-Id: I60295b9b31d700016add93537418fdcce5a77719
/frameworks/base/core/java/android/app/LoadedApk.java
|
369f509d5688f84d1e5205c79ab919c1bac6c969 |
|
29-Feb-2016 |
Jeff Sharkey <jsharkey@android.com> |
Sigh, someone is pushing 2MB through StopInfo. Bug: 27401092 Change-Id: Ib27a56ecc63662ce2d6210890ac65eca09fac9d6
/frameworks/base/core/java/android/app/LoadedApk.java
|
f8880561e67e1da246970b49b14285efd4164ab1 |
|
26-Feb-2016 |
Jeff Sharkey <jsharkey@android.com> |
When system server goes down, crash apps more. Similar to first patch, but now using new "rethrowFromSystemServer()" method which internally translates DeadObjectException into DeadSystemException. New logic over in Log.printlns() now suppresses the DeadSystemException stack traces, since they're misleading and just added pressure to the precious log buffer space. Add some extra RuntimeInit checks to suppress logging-about-logging when the system server is dead. Bug: 27364859 Change-Id: I05316b3e8e42416b30a56a76c09cd3113a018123
/frameworks/base/core/java/android/app/LoadedApk.java
|
a55c7f15a3c386ec643f21eeb2f4e9fd7b03ba70 |
|
23-Feb-2016 |
Dimitry Ivanov <dimitry@google.com> |
Create linker-namespace for the classloader With this change ApplicationLoaders.getClassLoader() creates linker-namespace for the classloader at the construction time. Before this change the namespace was created on first load of a jni library. With this change we ensure that every classloader has initialized namespace associated with it. As an additional advantage we now can avoid storing namespace-specific fields in the classloaders. Bug: http://b/27189432 Bug: http://b/22548808 Change-Id: I3b160bd478a55171008682c40b2ebc13bdbd9882
/frameworks/base/core/java/android/app/LoadedApk.java
|
b9c9026bdd0076014aeca62b088053d8fbce2326 |
|
19-Feb-2016 |
Dimitry Ivanov <dimitry@google.com> |
Construct classloader for apps with no java code The commit 6f06ad7df1362e9e5b252689f452bdeee2e5af46 fixed a way to load native library for NativeActivity by using classloader logic to find the library; which also fixed the problem of native activity not working when library is supposed to be opened directly from the apk. As a side effect it introduced regression - apps without java code did not have correctly initialized classloader. This change fixes this by constructing classloader with empty dexpath but valid nativeLibrarySearchPath. Bug: http://b/26015561 Bug: http://b/27250344 Change-Id: I50f1119f0976a95edd75d88efb9fcdedc57efbc3
/frameworks/base/core/java/android/app/LoadedApk.java
|
c7bacab20fa8a0e603726f4f8ebafd3a96babeb1 |
|
09-Feb-2016 |
Jeff Sharkey <jsharkey@android.com> |
More encryption-aware triaging. Most of these callers are okay having results omitted when a package is uninstalled or encryption unaware. For example, jobs and notifications can only be enqueued by already running apps. When clearing zen rules, keep around rules inserted by apps on ejected external storage devices. Make ServiceWatcher stricter by requiring that the matching package be in the system image. Bug: 26471205, 27105254 Change-Id: Ie41ea8042ac1a54e9cbe0c35cec89e70521e9bed
/frameworks/base/core/java/android/app/LoadedApk.java
|
add74a46297ecc9640564958daf2929b7fd0b116 |
|
04-Feb-2016 |
Dimitry Ivanov <dimitry@google.com> |
Workaround for apps loading foreign native libs Bug: http://b/26954419 Change-Id: I4272d015213b386abc1b04c0349cf1b081288058
/frameworks/base/core/java/android/app/LoadedApk.java
|
844ccc5ad9fc9e5dc22c3bdd1d2418cce90a7720 |
|
25-Jan-2016 |
Dimitry Ivanov <dimitry@google.com> |
Merge "Remove path to the apk from the permittedPath" am: 5194d217b8 am: e057ed6b6b * commit 'e057ed6b6bd9d71d034f4cdf5a1edc05f8b63a40': Remove path to the apk from the permittedPath
|
ee5a181371f24fba5e002c400836fb642780ee62 |
|
22-Jan-2016 |
Dimitry Ivanov <dimitry@google.com> |
Remove path to the apk from the permittedPath Bug: http://b/26732624 Bug: http://b/22548808 Change-Id: Idc63550f9ab67d30aaa0a1fd1b2d19545c07d1b9
/frameworks/base/core/java/android/app/LoadedApk.java
|
44fadb21e0de195d7d950aeb8958875c9920006e |
|
12-Dec-2015 |
Dimitry Ivanov <dimitry@google.com> |
Use shared namespace for bundled app classloader Allow bundled apps to reference platform native libraries located in subdirectories of the default library path (/system/lib/hw/* for example). In addition to this bundled apps need to share native libraries with default namespace. Added parameter to ApplicationLoaders.createClassLoader() to do just that. Bug: 26165097 Bug: 26164393 (cherry picked from commit 75b10ecccdd1881390075dd22c1d4f9bdf1c5828) Change-Id: I836e5fed4713f2a605a5de673c40970ef6d988dd
/frameworks/base/core/java/android/app/LoadedApk.java
|
75b10ecccdd1881390075dd22c1d4f9bdf1c5828 |
|
12-Dec-2015 |
Dimitry Ivanov <dimitry@google.com> |
Use shared namespace for bundled app classloader Allow bundled apps to reference platform native libraries located in subdirectories of the default library path (/system/lib/hw/* for example). In addition to this bundled apps need to share native libraries with default namespace. Added parameter to ApplicationLoaders.createClassLoader() to do just that. Bug: 26165097 Bug: 26164393 Change-Id: I833b4f758c4df8f8958d72eafd5d47ef14079ce1
/frameworks/base/core/java/android/app/LoadedApk.java
|
048a0db7b512326d0fae0efa7fef7ea2d17a3dd8 |
|
15-Nov-2015 |
Dmitriy Ivanov <dimitry@google.com> |
Use nativeloader to load NativeActivity System apps are the exception and they can access internal platform libraries (this is needed for bundled apps to work correctly). Also fix the way NativeActivity loads the native library to correspond to the way BaseDexClassloader does it. Bug: http://b/22548808 Bub: http://b/25777936 Change-Id: Idc94cdded182ea2cb1cbebc76c336cc3394c7ebe (cherry picked from commit 6f06ad7df1362e9e5b252689f452bdeee2e5af46)
/frameworks/base/core/java/android/app/LoadedApk.java
|
6f06ad7df1362e9e5b252689f452bdeee2e5af46 |
|
15-Nov-2015 |
Dmitriy Ivanov <dimitry@google.com> |
Use nativeloader to load NativeActivity System apps are the exception and they can access internal platform libraries (this is needed for bundled apps to work correctly). Also fix the way NativeActivity loads the native library to correspond to the way BaseDexClassloader does it. Bug: http://b/22548808 Bub: http://b/25777936 Change-Id: Idc94cdded182ea2cb1cbebc76c336cc3394c7ebe
/frameworks/base/core/java/android/app/LoadedApk.java
|
183501e1aaee9584f8f0c6ea2d983e3fc17429d1 |
|
11-Nov-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Merge "Remove performBootDexOpt and am's ensurePackageDexOpt."
|
27c073796978106746e4a51f2100b29068ab37f6 |
|
05-Nov-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Remove performBootDexOpt and am's ensurePackageDexOpt. Except common shared libraries and boot image, all compilations are now done through BackgroundDexOptService. Change-Id: Ib736e253c38b0c8085bc94e45f4e61a048f66e26
/frameworks/base/core/java/android/app/LoadedApk.java
|
15447798a38d2b5acb1998731340255f4203f294 |
|
06-Nov-2015 |
Jeff Sharkey <jsharkey@android.com> |
Initial file-based encryption public APIs. Define two explicit directories where device-encrypted and credential-encrypted data will be stored. Third-party apps only need access to the device-encrypted directory, so that's the only API exposed for now. General cleanup in how ApplicationInfo details are derived. Bug: 22358539 Change-Id: If0a0108721a4aa1c3052b4912e08604bbf24e1ae
/frameworks/base/core/java/android/app/LoadedApk.java
|
2107d69d35191c8e16e61720da62ff33290f5a8a |
|
03-Sep-2015 |
Alan Viverette <alanv@google.com> |
Postpone loading app context until instrumentation is set up The application context needs instrumentation data to be in place prior to construction so that the class loader is initialized using the correct paths. Removes unnecessary clearClassLoader() workaround that was previously added to fix instrumentation tests. Bug: 22627299 Change-Id: Ibf8e69e037189a9a563f0b68cfe333461726b71d
/frameworks/base/core/java/android/app/LoadedApk.java
|
346296bd7d28fa79509605f30a222eb85d6bbb5d |
|
01-Sep-2015 |
Alan Viverette <alanv@google.com> |
Reset class loader after updating instrumentation paths Bug: 23688983 Change-Id: I9a0f81b422b5e29f3f8707b987e40c65965e0223
/frameworks/base/core/java/android/app/LoadedApk.java
|
e56b3f63e8235ab45e081fc9d3476a3e5248ddde |
|
06-Jun-2015 |
Dmitriy Ivanov <dimitry@google.com> |
Add path to native libraries inside apk If an application has native code (and primary abi) include path to corresponding folder inside apk-file to ldLibraryPath when constructing PathClassLoader Bug: 21647354 Bug: 21667767 Bug: 21726698 Bug: 8076853 Change-Id: Ib0a2f01ee69019d3206a00c542bd7d0f58d0c481
/frameworks/base/core/java/android/app/LoadedApk.java
|
b9f3674c11ed9c89b80a69f728cbc5f540b2ecde |
|
09-Apr-2015 |
Jeff Sharkey <jsharkey@android.com> |
Support moving apps to expanded storage. Start deriving the data path for apps based on the volume UUID where the app lives. This path is used for all higher-level APIs, giving us a clean place to switch app storage. When parsing a package, keep track of the volume UUID where it lives and update PackageSetting once installed. For now continue treating moves as installs, but we'll eventually clean this up to avoid the additional dexopt pass. Wire up move to use the new installd command to move private data between devices. Cache LoadedApk only for the current user, since otherwise the data dir points at the wrong path. Bug: 19993667 Change-Id: I53336e3b147d5fd3130e6800869af172b628da37
/frameworks/base/core/java/android/app/LoadedApk.java
|
16df82d7ace0dbe625211561ccec9b6faf81debb |
|
10-Feb-2015 |
Calin Juravle <calin@google.com> |
am fd523efc: Merge "Get the instruction set that the libraries of secondary Abi is supported." automerge: d1e074a * commit 'd1e074a72452c909c7ed2a4baf220d9d2f306b20': Get the instruction set that the libraries of secondary Abi is supported.
|
fd523efcde98e97cd8c088f95198e6e13f4f8b64 |
|
10-Feb-2015 |
Calin Juravle <calin@google.com> |
Merge "Get the instruction set that the libraries of secondary Abi is supported."
|
0f8ecc84c8b86054bfd3275f942c3a705df01fbb |
|
12-Jan-2015 |
Olawale Ogunwale <ogunwale@google.com> |
am 9d293911: am ebdfb6e8: Merge "[ActivityManager] Distinguish FG or BG receiver finished" * commit '9d293911221cac930eb8edfef01362ea083eeaab': [ActivityManager] Distinguish FG or BG receiver finished
|
1f5ac4d322d76ca76fdf5dee40fe9549aad7437e |
|
03-Jan-2015 |
riddle_hsu <riddle_hsu@htc.com> |
[ActivityManager] Distinguish FG or BG receiver finished Symptom: Assume a foreground broadcast FG and a background BG. If a recevier registers both FG and BG. When sending BG and FG to the receiver, and the receiver BG receiver completes first, its finishReceiver will trigger next FG receiver rather than BG, and also deliver wrong result code/data to the next. More detail and sample: https://code.google.com/p/android/issues/detail?id=92917 Root cause: Due to BroadcastQueue:getMatchingOrderedReceiver will match by receiver(IBinder), so the caller ActivityManagerService: broadcastRecordForReceiverLocked will always match the first queue(fg) if a receiver is both receiving fg and bg. Solution: Add a parameter flags to finishReceiver, then server side could know the finished receiver should belong to which queue. Another general solution but with bigger scope: I60dce4a48e20c1002a61a979e4d78b9b0a8b94a0 Change-Id: I913ca6f101ac8ec6c7a8e42754e6781f80247b7f
/frameworks/base/core/java/android/app/LoadedApk.java
|
4741cd92d1a34d5e7a86b645498df00865f6c651 |
|
17-Dec-2014 |
jgu21 <jinghui.gu@intel.com> |
Get the instruction set that the libraries of secondary Abi is supported. The secondary Abi is for the apps which support the mulitArch feature. In presence of a native bridge the instruction set supported by secondary Abi might be different than the one secondary Abi used. Change-Id: I318fb21e45c34de6cf1bf8ff63519aaa2b1e2520 Signed-off-by: jgu21 <jinghui.gu@intel.com>
/frameworks/base/core/java/android/app/LoadedApk.java
|
23d40c40aa70866e12ccba640a71bbbf8d492a87 |
|
20-Nov-2014 |
Adam Lesinski <adamlesinski@google.com> |
Fix race when cleaning up receivers/services in Context Bug:18135575 Change-Id: I2c69c8189d9ebd297c8a83fe84658b26cbb0528f
/frameworks/base/core/java/android/app/LoadedApk.java
|
8091edbffbacbf80eebe0ed646e6ec9f6aafe5be |
|
15-Oct-2014 |
Narayan Kamath <narayan@google.com> |
Set threads' contextClassLoader during LoadedApk.makeApplication. We used to set this from LoadedApk.getClassLoader. This had the unfortunate side effect of clobbering the threads default classloader when Context.createPackageContext().getClassLoader() was called. This happens, for example, to every app that uses a updatable webview. bug: 17986934 Change-Id: If2b5938a19f836ea5fe60c94ea53a7125c2098c0
/frameworks/base/core/java/android/app/LoadedApk.java
|
1e466385d4a4f1acee080fa0fdf16cc8fd8ce7ca |
|
15-Aug-2014 |
Adam Lesinski <adamlesinski@google.com> |
Have R classes generate their own reference rewrite logic Change-Id: I0e5b8311fc3479d966a49f9acf0d4c32a6a024d3
/frameworks/base/core/java/android/app/LoadedApk.java
|
2cb761e3ddb9d68ab430013e9cd15ecaab9fbc62 |
|
15-Aug-2014 |
Adam Lesinski <adamlesinski@google.com> |
Fix assumption about DynamicRefTable in aapt Packages without any resources should not expect to have a DynamicRefTable. Bug:16895517 Bug:17056720 Change-Id: Id006f6bdbf08f30505f6ba5982bc9d1b09db0f0a
/frameworks/base/core/java/android/app/LoadedApk.java
|
29564cd24589867f653cd22cabbaac6493cfc530 |
|
07-Aug-2014 |
Narayan Kamath <narayan@google.com> |
Remove system_server classes from the boot image. We set the system_server classpath in the environment (like we do with BOOTCLASSPATH). After the zygote forks the system_server, we dexopt the classpath (if needed) and then launch the system server with the correct PathClassLoader. This needed several small / medium refactorings : - The logic for connecting to installd is now in a separate class and belongs in the system_server. - SystemService / SystemServiceManager have now moved to classes.jar. They are only used from there, and since they use Class.forName, we want them to be loaded by the system_server classloader, and not the bootclassloader. - BootReceiver now moves to frameworks.jar, because it is used by ActivityThread and friends. bug: 16555230 Change-Id: Ic84f0b2baf611eeedff6d123cb7191bb0259e600
/frameworks/base/core/java/android/app/LoadedApk.java
|
6c4b9de8f1fd594038793c3924b52a44138c319e |
|
08-Aug-2014 |
Narayan Kamath <narayan@google.com> |
Validate instruction sets passed to installd. We don't want folks passing down arbitrary strings. bug: 16837404 Change-Id: I73ac66b376f1401f9f95f3c6323da6242ac8ed3d
/frameworks/base/core/java/android/app/LoadedApk.java
|
fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7 |
|
17-Jul-2014 |
Dianne Hackborn <hackbod@google.com> |
Implement issue #16330060: Inform ActivityManager about WebView... ...state changes. Add a new API to tell the activity manager about a new dependency one process has on another package. Start using it already for when apps is Context.createPackageContext() to load code from another app. Also do some work on getting the monitoring of proc/uid states in shape so it can be used by unundled code, along with an AppImportanceMonitor class for doing so. Some small fixes and additions to VoiceInteractionService. Improve handling of unaccounted/overcounted battery use so that they aren't shown to the user unless they are significant. Change-Id: I22dd79a73f4e70103d3f8964494aebc8a31f971c
/frameworks/base/core/java/android/app/LoadedApk.java
|
2053168eb4506e2f8795afdbe9731c6451e1589c |
|
14-Jul-2014 |
Narayan Kamath <narayan@google.com> |
Dexopt for Context.createPackageContext when code is included. The package manager now keeps track of per ISA dex-opt state. There are two important things to keep in mind here : - dexopt can potentially be very slow. In cases where the target package hasn't been dexopted yet, this can take multiple seconds and may cause an ANR in the caller if the context is being created from the main thread. - We will need to remove the constraint that dexopt can only be requested by the system (or root). Apps will implicitly be requesting dexopt by asking for package contexts with code included. It's important to note that unlike dalvik, the dexopt stage in ART isn't optional. ART cannot load classes directly from dex files. bug: 15313272 Change-Id: I0bd6c323a9c1f62f1c08f6292b7f0f7f08942726
/frameworks/base/core/java/android/app/LoadedApk.java
|
7dba6eb3ac4fd6c8195cb0d0425866de50a9e114 |
|
16-Jul-2014 |
Narayan Kamath <narayan@google.com> |
Adjust nativeLibraryDir for package contexts of multiArch installs. When we're creating a package context for a multi-arch app, adjust the native library directory to match the bitness of the process creating the context. This change also removes apkRoot (which wasn't really being used) and replaces it with a fully constructed secondary library path. The secondary library path is a transitional measure until we can reorganize the system image so that we can use nativeLibraryRoot for system paths as well (nativeLibraryRootRequiresIsa will then be true for all packages except for legacy installs). bug: 16013931 Change-Id: I5ae090334b377b9e087aecf40075fab81b20b132
/frameworks/base/core/java/android/app/LoadedApk.java
|
8a4c9721a9e09d20c63381c13fa29bd9f7cbc3e3 |
|
16-Jun-2014 |
Jeff Sharkey <jsharkey@android.com> |
Plumb split APKs into public API. Introduces new ApplicationInfo fields to surface zero or more split APKs for an application. Splice these APKs into both the class loader and resource system. Cleaner building of these paths. Run dexopt() on all split APKs found after a parse, and populate into ApplicationInfo. Change-Id: I4a376bf4492d84ea95aafa866e106ea43a43e492
/frameworks/base/core/java/android/app/LoadedApk.java
|
de898ff42912bd7ca1bfb099cd439562496765a4 |
|
30-Jan-2014 |
Adam Lesinski <adamlesinski@google.com> |
Shared library resource support Shared libraries can now export resources for applications to use. Exporting resources works the same way the framework exports resources, by defining the public symbols in res/values/public.xml. Building a shared library requires aapt to be invoked with the --shared-lib option. Shared libraries will be assigned a package ID of 0x00 at build-time. At runtime, all loaded shared libraries will be assigned a new package ID. Currently, shared libraries should not import other shared libraries, as those dependencies will not be loaded at runtime. At runtime, reflection is used to update the package ID of resource symbols in the shared library's R class file. The package name of the R class file is assumed to be the same as the shared library's package name declared in its manifest. This will be customizable in a future commit. See /tests/SharedLibrary/ for examples of a shared library and its client. Bug:12724178 Change-Id: I60c0cb8ab87849f8f8a1a13431562fe8603020a7
/frameworks/base/core/java/android/app/LoadedApk.java
|
defd4a6b0448bf13606695eb086c77aa099684a2 |
|
11-Mar-2014 |
Jeff Brown <jeffbrown@google.com> |
Retain display when creating specialized contexts. Fixed a bug that cause Context.createPackageContext() to discard display information. Likewise also fixes issues where the activity token, override configuration, user handle, and restriction state might be discarded. As part of this change, reworked how Contexts are created to make initialization easier to understand and less error-prone. The init() methods have been removed and most of the state is now stored in final variables. Bug: 12015587 Change-Id: If795851f1cd078bef889b76a52e00d9b3c06ab11
/frameworks/base/core/java/android/app/LoadedApk.java
|
48d22323ce39f9aab003dce74456889b6414af55 |
|
31-Jan-2014 |
MÃ¥rten Kongstad <marten.kongstad@sonymobile.com> |
Runtime resource overlay, iteration 2 Support any number of overlay packages. Support any target package. UPDATED PACKAGE MATCHING ------------------------ In Runtime resource overlay, iteration 1, only a single overlay package was considered. Package matching was based on file paths: /vendor/overlay/system/framework-res.apk corresponded to /system/framework-res.apk. Introduce a more flexible matching scheme where any package is an overlay package if its manifest includes <overlay targetPackage="com.target.package"/> For security reasons, an overlay package must fulfill certain criteria to take effect: see below. THE IDMAP TOOL AND IDMAP FILES ------------------------------ Idmap files are created by the 'idmap' binary; idmap files must be present when loading packages. For the Android system, Zygote calls 'idmap' as part of the resource pre-loading. For application packages, 'idmap' is invoked via 'installd' during package installation (similar to 'dexopt'). UPDATED FLOW ------------ The following is an outline of the start-up sequences for the Android system and Android apps. Steps marked with '+' are introduced by this commit. Zygote initialization Initial AssetManager object created + idmap --scan creates idmaps for overlays targeting 'android', \ stores list of overlays in /data/resource-cache/overlays.list AssetManager caches framework-res.apk + AssetManager caches overlay packages listed in overlays.list Android boot New AssetManager's ResTable acquired AssetManager re-uses cached framework-res.apk + AssetManager re-uses cached 'android' overlays (if any) App boot ActivityThread prepares AssetManager to load app.apk + ActivityThread prepares AssetManager to load app overlays (if any) New AssetManager's ResTable acquired as per Android boot SECURITY -------- Overlay packages are required to be pre-loaded (in /vendor/overlay). These packages are trusted by definition. A future iteration of runtime resource overlay may add support for downloaded overlays, which would likely require target and overlay signatures match for the overlay to be trusted. LOOKUP PRIORITY --------------- During resource lookup, packages are sequentially queried to provide a best match, given the constraints of the current configuration. If any package provide a better match than what has been found so far, it replaces the previous match. The target package is always queried last. When loading a package with more than one overlay, the order in which the overlays are added become significant if several packages overlay the same resource. Had downloaded overlays been supported, the install time could have been used to determine the load order. Regardless, for pre-installed overlays, the install time is randomly determined by the order in which the Package Manager locates the packages during initial boot. To support a well-defined order, pre-installed overlay packages are expected to define an additional 'priority' attribute in their <overlay> tags: <overlay targetPackage="com.target.package" priority="1234"/> Pre-installed overlays are loaded in order of their priority attributes, sorted in ascending order. Assigning the same priority to several overlays targeting the same base package leads to undefined behaviour. It is the responsibility of the vendor to avoid this. The following example shows the ResTable and PackageGroups after loading an application and two overlays. The resource lookup framework will query the packages in the order C, B, A. +------+------+- -+------+------+ | 0x01 | | ... | | 0x7f | +------+------+- -+------+------+ | | "android" Target package A | Pre-installed overlay B (priority 1) | Pre-installed overlay C (priority 2) Change-Id: If49c963149369b1957f7d2303b3dd27f669ed24e
/frameworks/base/core/java/android/app/LoadedApk.java
|
add005cf94dcc815d29b54588c76fd87929075b3 |
|
18-Jul-2013 |
Dianne Hackborn <hackbod@google.com> |
Mmmmmmm... lovely, lovely ArrayMap. And ArraySet, too. Change-Id: I72ea28cbb2286b01b6e1be082f8e7ec17e99074e
/frameworks/base/core/java/android/app/LoadedApk.java
|
88c0589969b17e66559cd2f132094cdaa0ee351d |
|
28-Jun-2013 |
Craig Mautner <cmautner@google.com> |
Refactor ActivityThread cache - Baby step 1. Introduce ResourcesManager and ResourcesKey as standalone classes. Move DisplayMetrics and Resources HashMaps from ActivityThread to ResourcesManager. Change-Id: I20cc6c0dd1b74667354839e5ac9a660f4ee2d00d
/frameworks/base/core/java/android/app/LoadedApk.java
|
48d0d1886731ff19ed3fb47a5997be5df0d1bba8 |
|
11-Jun-2013 |
Craig Mautner <cmautner@google.com> |
Add activity token to display system. First step in adding activity specific information to displays. Replace CompatibilityInfoHolder with DisplayAdjustmentsHolder that holds an activity token in addition to the CompatibilityInfo. Change-Id: Ie113cd8dd9c62e0b5311204e039a4829096bea68
/frameworks/base/core/java/android/app/LoadedApk.java
|
208d937b613a49ad136a0eb182de5bcd73b48def |
|
25-Feb-2013 |
Dianne Hackborn <hackbod@google.com> |
Better exceptions when LoadedApk fails. Change-Id: Iba578c3872c6aeba3bf468735f06bd486d661454
/frameworks/base/core/java/android/app/LoadedApk.java
|
20e809870d8ac1e5b848f2daf51b2272ef89bdfc |
|
01-Sep-2012 |
Dianne Hackborn <hackbod@google.com> |
Add registering for explicit users. New API to register as an explicit user, which allows you to also select ALL to see broadcasts for all users. New BroadcastReceiver API to find out which user the broadcast was sent to. Use this in app widget service to handle per-user package broadcasts and boot completed broadcasts correctly. Change-Id: Ibbe28993bd4aa93900c79e412026c27863019eb8
/frameworks/base/core/java/android/app/LoadedApk.java
|
a492c3a7b2c18426fd0cb4d017eacbc368195dc5 |
|
24-Aug-2012 |
Jeff Brown <jeffbrown@google.com> |
Initial draft of high-level multi-display APIs. This patch introduces the ability to create a Context that is bound to a Display. The context gets its configuration and metrics from that display and is able to provide a WindowManager that is bound to the display. To make it easier to use, we also add a new kind of Dialog called a Presentation. Presentation takes care of setting up the context as needed and watches for significant changes in the display configuration. If the display is removed, then the presentation simply dismisses itself. Change-Id: Idc54b4ec84b1ff91505cfb78910cf8cd09696d7d
/frameworks/base/core/java/android/app/LoadedApk.java
|
f02b60aa4f367516f40cf3d60fffae0c6fe3e1b8 |
|
16-Aug-2012 |
Dianne Hackborn <hackbod@google.com> |
Rename UserId to UserHandle. This is the start of turning this into a formal public API. Change-Id: I5786d2c320f1de41a06ed5d0f65adb68967287a0
/frameworks/base/core/java/android/app/LoadedApk.java
|
756220bd1912535840388a6743830d2e59ad4964 |
|
15-Aug-2012 |
Dianne Hackborn <hackbod@google.com> |
Add API to create new contexts with custom configurations. This allows you to, say, make a Context whose configuration is set to a different density than the actual density of the device. The main API is Context.createConfigurationContext(). There is also a new API on ContextThemeWrapper that allows you to apply an override context before its resources are retrieved, which addresses some feature requests from developers to be able to customize the context their app is running in. Change-Id: I88364986660088521e24b567e2fda22fb7042819
/frameworks/base/core/java/android/app/LoadedApk.java
|
1ded0b1f6af65c2f95f8327f7f3df4cee1bf2346 |
|
26-Apr-2012 |
Dianne Hackborn <hackbod@google.com> |
Add traces for window manager and activity manager. Change-Id: I525d762db328e4c597da27b6b56d9a808e199756
/frameworks/base/core/java/android/app/LoadedApk.java
|
d893a890c92e174c1a4bf0075b0acc4749a0eaa8 |
|
02-Apr-2012 |
Brian Carlstrom <bdc@google.com> |
Add support for native library paths with instrumentation (cherry picked from commit 8e658fd0415b3d6f44223c39a7e59a00cb0954aa) Change-Id: Idb1e031d5deeea9305af8aacc17ae2d0d064dfc6
/frameworks/base/core/java/android/app/LoadedApk.java
|
483f3b06ea84440a082e21b68ec2c2e54046f5a6 |
|
14-Mar-2012 |
Amith Yamasani <yamasani@google.com> |
Package restrictions per user Packages can be enabled/disabled per user. This requires maintaining stopped/launched states and enabled / disabled components and packages per user. Refactored pm.Settings and PackageSettingsBase to keep track of states per user. Migrated the stopped-packages.xml to users/<u>/package-restrictions.xml Changed intent resolution to handle individual user restrictions. Bunch of IPackageManager calls now have a userId argument. Make AppWidgetService handle removals of packages. Added some tests for pm.Settings and PackageManager. Change-Id: Ia83b529e1df88dbcb3bd55ebfc952a6e9b20e861
/frameworks/base/core/java/android/app/LoadedApk.java
|
d7026f1612a7c1e8cc9b484038fa99b7fc29cfd7 |
|
02-Mar-2012 |
Jeff Sharkey <jsharkey@android.com> |
Report leaked Context registrations to StrictMode. When tearing down any leaked BroadcastReceiver or ServiceConnection Context registrations, report through StrictMode. Bug: 6084353 Change-Id: I5e78039299e2c9c1440cd1fd09317da78ffee82a
/frameworks/base/core/java/android/app/LoadedApk.java
|
a0c283eac33dd2da72235751bbfa4f2d9898d5ea |
|
09-Feb-2012 |
Dianne Hackborn <hackbod@google.com> |
Add new feature for running services in "isolated" sandbox processes. This reserves a range of uids (for each user) in which these processes run. These uids are not associated with an application, so they effectively run with no permissions. When a Service requests to run in such a process through android:isolatedProcess="true", each time it is brought up a new isolated process is started with its own unique uid. What we have so far gives us the basic infrastructure; more work remains to further lock down what these uids have access to. Change-Id: Ibfd27c75619cba61f528f46ede9113f98dc5f45b
/frameworks/base/core/java/android/app/LoadedApk.java
|
742a67127366c376fdf188ff99ba30b27d3bf90c |
|
04-May-2011 |
Amith Yamasani <yamasani@google.com> |
Multi-user - 1st major checkin Switching activity stacks Cache ContentProvider per user Long-press power to switch users (on phone) Added ServiceMap for separating services by user Launch PendingIntents on the correct user's uid Fix task switching from Recents list AppWidgetService is mostly working. Commands added to pm and am to allow creating and switching profiles. Change-Id: I15810e8cfbe50a04bd3323a7ef5a8ff4230870ed
/frameworks/base/core/java/android/app/LoadedApk.java
|
5a6ef737edbf57577443ac056613afe6cb121519 |
|
11-Nov-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #5595933: GREF leak due to race condition in... ...LoadedApk.ServiceDispatcher.connected , LoadedApk.forgetServiceDispatcher Don't be stupid if we receive a new binding to a ServiceConnection after it has already been unbound. Change-Id: I85a49de97372bf9af55542a89031f0b7a2ac8fbb
/frameworks/base/core/java/android/app/LoadedApk.java
|
9ecebbfbf768fd63e9a6c9a09c86d81c7737ee2d |
|
29-Sep-2011 |
Dianne Hackborn <hackbod@google.com> |
Add mechanism for Parcel to not allow FDs to be written to it. This is to help implement issue #5224703. Change-Id: I026a5890495537d15b57fe61227a640aac806d46
/frameworks/base/core/java/android/app/LoadedApk.java
|
5fd2169eabd77e6bfafaf456e58051a3bafb2bca |
|
07-Jun-2011 |
Dianne Hackborn <hackbod@google.com> |
Work on issue #4518815: Compatibility mode introduces compatibility regression... ...for Market App iRunner There were a lot of serious issues with how we updated (or often didn't update) the display and resource state when switching compatibility mode in conjunction with restarting and updating application components. This addresses everything I could find. Unfortunately it does *not* fix this particular app. I am starting to think this is just an issue in the app. This change does fix a number of other problems I could repro, such as switching the compatibility mode of an IME. Also a few changes here and there to get rid of $#*&^!! debug logs. Change-Id: Ib15572eac9ec93b4b9966ddcbbc830ce9dec1317
/frameworks/base/core/java/android/app/LoadedApk.java
|
2f0b17573d4324832f7a20402a3d2b5920bc4866 |
|
01-Jun-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #4502672: Wrong xml resources used for homescreen widgets. There was a race in the system process between applying the initial configuration and executing code in higher-level system services like the app widget service that relies on the config. For some reason it starting showing up more after my code changes; it should now be completely fixed. Also fix the activity starting window to run in compatibility mode if its application is going to be in compatibility mode. And some various cleanup and small fixes. Change-Id: I0566933bf1bbb4259c1d99a60c0a3c19af1542e5
/frameworks/base/core/java/android/app/LoadedApk.java
|
e2515eebf42c763c0a2d9f873a153711778cfc17 |
|
28-Apr-2011 |
Dianne Hackborn <hackbod@google.com> |
Better compat mode part one: start scaling windows. First step of improving app screen size compatibility mode. When running in compat mode, an application's windows are scaled up on the screen rather than being small with 1:1 pixels. Currently we scale the application to fill the entire screen, so don't use an even pixel scaling. Though this may have some negative impact on the appearance (it looks okay to me), it has a big benefit of allowing us to now treat these apps as normal full-screens apps and do the normal transition animations as you move in and out and around in them. This introduces fun stuff in the input system to take care of modifying pointer coordinates to account for the app window surface scaling. The input dispatcher is told about the scale that is being applied to each window and, when there is one, adjusts pointer events appropriately as they are being sent to the transport. Also modified is CompatibilityInfo, which has been greatly simplified to not be so insane and incomprehendible. It is now simple -- when constructed it determines if the given app is compatible with the current screen size and density, and that is that. There are new APIs on ActivityManagerService to put applications that we would traditionally consider compatible with larger screens in compatibility mode. This is the start of a facility to have a UI affordance for a user to switch apps in and out of compatibility. To test switching of modes, there is a new variation of the "am" command to do this: am screen-compat [on|off] [package] This mode switching has the fundamentals of restarting activities when it is changed, though the state still needs to be persisted and the overall mode switch cleaned up. For the few small apps I have tested, things mostly seem to be working well. I know of one problem with the text selection handles being drawn at the wrong position because at some point the window offset is being scaled incorrectly. There are probably other similar issues around the interaction between two windows because the different window coordinate spaces are done in a hacky way instead of being formally integrated into the window manager layout process. Change-Id: Ie038e3746b448135117bd860859d74e360938557
/frameworks/base/core/java/android/app/LoadedApk.java
|
c2d9c8e20bea92bd8c1bd0954b0a393c1bb8fec0 |
|
25-Jan-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #3385054: HRI24 never enters suspend (LP0) - IKXEVEREST-3439 Um. My fix for calling onReceive() even after a receiver is unregistered actually made it so onReceive() is never called for the result receiver of a broadcast. Change-Id: I30efe05d8fdec6fee4222b7d797f2b303073dbcc
/frameworks/base/core/java/android/app/LoadedApk.java
|
89ba6750e5310c4da51786bd7eb559a43cab3982 |
|
24-Jan-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #3215261: NPE in WiFi Settings And also fix #3343369: EGL_BAD_DISPLAY and/or broadcast intent TIME_SET before boot completion And a few more tweaks to animations to keep the wallpaper displayed when needed. And make more use of the drag and drop "rotation disabled" thing to also use it while animating the screen rotation, since if we try to start a new rotation while doing the animation we end up with a mess. Change-Id: I373af305a6e23a92835abed96229a83e173f67ce
/frameworks/base/core/java/android/app/LoadedApk.java
|
624d50f00dc3d672d676a2fbb405c61dfc875b28 |
|
09-Nov-2010 |
Brad Fitzpatrick <bradfitz@android.com> |
Don't warn on reading from disk during initial class loading. I'm going through the stacks that I filter out from the StrictMode reports and making sure the devices don't upload them to begin with when they're obviously legit and unavoidable. Change-Id: If87b3182b12140f5ddbe52fed059b592b2cc178c
/frameworks/base/core/java/android/app/LoadedApk.java
|
e829fef63957a23b61cdb01bb692a17a041ff2dc |
|
27-Oct-2010 |
Dianne Hackborn <hackbod@google.com> |
Add facility for broadcasts receives to do work asynchronously. You can now call goAsync() and move your work to a background thread. If you are that kind of receiver. You weirdo. Also allows SharedPreferences.apply() to be committed off the main thread after returning from onReceive(). Change-Id: I27f975910e28f230ababcaeb551eb9a78ec4fc76
/frameworks/base/core/java/android/app/LoadedApk.java
|
85387d7ba36e56b291cbde87acb5a5b2200fe01c |
|
26-Aug-2010 |
Kenny Root <kroot@google.com> |
Allow native shared libraries in ASEC containers This change moves the native library handling earlier in the package installation process so that it may be inserted into ASEC containers before they are finalized in the DefaultContainerService. Note that native libraries on SD card requires that vold mount ASEC containers without the "noexec" flag on the mount point. Change-Id: Ib34b1886bf6f94b99bb7b3781db6e9b5a58807ba
/frameworks/base/core/java/android/app/LoadedApk.java
|
01e4cfc47d0a2c7e7ab383d2fb23224ec52c0301 |
|
25-Jun-2010 |
Dianne Hackborn <hackbod@google.com> |
Some ActivityThread/ActivityManager cleanup. - Move PackageInfo out of ActivityThread, renaming to LoadedApk. - Rename some of the other PacakgeInfo inner classes to better represent what they are. - Rename HistoryRecord to ActivityRecord. - Introduce AppGlobals, to eventually let ActivityThread become package scoped. Change-Id: Ib714c54ceb3cdbb525dce3db9505f31042e88cf0
/frameworks/base/core/java/android/app/LoadedApk.java
|