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