应用校验对话框UI显示调整完成。

This commit is contained in:
2026-01-24 12:17:28 +08:00
parent 2751ce4a39
commit 8546b6c8ad
4 changed files with 19 additions and 10 deletions

View File

@@ -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) {

View File

@@ -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);
// 传服务端校验
// 签名/哈希结果校验