更新打包流程

This commit is contained in:
Yutousama 2020-03-27 16:26:09 +08:00
parent d452d95576
commit 256d724150
4 changed files with 27 additions and 25 deletions

View File

@ -31,6 +31,7 @@
"isJarLib": false,
"packagerlimit": 3,
"isManual": false,
"dex2jar": "D:\\反编译\\dex2jar-2.0\\_d2j-dex2jar.bat",
"manual": [
{
"class": "com.qq.e.comm.a",
@ -72,6 +73,7 @@
"isJarLib": false,
"packagerlimit": 3,
"isManual": true,
"dex2jar": "D:\\反编译\\dex2jar-2.0\\_d2j-dex2jar.bat",
"manual": [
{
"class": "com.uniplay.adsdk.basic.RuleManage",
@ -202,8 +204,8 @@
],
"random":[
"com",
"ww",
"za",
"prujwk",
"jdyphn",
],
"isAllPackage":false,
"isReName":true,

View File

@ -225,11 +225,12 @@ public class AutoRandomAdSDK {
+ clazzs.getString(i).replace(".", File.separator) + ".smali");
if (clz.exists()) {
// System.out.println("key="+clazzs.getString(i)+" value="+clz);
adClass.put(clazzs.getString(i), clz);
}
}
for (String key : adClass.keySet()) {
//System.out.println("注入的值:" + key);
// System.out.println("注入的值:" + key);
}
mkdirs();
update();
@ -296,7 +297,6 @@ public class AutoRandomAdSDK {
smalitools.setPath(rootPath + File.separator + "smali");
file = new File(rootPath + File.separator + "smali");
//System.out.println(file.getAbsolutePath() + " " + file.exists());
try {
Thread.sleep(200);
//System.out.println(smalitools.mainPath);
@ -506,13 +506,14 @@ public class AutoRandomAdSDK {
System.out.println("key=" + key + " file=" + nowAdClass.get(key) + " oldFile=" + adClass.get(key));
}*/
for (String key : adClass.keySet()) {
File file = new File(adClass.get(key).getAbsolutePath());
String fileName = file.getName().replace(".smali", "");
File filePath = new File(nowAdClass.get(key).getAbsolutePath().replace(file.getName(), "").replace(".smali", ""));
if (!config.getBoolean("isAllPackage")) {
filePath = new File(file.getAbsolutePath().replace(file.getName(), ""));
}
//System.out.println(nowAdClass.get(key)+" "+file.getName()+" "+filePath.getAbsolutePath());
// System.out.println(nowAdClass.get(key)+" "+file.getName()+" "+filePath.getAbsolutePath());
//System.out.println(key + " | " + file.getAbsolutePath() + " | " + fileName + " | " + filePath.getAbsolutePath());
if (filePath.listFiles() == null) {
//System.out.println("filePath为空" + filePath.getAbsolutePath());
@ -520,7 +521,7 @@ public class AutoRandomAdSDK {
}
//moveFile(filePath,key);
for (File fs : filePath.listFiles()) {
// //System.out.println(fs.getAbsolutePath().replace(rootPath, ""));
// System.out.println(fs.getAbsolutePath());
if (fs.isDirectory()) {
continue;
}
@ -529,25 +530,28 @@ public class AutoRandomAdSDK {
}
String nName = getNewName(fs.getAbsolutePath());
//System.out.println(fs.getAbsolutePath().replace(rootPath,"")+" > "+nName);
if (fs.getName().startsWith(fileName.split("\\$")[0] + "$")) {
if (getNewName(fs.getAbsolutePath()).endsWith("[notmover]")) {
Tools.copyFileToName(fs.getAbsolutePath(), fs.getAbsolutePath(), fs
.getName().replace(fs.getName().split("\\$")[0], nName), true);
file.delete();
} else {
moveFile(fs, key, fs.getName().replace(fs.getName().split("\\$")[0], nName), false);
moveFile(fs, key, nName+fs.getName().substring(fileName.length()), false);
}
fs.delete();
}
}
if (getNewNameForSrc(file.getName()).endsWith("[notmover]")) {
nowAdFile.put(key, file.getAbsolutePath());
Tools.copyFileToName(file.getAbsolutePath(), file.getAbsolutePath().replace(file.getName(), ""),
getNewName(file.getAbsolutePath()) + ".smali", true);
file.delete();
} else {
moveFile(file, key, getNewName(file.getAbsolutePath()) + ".smali", true);
}
file.delete();
}
if (root != null)
removeNullFile(root);
@ -640,8 +644,10 @@ public class AutoRandomAdSDK {
}
boolean data = file.renameTo(new File(rootPath + toPath, file.getName()));
//System.out.println("移动文件:" + file.getAbsolutePath().replace(rootPath, "") + "" + (rootPath + toPath) + " > " + fileName + " " + nowAdClass.get(fileName) + " >! " + data);
//boolean data = file.renameTo(new File(rootPath + toPath, file.getName()));
boolean data=Tools.copyFile(file.getAbsolutePath(),rootPath + toPath,true);
file.delete();
// System.out.println("移动文件:" + file.getAbsolutePath().replace(rootPath, "") + "" + (rootPath + toPath) + " > " + fileName + " " + nowAdClass.get(fileName) + " >! " + data);
if (nowAdClass.containsKey(fileName)) {
// System.err.println("移动文件:"+file.getAbsolutePath().replace(rootPath, "")+""+toPath+" > "+fileName+" "+nowAdClass.get(fileName));
// //System.out.println(file.getAbsolutePath().replace(rootPath,"")+" "+toPath);

View File

@ -123,6 +123,8 @@ public class SmaliUtils {
newName = tmp.replace(".class L", "");
} else if (tmp.contains(".class synthetic L")) {
newName = tmp.replace(".class synthetic L", "");
} else if(tmp.contains(".class final enum L")){
newName=tmp.replace(".class final enum L","");
}
if (newName != null) {
newName = newName.replace(";", "");
@ -164,6 +166,7 @@ public class SmaliUtils {
String[] datas = str.split("\n");
String save = "";
i = 1;
for (String string : datas) {
save += changeLine(string) + "\n";
}
@ -178,13 +181,11 @@ public class SmaliUtils {
}
int i = 1;
private String changeLine(String old) {
Set<String> keySet = clazzList.keySet();
for (String clazz : keySet) {
if (old.contains(clazz)) {
old = old.replace(clazz, clazzList.get(clazz));
//System.out.println((i++) + " 修改:" + t + " 到:" + old + " " + clazz);
if (old.contains(clazz+";")) {
old= old.replace(clazz, clazzList.get(clazz));
}
}
return old;

View File

@ -89,12 +89,14 @@ public class Tools {
fileName=srcFile.getName();
}
in = new FileInputStream(srcFile);
out = new FileOutputStream(destFile + "/" +fileName );
out = new FileOutputStream(destFile + File.separator +fileName );
byte[] buffer = new byte[1024];
while ((byteread = in.read(buffer)) != -1) {
out.write(buffer, 0, byteread);
}
out.close();
in.close();
return true;
} catch (FileNotFoundException e) {
e.printStackTrace();
@ -102,15 +104,6 @@ public class Tools {
} catch (IOException e) {
e.printStackTrace();
return false;
} finally {
try {
if (out != null)
out.close();
if (in != null)
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**