Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7ff3144a authored by Dianne Hackborn's avatar Dianne Hackborn Committed by Android (Google) Code Review
Browse files

Merge "Add new feature for running services in "isolated" sandbox processes."

parents 1c90e73f a0c283ea
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -15052,7 +15052,7 @@ package android.os {
    method public static final deprecated boolean supportsProcesses();
    field public static final int BLUETOOTH_GID = 2000; // 0x7d0
    field public static final int FIRST_APPLICATION_UID = 10000; // 0x2710
    field public static final int LAST_APPLICATION_UID = 99999; // 0x1869f
    field public static final int LAST_APPLICATION_UID = 89999; // 0x1869f
    field public static final int PHONE_UID = 1001; // 0x3e9
    field public static final int SIGNAL_KILL = 9; // 0x9
    field public static final int SIGNAL_QUIT = 3; // 0x3
+3 −1
Original line number Diff line number Diff line
@@ -562,6 +562,7 @@ package android {
    field public static final int isRepeatable = 16843336; // 0x1010248
    field public static final int isScrollContainer = 16843342; // 0x101024e
    field public static final int isSticky = 16843335; // 0x1010247
    field public static final int isolatedProcess = 16843687; // 0x10103a7
    field public static final int itemBackground = 16843056; // 0x1010130
    field public static final int itemIconDisabledAlpha = 16843057; // 0x1010131
    field public static final int itemPadding = 16843565; // 0x101032d
@@ -6469,6 +6470,7 @@ package android.content.pm {
    method public int describeContents();
    method public void dump(android.util.Printer, java.lang.String);
    field public static final android.os.Parcelable.Creator CREATOR;
    field public static final int FLAG_ISOLATED_PROCESS = 2; // 0x2
    field public static final int FLAG_STOP_WITH_TASK = 1; // 0x1
    field public int flags;
    field public java.lang.String permission;
@@ -15178,7 +15180,7 @@ package android.os {
    method public static final deprecated boolean supportsProcesses();
    field public static final int BLUETOOTH_GID = 2000; // 0x7d0
    field public static final int FIRST_APPLICATION_UID = 10000; // 0x2710
    field public static final int LAST_APPLICATION_UID = 99999; // 0x1869f
    field public static final int LAST_APPLICATION_UID = 89999; // 0x15f8f
    field public static final int PHONE_UID = 1001; // 0x3e9
    field public static final int SIGNAL_KILL = 9; // 0x9
    field public static final int SIGNAL_QUIT = 3; // 0x3
+6 −2
Original line number Diff line number Diff line
@@ -134,7 +134,7 @@ public final class ActivityThread {
    private static final boolean DEBUG_RESULTS = false;
    private static final boolean DEBUG_BACKUP = true;
    private static final boolean DEBUG_CONFIGURATION = false;
    private static final boolean DEBUG_SERVICE = true;
    private static final boolean DEBUG_SERVICE = false;
    private static final long MIN_TIME_BETWEEN_GCS = 5*1000;
    private static final Pattern PATTERN_SEMICOLON = Pattern.compile(";");
    private static final int SQLITE_MEM_RELEASED_EVENT_LOG_TAG = 75003;
@@ -3764,13 +3764,17 @@ public final class ActivityThread {
    }

    private void setupGraphicsSupport(LoadedApk info) {
        if (Process.isIsolated()) {
            // Isolated processes aren't going to do UI.
            return;
        }
        try {
            int uid = Process.myUid();
            String[] packages = getPackageManager().getPackagesForUid(uid);

            // If there are several packages in this application we won't
            // initialize the graphics disk caches 
            if (packages.length == 1) {
            if (packages != null && packages.length == 1) {
                ContextImpl appContext = new ContextImpl();
                appContext.init(info, null, this);

+1 −1
Original line number Diff line number Diff line
@@ -119,7 +119,7 @@ public final class LoadedApk {
        final int myUid = Process.myUid();
        mResDir = aInfo.uid == myUid ? aInfo.sourceDir
                : aInfo.publicSourceDir;
        if (!UserId.isSameUser(aInfo.uid, myUid)) {
        if (!UserId.isSameUser(aInfo.uid, myUid) && !Process.isIsolated()) {
            aInfo.dataDir = PackageManager.getDataDirForUser(UserId.getUserId(myUid),
                    mPackageName);
        }
+5 −0
Original line number Diff line number Diff line
@@ -2581,6 +2581,11 @@ public class PackageParser {
                false)) {
            s.info.flags |= ServiceInfo.FLAG_STOP_WITH_TASK;
        }
        if (sa.getBoolean(
                com.android.internal.R.styleable.AndroidManifestService_isolatedProcess,
                false)) {
            s.info.flags |= ServiceInfo.FLAG_ISOLATED_PROCESS;
        }

        sa.recycle();

Loading