This commit is contained in:
Yutousama 2020-06-03 01:58:56 +08:00
parent 7ad84e9dba
commit 5d366b8bd1
7 changed files with 225 additions and 37 deletions

124
ad_config.cfg Normal file
View File

@ -0,0 +1,124 @@
{
"array": [
{},
{},
{},
{},
{
"title": "穿山甲",
"ltName": "open_ad_sdk.jar",
"manifest": [
"<activity android:name=\"com.bytedance.sdk.openadsdk.activity.TTLandingPageActivity\" android:configChanges=\"keyboardHidden|orientation|screenSize\" android:launchMode=\"standard\" /> ",
"<activity android:name=\"com.bytedance.sdk.openadsdk.activity.TTPlayableLandingPageActivity\" android:configChanges=\"keyboardHidden|orientation|screenSize\" android:launchMode=\"standard\" /> ",
"<activity android:name=\"com.bytedance.sdk.openadsdk.activity.TTVideoLandingPageActivity\" android:configChanges=\"keyboardHidden|orientation|screenSize\" android:launchMode=\"standard\" /> ",
"<activity android:name=\"com.bytedance.sdk.openadsdk.activity.TTRewardVideoActivity\" android:configChanges=\"keyboardHidden|orientation|screenSize\" android:launchMode=\"standard\" /> ",
"<activity android:name=\"com.bytedance.sdk.openadsdk.activity.TTRewardExpressVideoActivity\" android:configChanges=\"keyboardHidden|orientation|screenSize\" android:launchMode=\"standard\" /> ",
"<activity android:name=\"com.bytedance.sdk.openadsdk.activity.TTFullScreenVideoActivity\" android:configChanges=\"keyboardHidden|orientation|screenSize\" android:launchMode=\"standard\" /> ",
"<activity android:name=\"com.bytedance.sdk.openadsdk.activity.TTFullScreenExpressVideoActivity\" android:configChanges=\"keyboardHidden|orientation|screenSize\" android:launchMode=\"standard\" /> ",
"<activity android:name=\"com.bytedance.sdk.openadsdk.activity.TTDelegateActivity\" android:launchMode=\"singleTask\" android:theme=\"@android:style/Theme.Translucent.NoTitleBar\" /> ",
"<service android:name=\"com.bytedance.sdk.openadsdk.multipro.aidl.BinderPoolService\" /> ",
"<receiver android:name=\"com.ss.android.downloadlib.core.download.DownloadReceiver\" android:enabled=\"true\" android:exported=\"true\" /> ",
"<service android:name=\"com.bytedance.tea.crash.upload.CrashUploadService\" android:process=\":npth\" />",
"<service android:name=\"com.ss.android.socialbase.downloader.notification.DownloadNotificationService\" />",
"<service android:name=\"com.ss.android.socialbase.downloader.downloader.DownloadService\" />",
"<service android:name=\"com.ss.android.socialbase.downloader.downloader.IndependentProcessDownloadService\" android:process=\":downloader\"> <intent-filter> <action android:name=\"com.ss.android.socialbase.downloader.remote\" /> </intent-filter> </service>",
"<service android:name=\"com.ss.android.socialbase.downloader.impls.DownloadHandleService\" />",
"<service android:name=\"com.ss.android.socialbase.appdownloader.DownloadHandlerService\" />",
"<activity android:name=\"com.ss.android.socialbase.appdownloader.view.DownloadSizeLimitActivity\" android:launchMode=\"singleTask\" android:theme=\"@android:style/Theme.Dialog\" />",
"<activity android:name=\"com.ss.android.socialbase.appdownloader.view.DownloadTaskDeleteActivity\" android:launchMode=\"singleTask\" android:theme=\"@android:style/Theme.Dialog\" />",
"<activity android:name=\"com.ss.android.downloadlib.activity.TTDelegateActivity\" android:launchMode=\"singleTask\" android:theme=\"@android:style/Theme.Translucent.NoTitleBar\" />",
],
"class":[
"com.bytedance.sdk.openadsdk.activity.TTLandingPageActivity",
"com.bytedance.sdk.openadsdk.activity.TTPlayableLandingPageActivity",
"com.bytedance.sdk.openadsdk.activity.TTVideoLandingPageActivity",
"com.bytedance.sdk.openadsdk.activity.TTRewardVideoActivity",
"com.bytedance.sdk.openadsdk.activity.TTRewardExpressVideoActivity",
"com.bytedance.sdk.openadsdk.activity.TTFullScreenVideoActivity",
"com.bytedance.sdk.openadsdk.activity.TTFullScreenExpressVideoActivity",
"com.bytedance.sdk.openadsdk.activity.TTDelegateActivity",
"com.bytedance.sdk.openadsdk.multipro.aidl.BinderPoolService",
"com.bytedance.embedapplog.collector.Collector",
"com.bytedance.tea.crash.upload.CrashUploadService",
"com.bytedance.sdk.openadsdk.activity.TTBaseVideoActivity",
"com.ss.android.socialbase.downloader.notification.DownloadNotificationService",
"com.ss.android.socialbase.downloader.downloader.DownloadService",
"com.ss.android.socialbase.downloader.downloader.IndependentProcessDownloadService",
"com.ss.android.socialbase.downloader.impls.DownloadHandleService",
"com.ss.android.socialbase.appdownloader.DownloadHandlerService",
"com.ss.android.socialbase.appdownloader.view.DownloadSizeLimitActivity",
"com.ss.android.socialbase.appdownloader.view.DownloadTaskDeleteActivity",
"com.ss.android.downloadlib.activity.TTDelegateActivity"
],
"random":[
"com",
"nusqu",
"gzxem"
],
"isAllPackage":false,
"isReName":true,
"isJarLib":true,
"packagerlimit":3,
"isManual":true,
"outManifest":false,
"manual":[
{
"class":"com.bytedance.sdk.openadsdk.downloadnew.a.d",
"find":" const-string v1, \".TTFileProvider\"",
"data":" const-string v1, \".fileprovider\"\n",
"end":" invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;",
"msg":"把TTFileProvider改成fileprovider"
},{
"class":"com.bytedance.embedapplog.util.TTEncryptUtils",
"find":"const-string v0, \"tobEmbedEncrypt\"",
"data":"const-string v0, \"ttb\"\n",
"end":"invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V"
},{
"class":"com.pgl.sys.ces.a",
"find":"const-string v0, \"nms\"",
"data":"const-string v0, \"ees\"\n",
"end":"invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V"
},{
"class":"com.pgl.sys.ces.b",
"find":"const-string p1, \"nms\"",
"data":"const-string p1, \"ees\"\n",
"end":"invoke-static {p0, p1}, Lcom/pgl/a/b/e;->a(Landroid/content/Context;Ljava/lang/String;)Z"
}
],
"rename":{
"TTLandingPageActivity":"{>+/activity}TTLandingPageActivity",
"TTPlayableLandingPageActivity":"{>+/activity}TTPlayableLandingPageActivity",
"TTVideoLandingPageActivity":"{>+/activity}TTVideoLandingPageActivity",
"TTRewardVideoActivity":"{>+/activity}TTRewardVideoActivity",
"TTRewardExpressVideoActivity":"{>+/activity}TTRewardExpressVideoActivity",
"TTFullScreenVideoActivity":"{>+/activity}TTFullScreenVideoActivity",
"TTFullScreenExpressVideoActivity":"{>+/activity}TTFullScreenExpressVideoActivity",
"TTDelegateActivity":"{>+/activity}TTDelegateActivity",
"TTBaseVideoActivity":"{>+/activity}TTBaseVideoActivity",
"BinderPoolService":"{>+/multipro/aidl}BinderPoolService",
"Collector":"{>+/cc/collector}Collector",
"CrashUploadService":"{>+/cc/crash/upload}CrashUploadService",
"com.ss.android.downloadlib.activity.TTDelegateActivity":"{>+/dl/activity}TTDelegateActivity",
"DownloadNotificationService":"{>+/sb/downloader/notification}DownloadNotificationService",
"DownloadService":"{>+/sb/downloader/downloader}DownloadService",
"IndependentProcessDownloadService":"{>+/sb/downloader/downloader}IndependentProcessDownloadService",
"DownloadHandleService":"{>+/sb/downloader/impls}DownloadHandleService",
"DownloadHandlerService":"{>+/sb/appdownloader}DownloadHandlerService",
"DownloadSizeLimitActivity":"{>+/sb/appdownloader/view}DownloadSizeLimitActivity",
"DownloadTaskDeleteActivity":"{>+/sb/appdownloader/view}DownloadTaskDeleteActivity",
"DownloadReceiver":"{>+/dl/core/download}DownloadReceiver",
},
"filter":[
"com.android",
"com.xandroid",
"com.google",
"com.android",
"com.androidx"
]
}
]
}

