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

Commit b0f5e553 authored by Philip Cuadra's avatar Philip Cuadra Committed by android-build-merger
Browse files

Merge \\"Call into ART to get the location of the odex/oat file to pin\\" into...

Merge \\"Call into ART to get the location of the odex/oat file to pin\\" into nyc-mr1-dev am: 8b072fbd
am: 1510a698

Change-Id: Ia7450bbc482a375dcc030ee5fc32ef17670d1d50
parents 5059584e 1510a698
Loading
Loading
Loading
Loading
+14 −8
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import android.system.StructStat;
import com.android.internal.app.ResolverActivity;
import com.android.internal.os.BackgroundThread;

import dalvik.system.DexFile;
import dalvik.system.VMRuntime;

import java.util.ArrayList;
@@ -240,12 +241,6 @@ public final class PinnerService extends SystemService {
        }
        mPinnedCameraFiles.add(pf);

        //find the location of the odex based on the location of the APK
        int lastPeriod = camAPK.lastIndexOf('.');
        int lastSlash = camAPK.lastIndexOf('/', lastPeriod);
        String base = camAPK.substring(0, lastSlash);
        String appName = camAPK.substring(lastSlash + 1, lastPeriod);

        // determine the ABI from either ApplicationInfo or Build
        String arch = "arm";
        if (cameraInfo.primaryCpuAbi != null
@@ -256,8 +251,18 @@ public final class PinnerService extends SystemService {
                arch = arch + "64";
            }
        }
        String odex = base + "/oat/" + arch + "/" + appName + ".odex";
        //not all apps have odex files, so not pinning the odex is not a fatal error

        // get the path to the odex or oat file
        String baseCodePath = cameraInfo.getBaseCodePath();
        String odex = null;
        try {
            odex = DexFile.getDexFileOutputPath(baseCodePath, arch);
        } catch (IOException ioe) {}
        if (odex == null) {
            return true;
        }

        //not pinning the oat/odex is not a fatal error
        pf = pinFile(odex, 0, 0, MAX_CAMERA_PIN_SIZE);
        if (pf != null) {
            mPinnedCameraFiles.add(pf);
@@ -265,6 +270,7 @@ public final class PinnerService extends SystemService {
                Slog.i(TAG, "Pinned " + pf.mFilename);
            }
        }

        return true;
    }