diff --git a/lib/main.dart b/lib/main.dart index f7c0ce1..49d9ea8 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,13 +1,17 @@ import 'dart:convert'; +import 'dart:io'; import 'package:amap_map_fluttify/amap_map_fluttify.dart'; import 'package:camera/camera.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_bugly/flutter_bugly.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_redux/flutter_redux.dart'; import 'package:oktoast/oktoast.dart'; +import 'package:package_signature/package_signature.dart'; +import 'package:raw_toast/raw_toast.dart'; import 'package:recook/constants/api.dart'; import 'package:recook/manager/http_manager.dart'; import 'package:recook/manager/user_manager.dart'; @@ -113,6 +117,7 @@ class MyAppState extends State { super.initState(); initPlatformState(); BuglyHelper.initialSDK(); + checkSignature(); // BuglyHelper.setUserInfo(); // ShareSDKRegister register = ShareSDKRegister(); // register.setupQQ("1109724223", "UGWklum7WWI03ll9"); @@ -127,6 +132,25 @@ class MyAppState extends State { licenseKey: key, ); }); + + //签名验证 + //---------- + //使用SHA256计算签名 + //仅验证Android 端的签名 + } + + Future checkSignature() async { + if (Platform.isAndroid) { + Signature signature = await PackageSignature.signature; + bool signPass = + 'kzOk4i5opDSCXXjbA9SSrws9a5fytdFFUsumV5DHz2o=' == signature.sha256; + if (!signPass) { + RawToast.toast('请从官方渠道下载本应用,即将退出'); + Future.delayed(Duration(milliseconds: 300), () { + SystemNavigator.pop(); + }); + } + } } Future initPlatformState() async { diff --git a/pubspec.lock b/pubspec.lock index 2b68501..379d8e9 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -476,9 +476,9 @@ packages: flutter_union_pay: dependency: "direct main" description: - path: "/Users/akufe/AndroidStudioProjects/flutter_union_pay" - relative: false - source: path + name: flutter_union_pay + url: "https://pub.flutter-io.cn" + source: hosted version: "0.0.4" flutter_web_plugins: dependency: transitive @@ -748,6 +748,15 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.0.10" + package_signature: + dependency: "direct main" + description: + path: "." + ref: HEAD + resolved-ref: "6f0afe035501bea664f5668a935aae0b31949069" + url: "git@192.168.2.201:aku_fe/package_signature.git" + source: git + version: "0.0.1" path: dependency: "direct main" description: @@ -930,6 +939,13 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "0.3.8" + raw_toast: + dependency: "direct main" + description: + name: raw_toast + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.0.1" redux: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 307b53c..2b460a4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -205,8 +205,14 @@ dependencies: flutter_markdown: - flutter_union_pay : - path: /Users/akufe/AndroidStudioProjects/flutter_union_pay + flutter_union_pay: + + package_signature: + git: + url: git@192.168.2.201:aku_fe/package_signature.git + + raw_toast: ^0.0.1 + dev_dependencies: flutter_test: