Skip to content

Commit 4392d5a

Browse files
committed
DroidPlugin:解决插件在读写/sdcard/Android/data/目录时,会访问 /sdcard/Android/data/插件包名 的目录,之前的版本会做一个简单的重定向,但是没考虑系统有外置sdcard的情况,如 /ext_sdcard/Android/data/这样的情况 这里考虑一并处理了。
1 parent 8c5d406 commit 4392d5a

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

project/Libraries/DroidPlugin/src/com/morgoo/droidplugin/hook/handle/IMountServiceHookHandle.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,10 @@ protected boolean beforeInvoke(Object receiver, Method method, Object[] args) th
6666
final int index1 = 1;
6767
if (args != null && args.length > index1 && args[index1] instanceof String) {
6868
String path = (String) args[index1];
69-
String path1 = new File(Environment.getExternalStorageDirectory(), "Android/data/").getPath();
70-
if (path != null && path.startsWith(path1)) {
71-
path = path.replace("Android/data/", "Android/data/"+mHostContext.getPackageName()+"/Plugin/");
69+
// String path1 = new File(Environment.getExternalStorageDirectory(), "Android/data/").getPath();
70+
final boolean isHostPath = path.indexOf("Android/data/" + mHostContext.getPackageName()) < 0;
71+
if (path != null && isHostPath) {
72+
path = path.replaceFirst("Android/data/", "Android/data/" + mHostContext.getPackageName() + "/Plugin/");
7273
args[index1] = path;
7374
}
7475
}
@@ -77,9 +78,10 @@ protected boolean beforeInvoke(Object receiver, Method method, Object[] args) th
7778
final int index1 = 0;
7879
if (args != null && args.length > index1 && args[index1] instanceof String) {
7980
String path = (String) args[index1];
80-
String path1 = new File(Environment.getExternalStorageDirectory(), "Android/data/").getPath();
81-
if (path != null && path.startsWith(path1)) {
82-
path = path.replace("Android/data/", "Android/data/"+mHostContext.getPackageName()+"/Plugin/");
81+
// String path1 = new File(Environment.getExternalStorageDirectory(), "Android/data/").getPath();
82+
final boolean isHostPath = path.indexOf("Android/data/" + mHostContext.getPackageName()) < 0;
83+
if (path != null && isHostPath) {
84+
path = path.replaceFirst("Android/data/", "Android/data/"+mHostContext.getPackageName()+"/Plugin/");
8385
args[index1] = path;
8486
}
8587
}

0 commit comments

Comments
 (0)