34
config.cfg Normal file
View File

@ -0,0 +1,34 @@
{
"csjConfig": {
"xml": {
"data": [
{
"command": "remove",
"name": "${demoRoot}/res/values/public.xml",
"data": [
{
"title": "type",
"value": "raw"
},
{
"title": "type",
"value": "xml"
}
]
}
]
},
"file": {
"data": [
{
"command": "delete",
"name": "${demoRoot}/res/raw/*"
},
{
"command": "delete",
"name": "${demoRoot}/lib/*"
}
]
}
}
}

BIN
csj/demo.apk Normal file

Binary file not shown.

BIN
libs/android_sdk_tools.jar Normal file

Binary file not shown.

BIN
libs/apktool_2.4.1.jar Normal file

Binary file not shown.

26
pom.xml
View File

@ -10,7 +10,7 @@
</parent>
<groupId>com.yutou</groupId>
<artifactId>tools</artifactId>
<version>1.0.7.1</version>
<version>1.0.7.2</version>
<name>tools</name>
<description>Demo project for Spring Boot</description>
@ -86,7 +86,20 @@
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.8.0</version>
</dependency>
<dependency>
<groupId>android_sdk_tools</groupId>
<artifactId>android_sdk_tools</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/android_sdk_tools.jar</systemPath>
</dependency>
<dependency>
<groupId>apktool</groupId>
<artifactId>apktool</artifactId>
<version>2.4.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/apktool_2.4.1.jar</systemPath>
</dependency>
</dependencies>
<build>
@ -96,6 +109,15 @@
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>libs</directory>
<targetPath>/BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources>
</build>
</project>

