Update ApplicationInfo if it was system_server cached (#2805)

This commit is contained in:
LoveSy 2023-10-11 11:10:18 +08:00 committed by GitHub
parent 159a3adcf8
commit c5e1a544bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 2 deletions

View File

@ -87,6 +87,8 @@ import java.util.zip.ZipEntry;
import java.util.zip.ZipFile; import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream; import java.util.zip.ZipOutputStream;
import hidden.HiddenApiBridge;
public class ConfigManager { public class ConfigManager {
private static ConfigManager instance = null; private static ConfigManager instance = null;
@ -231,6 +233,11 @@ public class ConfigManager {
var apkFile = new File(module.apkPath); var apkFile = new File(module.apkPath);
var pkg = new PackageParser().parsePackage(apkFile, 0, false); var pkg = new PackageParser().parsePackage(apkFile, 0, false);
module.applicationInfo = pkg.applicationInfo; module.applicationInfo = pkg.applicationInfo;
module.applicationInfo.sourceDir = module.apkPath;
module.applicationInfo.dataDir = statPath;
module.applicationInfo.deviceProtectedDataDir = statPath;
HiddenApiBridge.ApplicationInfo_credentialProtectedDataDir(module.applicationInfo, statPath);
module.applicationInfo.processName = module.packageName;
} catch (PackageParser.PackageParserException e) { } catch (PackageParser.PackageParserException e) {
Log.w(TAG, "failed to parse " + module.apkPath, e); Log.w(TAG, "failed to parse " + module.apkPath, e);
} }
@ -579,8 +586,8 @@ public class ConfigManager {
if (oldModule.appId != -1) { if (oldModule.appId != -1) {
Log.d(TAG, m.packageName + " did not change, skip caching it"); Log.d(TAG, m.packageName + " did not change, skip caching it");
} else { } else {
// cache from system server, keep it and set only the appId // cache from system server, update application info
oldModule.appId = pkgInfo.applicationInfo.uid; oldModule.applicationInfo = pkgInfo.applicationInfo;
} }
return false; return false;
} }