diff --git a/appbase/build.properties b/appbase/build.properties index 4bbb551..51788ff 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat Jan 24 03:14:43 GMT 2026 +#Sat Jan 24 04:15:06 GMT 2026 stageCount=8 libraryProject=libappbase baseVersion=15.15 publishVersion=15.15.7 -buildCount=25 +buildCount=28 baseBetaVersion=15.15.8 diff --git a/libappbase/build.properties b/libappbase/build.properties index 4bbb551..51788ff 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat Jan 24 03:14:43 GMT 2026 +#Sat Jan 24 04:15:06 GMT 2026 stageCount=8 libraryProject=libappbase baseVersion=15.15 publishVersion=15.15.7 -buildCount=25 +buildCount=28 baseBetaVersion=15.15.8 diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/dialogs/SignGetDialog.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/dialogs/SignGetDialog.java index 425ffa3..9e73793 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/dialogs/SignGetDialog.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/dialogs/SignGetDialog.java @@ -10,7 +10,7 @@ import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.R; import cc.winboll.studio.libappbase.ToastUtils; import cc.winboll.studio.libappbase.utils.APPUtils; -import cc.winboll.studio.libappbase.utils.SignGetUtils; +import cc.winboll.studio.libappbase.utils.ApkSignUtils; /** * @Describe 签名显示+正版校验对话框 @@ -25,6 +25,8 @@ public class SignGetDialog extends Dialog { private Context mContext; String projectName; String versionName; + String clientSign; + String clientHash; public SignGetDialog(Context context, String projectName, String versionName) { super(context, R.style.DialogStyle); // 适配默认对话框样式 @@ -38,6 +40,12 @@ public class SignGetDialog extends Dialog { super.onCreate(savedInstanceState); setContentView(R.layout.dialog_sign_get); // 绑定xml布局 setCancelable(true); // 点击外部可关闭 + + // 获取与服务端对齐的签名 + this.clientSign = ApkSignUtils.getApkSignAlignedWithServer(this.mContext); + // 获取哈希(不变) + this.clientHash = ApkSignUtils.getApkSHA256Hash(this.mContext); + initView(); initSignAndCheck(); // 获取签名+正版校验 } @@ -47,6 +55,7 @@ public class SignGetDialog extends Dialog { tvAuthResult = findViewById(R.id.tv_auth_result); // 输入框只读,方便复制 etSignFingerprint.setEnabled(false); + etSignFingerprint.setText(convertSignToBitArrayWithWrap(this.clientSign)); } // 核心:获取签名+调用APPUtils校验 @@ -57,6 +66,8 @@ public class SignGetDialog extends Dialog { mContext, this.projectName, this.versionName, + this.clientSign, + this.clientHash, new APPUtils.CheckResultCallback() { @Override public void onResult(boolean isValid, String message) { diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/utils/APPUtils.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/utils/APPUtils.java index c853eb4..a02356e 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/utils/APPUtils.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/utils/APPUtils.java @@ -41,6 +41,7 @@ import okhttp3.Response; public class APPUtils { // ===================================== 全局常量/属性 ===================================== public static final String TAG = "APPUtils"; + // 网络校验接口地址 private static final String CHECK_API_URI = "api/app-signatures-check"; // OKHTTP客户端(单例复用) @@ -56,7 +57,7 @@ public class APPUtils { * @param versionName 应用版本名 * @param callback 校验结果回调(主线程回调) */ - public void checkAPKValidation(Context context, String projectName, String versionName, final CheckResultCallback callback) { + public void checkAPKValidation(Context context, String projectName, String versionName, String clientSign,String clientHash, final CheckResultCallback callback) { // 入参调试日志 LogUtils.d(TAG, "checkAPKValidation: 入参 projectName=" + projectName + ", versionName=" + versionName); // 空参校验 @@ -86,10 +87,7 @@ public class APPUtils { LogUtils.d(TAG, "checkAPKValidation: 开始获取应用官方签名与APK SHA256哈希"); // String clientSign = getOfficialSignBase64(context); // String clientHash = getApkSHA256Hash(context); - // 获取与服务端对齐的签名 - String clientSign = ApkSignUtils.getApkSignAlignedWithServer(context); - // 获取哈希(不变) - String clientHash = ApkSignUtils.getApkSHA256Hash(context); + // 传服务端校验 // 签名/哈希结果校验