根据Android四大框架来解说安全机制
- 代码安全
java不同于C/C++,java是解释性语言,存在代码被反编译的隐患;
默认混淆器为proguard,最新版本为4.7; proguard还可用来压缩、优化java字节码,删除无用的类、字段、方法、属性、注释等。
配置方法为在Android.mk中设置LOCAL_PROGUARD_FLAG_FILES := proguard.flags
packages/apps/Launcher2/proguard.flags
//特定方法
-keep class com.android.launcher2.Launcher {
public void previousScreen(android.view.View);
public void nextScreen(android.view.View);
public void launchHotSeat(android.view.View);
}
//特定类,“$”表示后面的类是前面的类的内部类
-keep class com.android.launcher2.AllApps3D$Defines {
*;
}
-keep class com.android.launcher2.ClippedImageView {
*;
}
- 接入权限
权限主要用来对应用的操作增加限制,防止恶意应用进行非法操作给用户造成敏感数据泄漏和设备被非法控制,防止恶意收费等;
Android的接入权限
Normal权限
Dangerous权限
signatureOrSystem权限
Signature权限
框架层权限定义位置