总而言之,虽然uniapp文档一般好,bug一般多,更新像拆炸弹,但是,对于很多人来说,还是很有意义的。所以用的人还是很多。
但是目前随着各种商城上架政策的严格审查,对于加固等需求也慢慢起来了,所以今天我们来讲讲uniapp开发的安卓APP要如何加固。
先来看看一般加固会从哪几个方向进行加固
而我们如果把uniapp制作的安卓APP在加固上其实大同小异--只要是apk或者aab格式都可以,所以我们就基于这个原理来进行加固。
按照一般的思路,先给他混淆一下子。使用代码混淆工具来混淆JavaScript代码,以使其难以被逆向工程和破解。常用的混淆工具包括ProGuard和DexGuard。在UniApp中,你可以在打包安卓应用时配置ProGuard来进行代码混淆。示例代码如下所示,在项目根目录下的uniapp.pro文件中添加以下配置:
-keepclasscom.dcloud.**{*;}-keeppublicclass*extendsio.dcloud.*{*;}02加固资源文件&防止调试和反调试加固资源文件:将敏感资源文件(如证书、配置文件等)进行加密或混淆,以防止被攻击者获取。可以使用第三方工具对资源文件进行加密,或者自定义加密算法来保护资源文件的安全
防止调试和反调试:这一步可以使用第三方库或自定义代码来实现这些保护措施。比如说,可以检测应用程序是否在调试模式下运行,并在调试模式下采取相应的措施,例如关闭应用程序或隐藏敏感信息。
importandroid.os.Debug;publicclassDebugUtils{publicstaticbooleanisDebugMode(){returnDebug.isDebuggerConnected();}}就是说,在应用程序中调用DebugUtils.isDebugMode()方法,可以根据返回值来判断应用程序是否在调试模式下运行,并采取相应的措施。
我们直接使用PBEWithMD5AndDES算法对数据进行加密和解密。使用的时候,你可以调用EncryptionUtils.encrypt(data)方法来加密敏感数据,并调用EncryptionUtils.decrypt(encryptedData)方法来解密数据。记得将PASSWORD和SALT替换为你自己的密码和盐值(重要!!!)。
Stringdata="Hello,world!";StringoriginalHash="2ef7bde608ce5404e97d5f042f95f89f1c232871";StringcalculatedHash=IntegrityUtils.calculateHash(data);booleanisIntegrityVerified=IntegrityUtils.verifyIntegrity(data,originalHash);if(isIntegrityVerified){System.out.println("Dataintegrityverified.");}else{System.out.println("Datahasbeentamperedwith!");}05签名功能补充一个Android签名。
本工具用于对android加固后的apk进行重新签名。
使用说明
ps:如果有alias(证书别名)密钥的或者有多个证书的,请在高级tab中选择alias并输入alias密码
多渠道工具兼容友盟和美团walle风格的多渠道包,方便客户把APP发布到不同的应用平台,进行渠道统计。
读取渠道信息
顶象多渠道工具兼容友盟和美团walle风格的多渠道包,下面是两种不同风格的渠道信息读取方法。选其中之一即可
输出的Apk中将会包含UMENG_CHANNEL的mata-data
publicstaticStringgetChannel(Contextctx){Stringchannel="";try{ApplicationInfoappInfo=ctx.getPackageManager().getApplicationInfo(ctx.getPackageName(),PackageManager.GET_META_DATA);channel=appInfo.metaData.getString("UMENG_CHANNEL");}catch(PackageManager.NameNotFoundExceptionignore){}returnchannel;}读取渠道信息:Walle输出的Apk也包含Walle风格的渠道信息
implementation'com.meituan.android.walle:library:1.1.7'Stringchannel=WalleChannelReader.getChannel(this.getApplicationContext());渠道文件格式说明
请准备渠道清单文件channel.txt,格式为每一行一个渠道,例如:
0001_my0003_baidu0004_huawei0005_oppo0006_vivo结语以上就是基于uniapp制作的AndroidAPP的加固方式,仅供参考~欢迎一起交流学习~