From 0baf94225974a8a993789f671860f3679e1a9ff0 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期二, 09 一月 2024 16:11:01 +0800 Subject: [PATCH] 修改权限框架 添加包名和签名验证 数据库文件隐藏 --- app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java | 82 +++++++++++++++++++++++++++++++++------- 1 files changed, 67 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java b/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java index 2a419ff..7c47f40 100644 --- a/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java @@ -1,6 +1,7 @@ package com.dayu.recharge.activity; import android.content.Context; +import android.os.Build; import android.os.Bundle; import android.text.TextUtils; import android.view.LayoutInflater; @@ -11,11 +12,14 @@ import com.dayu.recharge.databinding.ActivityAdminSetupBinding; import com.dayu.recharge.dbBean.AdminDataBean; import com.dayu.recharge.dbBean.IpBean; -import com.dayu.recharge.utils.ToastUtil; +import com.dayu.recharge.utils.TipUtil; import com.example.pickerviewlibrary.picker.TeaPickerView; import com.example.pickerviewlibrary.picker.entity.PickerData; import com.example.pickerviewlibrary.picker.listener.OnPickerClickListener; import com.tencent.bugly.crashreport.CrashReport; + +import java.lang.reflect.Method; +import java.util.zip.CRC32; /** * Copyright (C), 2023, @@ -50,30 +54,29 @@ adminBinding.setupOk.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if (!TextUtils.isEmpty(adminBinding.adminName.getText().toString()) - && !TextUtils.isEmpty(adminBinding.adminPhone.getText().toString()) - && !TextUtils.isEmpty(adminData.getCun()) + if (!TextUtils.isEmpty(adminData.getCun()) && !TextUtils.isEmpty(adminBinding.adminSerial.getText().toString()) ) { if (Integer.valueOf(adminBinding.adminSerial.getText().toString()) <= 16777215) { - adminData.setName(adminBinding.adminName.getText().toString()); - adminData.setPhone(adminBinding.adminPhone.getText().toString()); + adminBinding.adminAddressCode.setText(adminData.getAddressCode()); adminData.setSerial(adminBinding.adminSerial.getText().toString()); baseDao.adminDao().insert(adminData); - MyApplication.myApplication.initEasySocket(false, null); - - ToastUtil.show(AdminSetupActivity.this, "璁剧疆鎴愬姛"); setData(); - IpBean ipBean = baseDao.ipDao().findFirst(); + IpBean ipBean = MyApplication.myApplication.ipBean; if (ipBean != null) { MyApplication.myApplication.initMachineRequestBean(ipBean.getIp(), ipBean.getPort(), adminData.getAddressCode()); } - + TipUtil.show(AdminSetupActivity.this, "璁剧疆鎴愬姛", new TipUtil.TipListener() { + @Override + public void onCancle() { + AdminSetupActivity.this.finish(); + } + }); } else { - ToastUtil.show(AdminSetupActivity.this, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215"); + TipUtil.show(AdminSetupActivity.this, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215"); } } else { - ToastUtil.show(AdminSetupActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�"); + TipUtil.show(AdminSetupActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�"); } } }); @@ -104,9 +107,10 @@ if (adminData != null) { this.adminData = adminData; adminBinding.adminSerial.setText(adminData.getSerial()); - adminBinding.adminPhone.setText(adminData.getPhone()); - adminBinding.adminName.setText(adminData.getName()); + adminBinding.adminAddressCode.setText(adminData.getAddressCode()); adminBinding.adminAddress.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun()); + } else { + adminBinding.adminSerial.setText("12" + generateUniqueNumber(getSN())); } } catch (Exception e) { @@ -145,6 +149,7 @@ adminData.setAddressCode(pickerData.getSecondText().getCode()); } adminBinding.adminAddress.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun()); + adminBinding.adminAddressCode.setText(adminData.getAddressCode()); pickerView.dismiss(); } }); @@ -155,5 +160,52 @@ } } + public static String getSN() { + String serial = null; + try { + Class<?> c = Class.forName("android.os.SystemProperties"); + Method get = c.getMethod("get", String.class); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + try { + serial = (String) get.invoke(c, "ro.sunmi.serial"); + } catch (Exception e) { + e.printStackTrace(); + } + return serial; + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + serial = Build.getSerial(); + return serial; + } else { + //瀹夊崜8浠ヤ笅浣跨敤Build.SERIAL鐩稿悓鏂瑰紡 + //return Build.SERIAL; + try { + serial = (String) get.invoke(c, "ro.serialno"); + } catch (Exception e) { + e.printStackTrace(); + } + return serial; + } + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } catch (NoSuchMethodException e) { + throw new RuntimeException(e); + } + } + + public static String generateUniqueNumber(String input) { + try { + // 浣跨敤CRC32鍝堝笇鍑芥暟 + CRC32 crc32 = new CRC32(); + crc32.update(input.getBytes()); + long crcValue = crc32.getValue(); + // 灏嗗搱甯屽�兼槧灏勫埌6浣嶆暟瀛楃殑鑼冨洿 + long sixDigitNumber = Math.abs(crcValue) % 1000000; + // 鏍煎紡鍖栦负6浣嶆暟瀛楃殑瀛楃涓� + return String.format("%06d", sixDigitNumber); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } } -- Gitblit v1.8.0