Merge "Frameworks/base: Pass APK debugability to installd"
This commit is contained in:
@@ -91,11 +91,11 @@ public class InstallerConnection {
|
||||
}
|
||||
|
||||
public int dexopt(String apkPath, int uid, boolean isPublic, String instructionSet) {
|
||||
return dexopt(apkPath, uid, isPublic, "*", instructionSet, false);
|
||||
return dexopt(apkPath, uid, isPublic, "*", instructionSet, false, false);
|
||||
}
|
||||
|
||||
public int dexopt(String apkPath, int uid, boolean isPublic, String pkgName,
|
||||
String instructionSet, boolean vmSafeMode) {
|
||||
String instructionSet, boolean vmSafeMode, boolean debuggable) {
|
||||
StringBuilder builder = new StringBuilder("dexopt");
|
||||
builder.append(' ');
|
||||
builder.append(apkPath);
|
||||
@@ -106,8 +106,8 @@ public class InstallerConnection {
|
||||
builder.append(pkgName);
|
||||
builder.append(' ');
|
||||
builder.append(instructionSet);
|
||||
builder.append(' ');
|
||||
builder.append(vmSafeMode ? " 1" : " 0");
|
||||
builder.append(debuggable ? " 1" : " 0");
|
||||
return execute(builder.toString());
|
||||
}
|
||||
|
||||
|
||||
@@ -83,13 +83,14 @@ public final class Installer extends SystemService {
|
||||
}
|
||||
|
||||
public int dexopt(String apkPath, int uid, boolean isPublic, String pkgName,
|
||||
String instructionSet, boolean vmSafeMode) {
|
||||
String instructionSet, boolean vmSafeMode, boolean debuggable) {
|
||||
if (!isValidInstructionSet(instructionSet)) {
|
||||
Slog.e(TAG, "Invalid instruction set: " + instructionSet);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return mInstaller.dexopt(apkPath, uid, isPublic, pkgName, instructionSet, vmSafeMode);
|
||||
return mInstaller.dexopt(apkPath, uid, isPublic, pkgName, instructionSet, vmSafeMode,
|
||||
debuggable);
|
||||
}
|
||||
|
||||
public int idmap(String targetApkPath, String overlayApkPath, int uid) {
|
||||
|
||||
@@ -4771,6 +4771,7 @@ public class PackageManagerService extends IPackageManager.Stub {
|
||||
}
|
||||
|
||||
final boolean vmSafeMode = (pkg.applicationInfo.flags & ApplicationInfo.FLAG_VM_SAFE_MODE) != 0;
|
||||
final boolean debuggable = (pkg.applicationInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
|
||||
|
||||
final List<String> paths = pkg.getAllCodePathsExcludingResourceOnly();
|
||||
boolean performedDexOpt = false;
|
||||
@@ -4796,10 +4797,10 @@ public class PackageManagerService extends IPackageManager.Stub {
|
||||
if (forceDex || (!defer && isDexOptNeeded == DexFile.DEXOPT_NEEDED)) {
|
||||
Log.i(TAG, "Running dexopt on: " + path + " pkg="
|
||||
+ pkg.applicationInfo.packageName + " isa=" + dexCodeInstructionSet
|
||||
+ " vmSafeMode=" + vmSafeMode);
|
||||
+ " vmSafeMode=" + vmSafeMode + " debuggable=" + debuggable);
|
||||
final int sharedGid = UserHandle.getSharedAppGid(pkg.applicationInfo.uid);
|
||||
final int ret = mInstaller.dexopt(path, sharedGid, !isForwardLocked(pkg),
|
||||
pkg.packageName, dexCodeInstructionSet, vmSafeMode);
|
||||
pkg.packageName, dexCodeInstructionSet, vmSafeMode, debuggable);
|
||||
|
||||
if (ret < 0) {
|
||||
// Don't bother running dexopt again if we failed, it will probably
|
||||
|
||||
Reference in New Issue
Block a user