代码混淆
Android
框架使用Proguard对源码进行混淆处理,Proguard是一个Java类文件压缩器、优化器、混淆器、预校验器。压缩环节会检测以及移除没有用到的类、字段、方法以及属性。优化环节会分析以及优化方法的字节码。混淆环节会用无意义的短变量去重命名类、变量、方法。这些步骤让代码更精简,更高效,也更难被逆向(破解)。
为了使三方开发能正常使用框架功能,部分框架提供的类及方法应当被保持不被混淆:
-keep class com.hundsun.frameworkgmu.** { *; } |
App防root
Android
框架提供了appsecurity.gmu
配置文件入口用于防root提示,如果配置rootAlert
为true
在App启动完成后会判断当前设备是否已root,框架在启动完成后会判断当前设备是否已Root,如果设备已Root则弹窗“请勿在Root的设备上使用该应用!”来对用户进行提醒。
// appsecurity.gmu配置示例 |
App防模拟器运行
Android
框架提供了appsecurity.gmu
配置文件入口用于防模拟器提示,如果配置simulatorEnable
为false
在App启动完成后会判断当前设备是否运行在模拟器,框架在启动完成后会判断当前设备是否为Android模拟器,如果为模拟器则弹窗“请勿在模拟器上使用该应用!”来对用户进行提醒。
// appsecurity.gmu配置示例 |
App防越狱
iOS
框架提供了appsecurity.gmu
配置文件入口用于防越狱提示,如果配置rootAlert
为true
在App启动完成后会判断当前设备是否已越狱,如果设备已越狱则弹窗“检测到您的设备已越狱”来对用户进行提醒。
// appsecurity.gmu配置示例 |
App防重签名
iOS
框架提供了appsecurity.gmu配置文件入口用于防重签名提示,如果配置checkSignature为true在App启动完成后会判断当前设备是否被重签名,如果设备已被被重签名则弹窗“检测到App已被重签名,存在安全风险”来对用户进行提醒。
// appsecurity.gmu配置示例 |
安全输入
框架提供了安全键盘组件,同时安全键盘组件还提供了JSAPI用于在前端页面中使用安全键盘,使用方式如下:
let params={ |
安全传输
Light平台提供了移动网关服务,客户端直接向移动网关发送请求,移动网关通过对HTTPS和HTTP报文签名来保证数据被安全传输,当网关收到请求后再将请求转发到业务后端服务上。框架提供了移动网关请求的JSAPI来供前端页面向移动网关发送请求,调用示例如下:
let params = { |
唤醒密码
框架的本地验证组件提供了App唤醒密码功能,ios本地验证组件提供了三种验证方式:手势密码、Touch ID和Face ID,android本地验证组件提供了两种验证方式:手势密码和指纹识别。以上验证方式均可通过JSAPI调用,调用示例:
let params={ |