diff --git a/thunder/src/main/AndroidManifest.xml b/thunder/src/main/AndroidManifest.xml
index 326827cdf..658513ac3 100644
--- a/thunder/src/main/AndroidManifest.xml
+++ b/thunder/src/main/AndroidManifest.xml
@@ -1,11 +1 @@
-
-
-
-
-
-
-
-
+
diff --git a/thunder/src/main/java/com/xunlei/downloadlib/XLDownloadManager.java b/thunder/src/main/java/com/xunlei/downloadlib/XLDownloadManager.java
index 36c7be8fb..4509ee4ae 100644
--- a/thunder/src/main/java/com/xunlei/downloadlib/XLDownloadManager.java
+++ b/thunder/src/main/java/com/xunlei/downloadlib/XLDownloadManager.java
@@ -1,6 +1,7 @@
package com.xunlei.downloadlib;
import android.content.Context;
+import android.os.Build;
import com.github.catvod.Init;
import com.github.catvod.utils.Prefers;
@@ -9,6 +10,7 @@ import com.xunlei.downloadlib.parameter.BtIndexSet;
import com.xunlei.downloadlib.parameter.BtSubTaskDetail;
import com.xunlei.downloadlib.parameter.BtTaskParam;
import com.xunlei.downloadlib.parameter.EmuleTaskParam;
+import com.xunlei.downloadlib.parameter.GetDownloadLibVersion;
import com.xunlei.downloadlib.parameter.GetFileName;
import com.xunlei.downloadlib.parameter.GetTaskId;
import com.xunlei.downloadlib.parameter.InitParam;
@@ -32,8 +34,11 @@ public class XLDownloadManager {
public void init() {
InitParam param = new InitParam(context.getFilesDir().getPath());
- loader.init(context, param.mAppVersion, "", getPeerId(), getGuid(), param.mStatSavePath, param.mStatCfgSavePath, param.mLogSavePath, 9, param.mPermissionLevel);
- loader.setUserId("Yt4vsji-qngamdRo");
+ loader.init(param.getSoKey(), "com.android.providers.downloads", param.mAppVersion, "", getPeerId(), getGuid(), param.mStatSavePath, param.mStatCfgSavePath, 0, param.mPermissionLevel, param.mQueryConfOnInit);
+ getDownloadLibVersion(new GetDownloadLibVersion());
+ setOSVersion(Build.VERSION.INCREMENTAL + "_alpha");
+ setLocalProperty("PhoneModel", Build.MODEL);
+ setStatReportSwitch(false);
setSpeedLimit(-1, -1);
}
@@ -58,7 +63,7 @@ public class XLDownloadManager {
}
public void startTask(long taskId) {
- loader.startTask(taskId, false);
+ loader.startTask(taskId);
}
public void stopTask(long taskId) {
@@ -73,6 +78,22 @@ public class XLDownloadManager {
loader.getLocalUrl(filePath, localUrl);
}
+ public void getDownloadLibVersion(GetDownloadLibVersion version) {
+ loader.getDownloadLibVersion(version);
+ }
+
+ public void setStatReportSwitch(boolean value) {
+ loader.setStatReportSwitch(value);
+ }
+
+ private void setLocalProperty(String key, String value) {
+ loader.setLocalProperty(key, value);
+ }
+
+ public void setOSVersion(String str) {
+ loader.setMiUiVersion(str);
+ }
+
public void setOriginUserAgent(long taskId, String userAgent) {
loader.setOriginUserAgent(taskId, userAgent);
}
@@ -81,8 +102,8 @@ public class XLDownloadManager {
loader.setDownloadTaskOrigin(taskId, str);
}
- public void setTaskLxState(long j, int i, int i2) {
- loader.setTaskLxState(j, i, i2);
+ public void setTaskGsState(long j, int i, int i2) {
+ loader.setTaskGsState(j, i, i2);
}
public int createP2spTask(P2spTaskParam param, GetTaskId taskId) {
@@ -128,8 +149,4 @@ public class XLDownloadManager {
public void setSpeedLimit(long min, long max) {
loader.setSpeedLimit(min, max);
}
-
- public void setAccelerateToken(long j, int i, long j2, int i2, String str) {
- loader.setAccelerateToken(j, i, j2, i2, str);
- }
}
\ No newline at end of file
diff --git a/thunder/src/main/java/com/xunlei/downloadlib/XLLoader.java b/thunder/src/main/java/com/xunlei/downloadlib/XLLoader.java
index 04f107feb..9bc3de57e 100644
--- a/thunder/src/main/java/com/xunlei/downloadlib/XLLoader.java
+++ b/thunder/src/main/java/com/xunlei/downloadlib/XLLoader.java
@@ -1,9 +1,8 @@
package com.xunlei.downloadlib;
-import android.content.Context;
-
import com.xunlei.downloadlib.parameter.BtIndexSet;
import com.xunlei.downloadlib.parameter.BtSubTaskDetail;
+import com.xunlei.downloadlib.parameter.GetDownloadLibVersion;
import com.xunlei.downloadlib.parameter.GetFileName;
import com.xunlei.downloadlib.parameter.GetTaskId;
import com.xunlei.downloadlib.parameter.ThunderUrlInfo;
@@ -14,6 +13,7 @@ import com.xunlei.downloadlib.parameter.XLTaskLocalUrl;
class XLLoader {
public XLLoader() {
+ System.loadLibrary("xl_stat");
System.loadLibrary("xl_thunder_sdk");
}
@@ -29,6 +29,8 @@ class XLLoader {
public native int getBtSubTaskInfo(long j, int i, BtSubTaskDetail btSubTaskDetail);
+ public native int getDownloadLibVersion(GetDownloadLibVersion getDownloadLibVersion);
+
public native int getFileNameFromUrl(String str, GetFileName getFileName);
public native int getLocalUrl(String str, XLTaskLocalUrl xLTaskLocalUrl);
@@ -37,25 +39,27 @@ class XLLoader {
public native int getTorrentInfo(String str, TorrentInfo torrentInfo);
- public native int init(Context context, String str, String str2, String str3, String str4, String str5, String str6, String str7, int i, int i2);
+ public native int init(String str, String str2, String str3, String str4, String str5, String str6, String str7, String str8, int i, int i2, int i3);
public native int parserThunderUrl(String str, ThunderUrlInfo thunderUrlInfo);
public native int releaseTask(long j);
- public native int setAccelerateToken(long j, int i, long j2, int i2, String str);
-
public native int setDownloadTaskOrigin(long j, String str);
+ public native int setLocalProperty(String str, String str2);
+
+ public native int setMiUiVersion(String str);
+
public native int setOriginUserAgent(long j, String str);
- public native int setSpeedLimit(long j, long j2);
+ public native int setStatReportSwitch(boolean z);
- public native int setTaskLxState(long j, int i, int i2);
+ public native int setSpeedLimit(long j, long j2);
- public native int setUserId(String str);
+ public native int setTaskGsState(long j, int i, int i2);
- public native int startTask(long j, boolean z);
+ public native int startTask(long j);
public native int stopTask(long j);
diff --git a/thunder/src/main/java/com/xunlei/downloadlib/XLTaskHelper.java b/thunder/src/main/java/com/xunlei/downloadlib/XLTaskHelper.java
index f50d1dea3..a0aa5b7ea 100644
--- a/thunder/src/main/java/com/xunlei/downloadlib/XLTaskHelper.java
+++ b/thunder/src/main/java/com/xunlei/downloadlib/XLTaskHelper.java
@@ -41,7 +41,7 @@ public class XLTaskHelper {
}
private synchronized GetTaskId startTask(GetTaskId taskId, int index) {
- getManager().setTaskLxState(taskId.getTaskId(), index, 1);
+ getManager().setTaskGsState(taskId.getTaskId(), index, 2);
getManager().startTask(taskId.getTaskId());
return taskId;
}
diff --git a/thunder/src/main/java/com/xunlei/downloadlib/android/XLUtil.java b/thunder/src/main/java/com/xunlei/downloadlib/android/XLUtil.java
index 9ca832849..ac67468bf 100644
--- a/thunder/src/main/java/com/xunlei/downloadlib/android/XLUtil.java
+++ b/thunder/src/main/java/com/xunlei/downloadlib/android/XLUtil.java
@@ -1,5 +1,7 @@
package com.xunlei.downloadlib.android;
+import android.util.Base64;
+
import java.security.SecureRandom;
import java.util.UUID;
@@ -29,4 +31,17 @@ public class XLUtil {
public static String getGuid() {
return getIMEI() + "_" + getMAC();
}
+
+ public static String generateAppKey(String str, short s, byte b) {
+ int length = str.length();
+ int i = length + 1;
+ byte[] bArr = new byte[(i + 2 + 1)];
+ byte[] bytes = str.getBytes();
+ System.arraycopy(bytes, 0, bArr, 0, bytes.length);
+ bArr[length] = 0;
+ bArr[i] = (byte) (s & 255);
+ bArr[length + 2] = (byte) ((s >> 8) & 255);
+ bArr[length + 3] = b;
+ return new String(Base64.encode(bArr, 0)).trim();
+ }
}
diff --git a/thunder/src/main/java/com/xunlei/downloadlib/parameter/InitParam.java b/thunder/src/main/java/com/xunlei/downloadlib/parameter/InitParam.java
index ce057e230..da2178333 100644
--- a/thunder/src/main/java/com/xunlei/downloadlib/parameter/InitParam.java
+++ b/thunder/src/main/java/com/xunlei/downloadlib/parameter/InitParam.java
@@ -1,20 +1,33 @@
package com.xunlei.downloadlib.parameter;
+import android.util.Base64;
+
+import com.xunlei.downloadlib.android.XLUtil;
+
+import java.nio.charset.StandardCharsets;
+
public class InitParam {
- public String mGuid;
+ public String mAppKey;
public String mAppVersion;
- public String mLogSavePath;
public String mStatSavePath;
public String mStatCfgSavePath;
+ public int mQueryConfOnInit;
public int mPermissionLevel;
public InitParam(String path) {
- this.mGuid = "000000000000000000";
- this.mAppVersion = "1.18.2";
- this.mLogSavePath = path;
+ this.mAppKey = "xzNjAwMQ^^yb==0^852^083dbcff^cee25055f125a2fde";
+ this.mAppVersion = "21.01.07.800002";
+ this.mPermissionLevel = 1;
+ this.mQueryConfOnInit = 0;
this.mStatSavePath = path;
this.mStatCfgSavePath = path;
- this.mPermissionLevel = 3;
+ }
+
+ public String getSoKey() {
+ String[] split = mAppKey.split("==");
+ String replace = split[0].replace('^', '=');
+ String str = new String(Base64.decode(replace.substring(2, replace.length() - 2), 0), StandardCharsets.UTF_8);
+ return XLUtil.generateAppKey("com.android.providers.downloads", Short.parseShort(str.split(";")[0]), (byte) 1);
}
}
diff --git a/thunder/src/main/java/com/xunlei/downloadlib/parameter/XLTaskInfo.java b/thunder/src/main/java/com/xunlei/downloadlib/parameter/XLTaskInfo.java
index 700250320..d208c32a4 100644
--- a/thunder/src/main/java/com/xunlei/downloadlib/parameter/XLTaskInfo.java
+++ b/thunder/src/main/java/com/xunlei/downloadlib/parameter/XLTaskInfo.java
@@ -32,6 +32,8 @@ public class XLTaskInfo {
public long mP2PSpeed;
public long mP2SRecvBytes;
public long mP2SSpeed;
+ public long mScdnRecvBytes;
+ public long mScdnSpeed;
public long mTaskId;
public long mTotalFileCount;
diff --git a/thunder/src/main/jniLibs/arm64-v8a/libxl_stat.so b/thunder/src/main/jniLibs/arm64-v8a/libxl_stat.so
new file mode 100644
index 000000000..2d8e3d43b
Binary files /dev/null and b/thunder/src/main/jniLibs/arm64-v8a/libxl_stat.so differ
diff --git a/thunder/src/main/jniLibs/arm64-v8a/libxl_thunder_sdk.so b/thunder/src/main/jniLibs/arm64-v8a/libxl_thunder_sdk.so
index 92b14fa8f..14230530f 100644
Binary files a/thunder/src/main/jniLibs/arm64-v8a/libxl_thunder_sdk.so and b/thunder/src/main/jniLibs/arm64-v8a/libxl_thunder_sdk.so differ
diff --git a/thunder/src/main/jniLibs/armeabi-v7a/libxl_stat.so b/thunder/src/main/jniLibs/armeabi-v7a/libxl_stat.so
new file mode 100644
index 000000000..f3eaddf28
Binary files /dev/null and b/thunder/src/main/jniLibs/armeabi-v7a/libxl_stat.so differ
diff --git a/thunder/src/main/jniLibs/armeabi-v7a/libxl_thunder_sdk.so b/thunder/src/main/jniLibs/armeabi-v7a/libxl_thunder_sdk.so
index 9cb8235b5..25dac4387 100644
Binary files a/thunder/src/main/jniLibs/armeabi-v7a/libxl_thunder_sdk.so and b/thunder/src/main/jniLibs/armeabi-v7a/libxl_thunder_sdk.so differ