Commit 0ee499af by sikang

update

parent c4a19aa1
...@@ -5,17 +5,21 @@ ...@@ -5,17 +5,21 @@
"//properties" : "gradle.properties路径", "//properties" : "gradle.properties路径",
"properties" : "../../gradle.properties", "properties" : "../../gradle.properties",
"//lib_main":"所有加入混淆的library main目录 'root' 下的相对路径", "//lib_main":"所有加入混淆的library main目录. 'root' 下的相对路径",
"lib_main":[ "lib_main":[
"app/src/main", "app/src/main",
"lib_base/src/main" "lib_base/src/main",
"cash_plugin_toolbox/src/main"
], ],
"//api_mapping":"api混淆文件的路径: 'root' 下的相对路径", "//api_mapping":"api混淆文件的路径. 'root' 下的相对路径",
"api_mapping":"script/api_mapping", "api_mapping":"script/api_mapping",
"//":"", "//proguard":"所有用到的proguard-rules.pro 路径",
"":"", "proguard":[
"app/proguard-rules.pro",
"lib_base/proguard-rules.pro"
],
"//":"", "//":"",
"":"", "":"",
......
...@@ -2,6 +2,7 @@ import json ...@@ -2,6 +2,7 @@ import json
from tools.garble.activity_garble import ActivityGarble from tools.garble.activity_garble import ActivityGarble
from tools.garble.api_garble import ApiGarble from tools.garble.api_garble import ApiGarble
from tools.garble.manifest_grable import ManifestGarble from tools.garble.manifest_grable import ManifestGarble
from tools.garble.package_garble import PackageGarble
from func import Function from func import Function
...@@ -20,6 +21,7 @@ print("使用帮助") ...@@ -20,6 +21,7 @@ print("使用帮助")
print("1、activity类名混淆") print("1、activity类名混淆")
print("2、api混淆(针对 Retrofit 注解)") print("2、api混淆(针对 Retrofit 注解)")
print("3、manifest混淆 在包路径中随机插入Activity并注册") print("3、manifest混淆 在包路径中随机插入Activity并注册")
print("4、包路径混淆")
print(" ") print(" ")
command = int(input("请输入指令编号:")) command = int(input("请输入指令编号:"))
...@@ -33,4 +35,10 @@ elif command == 2: ...@@ -33,4 +35,10 @@ elif command == 2:
elif command == 3: elif command == 3:
#注意: src/main/java 目录下,只能是目录,不可以有文件 #注意: src/main/java 目录下,只能是目录,不可以有文件
ManifestGarble().manifest_garble(config) # 如果使用了 cash_plugin_toolbox ,需要更新一下,确保 Manifest 中有 <application> 标签
\ No newline at end of file ManifestGarble().manifest_garble(config)
elif command == 4:
#所有library src/main/java 下的包名混淆
PackageGarble().pkg_garble(config)
...@@ -109,13 +109,12 @@ class PackageGarble: ...@@ -109,13 +109,12 @@ class PackageGarble:
self.__process_file_content( self.__process_file_content(
os.path.join(directory, file), file) os.path.join(directory, file), file)
# 四大组件混淆 #包路径混淆
def pkg_garble(self, config): def pkg_garble(self, config):
print("find pkgs...") print("find pkgs...")
#生成混淆字典 #生成混淆字典
self.__find_pkgs("%s/app/src/main/java" % config['root']) for main_dir in config['lib_main']:
self.__find_pkgs("%s/lib_base/src/main/java" % config['root']) self.__find_pkgs("%s/%s/java" % (config['root'], main_dir))
self.__find_pkgs("%s/cash_plugin_toolbox/src/main/java" % config['root'])
# keys = sorted(self.pkg_mapping.keys(), # keys = sorted(self.pkg_mapping.keys(),
# key=lambda i: len(i.split(".")), reverse=True) # key=lambda i: len(i.split(".")), reverse=True)
...@@ -123,23 +122,25 @@ class PackageGarble: ...@@ -123,23 +122,25 @@ class PackageGarble:
# print(key+" -> " + self.pkg_mapping[key]) # print(key+" -> " + self.pkg_mapping[key])
#重命名路径 #重命名路径
self.__rename_pkg("%s/app/src/main/java" % config['root']) for main_dir in config['lib_main']:
self.__rename_pkg("%s/lib_base/src/main/java" % config['root']) self.__rename_pkg("%s/%s/java" % (config['root'], main_dir))
self.__rename_pkg("%s/cash_plugin_toolbox/src/main/java" % config['root'])
#忽略3级以下路径(例如com com.common),避免干扰到三方SDK
for (key,value) in self.pkg_mapping.items(): for (key,value) in self.pkg_mapping.items():
path_level = len(key.split(".")) path_level = len(key.split("."))
if path_level < 3 and not key.startswith("tech.starwin"): #com. cn. 开头的二级包名不混淆,避免干扰到三方SDK
if path_level <= 2 and (key.startswith("com.") or key.startswith("cn.")):
self.pkg_mapping[key] = key
#单个一级包名,干扰太多,不混淆
elif path_level <= 1:
self.pkg_mapping[key] = key self.pkg_mapping[key] = key
#全局替换 #全局替换
self.__process_files("%s/app/proguard-rules.pro" % config['root']) for proguard in config['proguard']:
self.__process_files("%s/lib_base/proguard-rules.pro" % config['root']) self.__process_files("%s/%s" % (config['root'],proguard))
self.__process_files("%s/app/src/main" % config['root'])
self.__process_files("%s/lib_base/src/main" % config['root']) for main_dir in config['lib_main']:
self.__process_files("%s/cash_plugin_toolbox/src/main" % config['root']) self.__process_files("%s/%s/main" % (config['root'], main_dir))
print("done") print("done")
......
...@@ -77,7 +77,6 @@ ...@@ -77,7 +77,6 @@
android:name="design_height_in_dp" android:name="design_height_in_dp"
android:value="640" /> android:value="640" />
Facebook AccountKit
<meta-data <meta-data
android:name="com.facebook.accountkit.ApplicationName" android:name="com.facebook.accountkit.ApplicationName"
android:value="@string/app_name_str" /> android:value="@string/app_name_str" />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment