2

我知道 apk 以包的名称存储在 /data/app 中(最后是“-1”)。

在非 root 手机上无法列出(ls)/data/app 中包含的文件,但是由于我知道文件名,因此即使没有 root,我也可以将 apk 从 /data/app 复制到 /mnt/sdcard/whereeveriwant/允许。

public static void copyFile(String inputPath, String inputFile, String outputPath) {
InputStream in = null;
OutputStream out = null;
try {
    //create output directory if it doesn't exist
    File dir = new File (outputPath); 
    if (!dir.exists()) { dir.mkdirs(); }
    in = new FileInputStream(inputPath + inputFile);        
    out = new FileOutputStream(outputPath + inputFile);
    byte[] buffer = new byte[1024];
    int read;
    while ((read = in.read(buffer)) != -1) {
        out.write(buffer, 0, read);
    }
    in.close();
    in = null;
    out.flush();
    out.close();
    out = null;        
}  catch (FileNotFoundException fnfe1) {
    Log.e("copy", fnfe1.getMessage());
} catch (Exception e) {
    Log.e("copy", e.getMessage());
}
}
copyFile(
        "/data/app/", "com.myawesomeapp.android-1.apk",
        Environment.getExternalStorageDirectory() + File.separator + folder + File.separator
);

但是对于某些应用程序(据我所知不是免费应用程序),这种方法不起作用。apk 有不同的名称吗?还是前向锁定?

这是一个研究问题,没有实际用途。

4

1 回答 1

3

好的,我明白了:免费应用程序被解密,APK 最终位于 /data/app 中,而 /data/app-asec 中的加密容器被创建并安装在 /mnt/asec/package.name 下用于付费应用程序。

于 2013-05-08T11:32:44.500 回答