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

Commit 6ae95c15 authored by Sanjana Sunil's avatar Sanjana Sunil Committed by Android (Google) Code Review
Browse files

Merge "Set correct storage path for SDK sandbox" into tm-dev

parents 12fcbf70 d3eabb07
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -868,6 +868,7 @@ public final class ActivityThread extends ClientTransactionHandler
        String processName;
        @UnsupportedAppUsage
        ApplicationInfo appInfo;
        String sdkSandboxClientAppPackage;
        @UnsupportedAppUsage
        List<ProviderInfo> providers;
        ComponentName instrumentationName;
@@ -1113,9 +1114,9 @@ public final class ActivityThread extends ClientTransactionHandler

        @Override
        public final void bindApplication(String processName, ApplicationInfo appInfo,
                ProviderInfoList providerList, ComponentName instrumentationName,
                ProfilerInfo profilerInfo, Bundle instrumentationArgs,
                IInstrumentationWatcher instrumentationWatcher,
                String sdkSandboxClientAppPackage, ProviderInfoList providerList,
                ComponentName instrumentationName, ProfilerInfo profilerInfo,
                Bundle instrumentationArgs, IInstrumentationWatcher instrumentationWatcher,
                IUiAutomationConnection instrumentationUiConnection, int debugMode,
                boolean enableBinderTracking, boolean trackAllocation,
                boolean isRestrictedBackupMode, boolean persistent, Configuration config,
@@ -1155,6 +1156,7 @@ public final class ActivityThread extends ClientTransactionHandler
            AppBindData data = new AppBindData();
            data.processName = processName;
            data.appInfo = appInfo;
            data.sdkSandboxClientAppPackage = sdkSandboxClientAppPackage;
            data.providers = providerList.getList();
            data.instrumentationName = instrumentationName;
            data.instrumentationArgs = instrumentationArgs;
@@ -6536,6 +6538,9 @@ public final class ActivityThread extends ClientTransactionHandler
        }

        data.info = getPackageInfoNoCheck(data.appInfo, data.compatInfo);
        if (data.sdkSandboxClientAppPackage != null) {
            data.info.setSdkSandboxStorage(data.sdkSandboxClientAppPackage);
        }

        if (agent != null) {
            handleAttachAgent(agent, data.info);
+1 −1
Original line number Diff line number Diff line
@@ -1998,7 +1998,7 @@ class ContextImpl extends Context {
    private boolean bindServiceCommon(Intent service, ServiceConnection conn, int flags,
            String instanceName, Handler handler, Executor executor, UserHandle user) {
        // Keep this in sync with DevicePolicyManager.bindDeviceAdminServiceAsUser and
        // ActivityManagerLocal.bindSupplementalProcessService
        // ActivityManagerLocal.bindSdkSandboxService
        IServiceConnection sd;
        if (conn == null) {
            throw new IllegalArgumentException("connection is null");
+1 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ oneway interface IApplicationThread {
    @UnsupportedAppUsage
    void scheduleStopService(IBinder token);
    void bindApplication(in String packageName, in ApplicationInfo info,
            in String sdkSandboxClientAppPackage,
            in ProviderInfoList providerList, in ComponentName testName,
            in ProfilerInfo profilerInfo, in Bundle testArguments,
            IInstrumentationWatcher testWatcher, IUiAutomationConnection uiAutomationConnection,
+21 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import android.content.res.CompatibilityInfo;
import android.content.res.Resources;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.FileUtils;
import android.os.GraphicsEnvironment;
import android.os.Handler;
@@ -411,6 +412,26 @@ public final class LoadedApk {
        }
    }

    /** @hide */
    void setSdkSandboxStorage(String sdkSandboxClientAppPackage) {
        int userId = UserHandle.myUserId();
        mDeviceProtectedDataDirFile = Environment
                .getDataMiscDeSharedSdkSandboxDirectory(userId, sdkSandboxClientAppPackage)
                .getAbsoluteFile();
        mCredentialProtectedDataDirFile = Environment
                .getDataMiscCeSharedSdkSandboxDirectory(userId, sdkSandboxClientAppPackage)
                .getAbsoluteFile();

        if ((mApplicationInfo.privateFlags
                & ApplicationInfo.PRIVATE_FLAG_DEFAULT_TO_DEVICE_PROTECTED_STORAGE) != 0
                && PackageManager.APPLY_DEFAULT_TO_DEVICE_PROTECTED_STORAGE) {
            mDataDirFile = mDeviceProtectedDataDirFile;
        } else {
            mDataDirFile = mCredentialProtectedDataDirFile;
        }
        mDataDir = mDataDirFile.getAbsolutePath();
    }

    public static void makePaths(ActivityThread activityThread,
                                 ApplicationInfo aInfo,
                                 List<String> outZipPaths) {
+10 −0
Original line number Diff line number Diff line
@@ -477,11 +477,21 @@ public class Environment {
        return buildPath(getDataDirectory(), "misc_ce", String.valueOf(userId));
    }

    /** {@hide} */
    public static File getDataMiscCeSharedSdkSandboxDirectory(int userId, String packageName) {
        return buildPath(getDataMiscCeDirectory(userId), "sdksandbox", packageName, "shared");
    }

    /** {@hide} */
    public static File getDataMiscDeDirectory(int userId) {
        return buildPath(getDataDirectory(), "misc_de", String.valueOf(userId));
    }

    /** {@hide} */
    public static File getDataMiscDeSharedSdkSandboxDirectory(int userId, String packageName) {
        return buildPath(getDataMiscDeDirectory(userId), "sdksandbox", packageName, "shared");
    }

    private static File getDataProfilesDeDirectory(int userId) {
        return buildPath(getDataDirectory(), "misc", "profiles", "cur", String.valueOf(userId));
    }
Loading