Base64 APK路径

时间:2017-12-24 07:47:03

标签: android

注意:已经看到了this question

检查Oreo模拟器上的Android应用程序位置,APK仍然安装在/ data / app。但是,而不是以下格式:

/data/app/<package_name> or optionally /data/app/<package_name>-1 

现在

/data/app/<package_name>-_-<22 chars base 64>

/data/app/<package_name>-<some chars>-<22 chars base 64>

有谁知道这个变化?我试过谷歌搜索,但是&#39; APK android location base64&#39;组合将产生大量不相关的结果(或谷歌将忽略base64关键字)

指向Google博客或github提交的链接会很不错。如果有人知道的话,我会选择AOSP的一般位置。理想情况下,我想知道为什么(更改),以及如何(生成base64)。

1 个答案:

答案 0 :(得分:5)

自Android Oreo以来,APK的安装路径已更改,请参阅: https://android.googlesource.com/platform/frameworks/base/+/android-8.0.0_r36/services/core/java/com/android/server/pm/PackageManagerService.java

当PackageManagerService尝试查找安装APK的正确路径时,它使用getNextCodePath(File targetDir,String packageName)方法。在Android Oreo之前,代码是:

test

自Android Oreo以来,代码已更改为:

private File getNextCodePath(File targetDir, String packageName) {
    int suffix = 1;
    File result;
    do {
        result = new File(targetDir, packageName + "-" + suffix);
        suffix++;
    } while (result.exists());
    return result;
}