[app] Support dynamic colors (#1512)

This commit is contained in:
LoveSy 2022-01-06 21:12:46 +08:00 committed by GitHub
parent b9093f2bb6
commit af61504eeb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 35 additions and 6 deletions

View File

@ -193,7 +193,7 @@ dependencies {
implementation("dev.rikka.rikkax.widget:switchbar:1.0.2")
implementation("dev.rikka.rikkax.layoutinflater:layoutinflater:1.1.0")
implementation("me.zhanghai.android.appiconloader:appiconloader:1.3.1")
implementation("org.lsposed.hiddenapibypass:hiddenapibypass:3.0")
implementation("org.lsposed.hiddenapibypass:hiddenapibypass:4.2")
implementation(project(":manager-service"))
}

View File

@ -162,7 +162,7 @@ dependencies {
implementation("dev.rikka.ndk.thirdparty:cxx:1.2.0")
implementation("io.github.vvb2060.ndk:dobby:1.2")
implementation("org.apache.commons:commons-lang3:3.12.0")
implementation("de.upb.cs.swt:axml:2.1.1")
implementation("de.upb.cs.swt:axml:2.1.2")
compileOnly("androidx.annotation:annotation:1.3.0")
compileOnly(project(":hiddenapi-stubs"))
implementation(project(":hiddenapi-bridge"))

View File

@ -76,6 +76,10 @@ public class ParasiticManagerHooker {
newAppInfo.deviceProtectedDataDir = appInfo.deviceProtectedDataDir;
newAppInfo.processName = appInfo.processName;
HiddenApiBridge.ApplicationInfo_credentialProtectedDataDir(newAppInfo, HiddenApiBridge.ApplicationInfo_credentialProtectedDataDir(appInfo));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
HiddenApiBridge.ApplicationInfo_overlayPaths(newAppInfo, HiddenApiBridge.ApplicationInfo_overlayPaths(appInfo));
}
HiddenApiBridge.ApplicationInfo_resourceDirs(newAppInfo, HiddenApiBridge.ApplicationInfo_resourceDirs(appInfo));
newAppInfo.uid = appInfo.uid;
} catch (Throwable e) {
Utils.logE("get manager pkginfo", e);

View File

@ -40,11 +40,11 @@ import android.system.Int32Ref;
import android.system.Os;
import android.util.MutableInt;
import androidx.annotation.RequiresApi;
import java.io.File;
import java.io.FileDescriptor;
import dalvik.system.VMRuntime;
public class HiddenApiBridge {
public static int AssetManager_addAssetPath(AssetManager am, String path) {
return am.addAssetPath(path);
@ -80,11 +80,11 @@ public class HiddenApiBridge {
return ctx.registerReceiverAsUser(receiver, user, filter, broadcastPermission, scheduler);
}
public static UserHandle UserHandle_ALL(){
public static UserHandle UserHandle_ALL() {
return UserHandle.ALL;
}
public static UserHandle UserHandle(int h){
public static UserHandle UserHandle(int h) {
return new UserHandle(h);
}
@ -96,6 +96,24 @@ public class HiddenApiBridge {
applicationInfo.credentialProtectedDataDir = dir;
}
public static String[] ApplicationInfo_resourceDirs(ApplicationInfo applicationInfo) {
return applicationInfo.resourceDirs;
}
public static void ApplicationInfo_resourceDirs(ApplicationInfo applicationInfo, String[] resourceDirs) {
applicationInfo.resourceDirs = resourceDirs;
}
@RequiresApi(31)
public static String[] ApplicationInfo_overlayPaths(ApplicationInfo applicationInfo) {
return applicationInfo.overlayPaths;
}
@RequiresApi(31)
public static void ApplicationInfo_overlayPaths(ApplicationInfo applicationInfo, String[] overlayPaths) {
applicationInfo.overlayPaths = overlayPaths;
}
public static CompatibilityInfo Resources_getCompatibilityInfo(Resources res) {
return res.getCompatibilityInfo();
}

View File

@ -1,5 +1,12 @@
package android.content.pm;
import androidx.annotation.RequiresApi;
public class ApplicationInfo {
public String credentialProtectedDataDir;
public String[] resourceDirs;
@RequiresApi(31)
public String[] overlayPaths;
}