[core] Allow vdex speedup for InMemoryDex (#1260)
* [core] Allow vdex speedup for InMemoryDex * 1
This commit is contained in:
parent
4c4427ca52
commit
69900249c9
|
|
@ -189,6 +189,7 @@ namespace lspd {
|
|||
jstring app_data_dir) {
|
||||
Service::instance()->InitService(env);
|
||||
const auto app_id = uid % PER_USER_RANGE;
|
||||
app_data_dir_ = app_data_dir;
|
||||
nice_name_ = nice_name;
|
||||
JUTFString process_name(env, nice_name);
|
||||
skip_ = !sym_initialized;
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ import android.app.ActivityThread;
|
|||
import android.app.LoadedApk;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.res.CompatibilityInfo;
|
||||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
import android.os.IBinder;
|
||||
import android.os.Process;
|
||||
|
|
@ -45,6 +46,8 @@ import java.io.File;
|
|||
import de.robv.android.xposed.XposedBridge;
|
||||
import de.robv.android.xposed.XposedHelpers;
|
||||
import de.robv.android.xposed.XposedInit;
|
||||
import hidden.HiddenApiBridge;
|
||||
import pxb.android.axml.Util;
|
||||
|
||||
public class Main {
|
||||
public static void startBootstrapHook(boolean isSystem, String appDataDir) {
|
||||
|
|
@ -86,6 +89,10 @@ public class Main {
|
|||
Utils.logI("Loaded manager, skipping next steps");
|
||||
return;
|
||||
}
|
||||
Utils.logD("appDataDir: " + appDataDir);
|
||||
if (!isSystem && Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
HiddenApiBridge.VMRuntime_setProcessDataDirectory(appDataDir);
|
||||
}
|
||||
installBootstrapHooks(isSystem, appDataDir);
|
||||
Utils.logI("Loading modules for " + niceName + "/" + Process.myUid());
|
||||
XposedInit.loadModules();
|
||||
|
|
|
|||
|
|
@ -22,5 +22,6 @@ plugins {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("androidx.annotation:annotation:1.2.0")
|
||||
compileOnly(project(":hiddenapi-stubs"))
|
||||
}
|
||||
|
|
@ -35,8 +35,12 @@ import android.os.Handler;
|
|||
import android.os.IBinder;
|
||||
import android.os.UserHandle;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import dalvik.system.VMRuntime;
|
||||
|
||||
public class HiddenApiBridge {
|
||||
public static int AssetManager_addAssetPath(AssetManager am, String path) {
|
||||
return am.addAssetPath(path);
|
||||
|
|
@ -91,4 +95,9 @@ public class HiddenApiBridge {
|
|||
public static CompatibilityInfo Resources_getCompatibilityInfo(Resources res) {
|
||||
return res.getCompatibilityInfo();
|
||||
}
|
||||
|
||||
@RequiresApi(29)
|
||||
public static void VMRuntime_setProcessDataDirectory(String dataDir) {
|
||||
VMRuntime.setProcessDataDirectory(dataDir);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package dalvik.system;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
|
||||
public class VMRuntime {
|
||||
|
||||
public static VMRuntime getRuntime() {
|
||||
|
|
@ -9,4 +11,7 @@ public class VMRuntime {
|
|||
public native boolean is64Bit();
|
||||
|
||||
public native String vmInstructionSet();
|
||||
|
||||
@RequiresApi(29)
|
||||
public static native void setProcessDataDirectory(String dataDir);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue