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

Commit e1d330a0 authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Set tmpdir to application cache directory.

Otherwise File.createTempFile() uses /sdcard which most apps don't
have write access to.

Bug: 6347289
Change-Id: Ibde191a63e4dbb9b03437406f8c999f192bcfa21
parent f2dc6fc4
Loading
Loading
Loading
Loading
+12 −10
Original line number Diff line number Diff line
@@ -3843,7 +3843,7 @@ public final class ActivityThread {
        windowManager.endTrimMemory();        
    }

    private void setupGraphicsSupport(LoadedApk info) {
    private void setupGraphicsSupport(LoadedApk info, File cacheDir) {
        if (Process.isIsolated()) {
            // Isolated processes aren't going to do UI.
            return;
@@ -3855,11 +3855,8 @@ public final class ActivityThread {
            // If there are several packages in this application we won't
            // initialize the graphics disk caches 
            if (packages != null && packages.length == 1) {
                ContextImpl appContext = new ContextImpl();
                appContext.init(info, null, this);

                HardwareRenderer.setupDiskCache(appContext.getCacheDir());
                RenderScript.setupDiskCache(appContext.getCacheDir());
                HardwareRenderer.setupDiskCache(cacheDir);
                RenderScript.setupDiskCache(cacheDir);
            }
        } catch (RemoteException e) {
            // Ignore
@@ -3925,7 +3922,14 @@ public final class ActivityThread {

        data.info = getPackageInfoNoCheck(data.appInfo, data.compatInfo);

        setupGraphicsSupport(data.info);        
        final ContextImpl appContext = new ContextImpl();
        appContext.init(data.info, null, this);
        final File cacheDir = appContext.getCacheDir();

        // Provide a usable directory for temporary files
        System.setProperty("java.io.tmpdir", cacheDir.getAbsolutePath());

        setupGraphicsSupport(data.info, cacheDir);

        /**
         * For system applications on userdebug/eng builds, log stack
@@ -4003,8 +4007,6 @@ public final class ActivityThread {
        }

        if (data.instrumentationName != null) {
            ContextImpl appContext = new ContextImpl();
            appContext.init(data.info, null, this);
            InstrumentationInfo ii = null;
            try {
                ii = appContext.getPackageManager().