mirror of
https://github.com/mihonapp/mihon.git
synced 2026-10-16 13:48:09 -07:00
Use the backport class loader for extensions before Android 17
ART maps app images compiled for the built-in DelegateLastClassLoader's class loader chain, and before Android 17 a damaged one crashes every launch until the app is updated.
This commit is contained in:
@@ -13,7 +13,9 @@ fun DelegateLastClassLoaderCompat(
|
||||
librarySearchPath: String?,
|
||||
parent: ClassLoader,
|
||||
): ClassLoader {
|
||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
|
||||
// ART recognizes the built-in loader and maps app images compiled for this app's class loader chain, and before
|
||||
// Android 17 a damaged one crashes every launch until the app is updated. ART doesn't recognize the backport.
|
||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CINNAMON_BUN) {
|
||||
DelegateLastClassLoader(dexPath, librarySearchPath, parent)
|
||||
} else {
|
||||
DelegateLastPathClassLoader(dexPath, librarySearchPath, parent)
|
||||
@@ -21,7 +23,8 @@ fun DelegateLastClassLoaderCompat(
|
||||
}
|
||||
|
||||
/**
|
||||
* Backport of [DelegateLastClassLoader], which was added in API 27.
|
||||
* A [PathClassLoader] that looks up classes like [DelegateLastClassLoader]: the boot class loader first, then its own
|
||||
* dex path, then the parent.
|
||||
*/
|
||||
private class DelegateLastPathClassLoader(
|
||||
dexPath: String,
|
||||
|
||||
Reference in New Issue
Block a user