View File

@ -17,29 +17,32 @@ public class BotTools {
String _json = new String(Base64.getDecoder().decode(msg));
JSONObject json = JSONObject.parseObject(_json);
String url = json.getString("url");
Tools.download(url, new DownloadInterface() {
@Override
public void onDownload(String file) {
super.onDownload(file);
if (file.endsWith(".apk")) {
String uuid = UUID.randomUUID().toString().replace("-", "").toLowerCase();
Jedis redisTools = RedisTools.getRedis();
redisTools.select(1);
redisTools.setex("downloadApk_" + uuid, RedisTools.TOKEN_TIMEOUT_DEFAULT, file);
redisTools.close();
RedisTools.set(1, "msg_" + System.currentTimeMillis(), "检测到上传apk请选择处理方式" +
"\n1)生成穿山甲资源包 (回复 #csj#穿山甲包名#穿山甲版本号#downloadApk_" + uuid + ")" +
"\n2)不处理 (360s后自动取消)" +
"\n$downloadApk_" + uuid);
if(url.endsWith(".apk")){
Tools.download(url, new DownloadInterface() {
@Override
public void onDownload(String file) {
super.onDownload(file);
if (file.endsWith(".apk")) {
String uuid = UUID.randomUUID().toString().replace("-", "").toLowerCase();
Jedis redisTools = RedisTools.getRedis();
redisTools.select(1);
redisTools.setex("downloadApk_" + uuid, RedisTools.TOKEN_TIMEOUT_DEFAULT, file);
redisTools.close();
RedisTools.set(1, "msg_" + System.currentTimeMillis(), "检测到上传apk请选择处理方式" +
"\n1)生成穿山甲资源包 (回复 #csj#穿山甲包名#穿山甲版本号#downloadApk_" + uuid + ")" +
"\n2)不处理 (360s后自动取消)" +
"\n$downloadApk_" + uuid);
}
}
}
@Override
public void onError(Exception e) {
super.onError(e);
@Override
public void onError(Exception e) {
super.onError(e);
}
});
}
}
});
return "ok";
}
@ -68,6 +71,8 @@ public class BotTools {
list.clear();
for (JSONObject jsonObject : tmp) {
isRun=true;
long startTime=System.currentTimeMillis();
File apk=new File(jsonObject.getString("file"));
new CsjTools(jsonObject.getString("file")
, new File("csj" + File.separator + "demo.apk").getAbsolutePath()
, jsonObject.getString("packagename")
@ -80,13 +85,29 @@ public class BotTools {
@Override
public void onDownload(String file) {
super.onDownload(file);
File apk=new File(s);
long nowTime=System.currentTimeMillis()-startTime;
RedisTools.set(1,"msg_"+System.currentTimeMillis(),apk.getName()
+"已处理完成,下载地址" +
"\n"+file +
"\n请在十分钟内下载超时将自动删除");
"\n请在十分钟内下载超时将自动删除" +
"\n耗时"+nowTime+"ms");
path = file.replace("https://yutou-oss-test.oss-cn-hangzhou.aliyuncs.com/", "");
isRun=false;
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(100);
if (list.size() > 0) {
RedisTools.set(1, "msg_" + System.currentTimeMillis(), "开始下一个队列");
csj();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
@ -104,20 +125,7 @@ public class BotTools {
});
}
}
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(100);
if (list.size() > 0) {
csj();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
}