任何人都可以了解App Protector,ES Security Manager(应用程序保护器部分)等应用程序的工作原理
基本上你所做的就是设置你想锁定的所有应用程序。然后每当你尝试启动“锁定”应用程序时,它就会弹出其锁屏活动。所以你在那里输入密码并访问锁定的应用程序。
它使用以下权限
> android.permission.RECEIVE_BOOT_COMPLETED
> android.permission.GET_TASKS
> android.permission.INTERNET
> android.permission.READ_LOGS
> android.permission.VIBRATE
> android.permission.READ_PHONE_STATE
> android.permission.SYSTEM_ALERT_WINDOW
那么这样的系统是如何工作的呢?它是否继续读取日志“READ_LOGS”以查看应用程序启动是否正在发生?
我对应用程序进行了逆向工程,并发现它到底在做什么。
它只是通过logcat通过服务使用像这样的过滤器连续读取日志
ActivityManager:I *:S
获得刚刚开展的活动。其中一部分信息来自
ActivityManager.RunningTaskInfo
然后,如果启动“锁定”活动,则显示锁定屏幕。
我对应用程序进行了逆向工程,并发现它到底在做什么。
它只是通过logcat通过服务使用像这样的过滤器连续读取日志
ActivityManager:I *:S
获得刚刚开展的活动。其中一部分信息来自
ActivityManager.RunningTaskInfo
然后,如果启动“锁定”活动,则显示锁定屏幕。
我对这个过程的猜测是这样的:
- 该应用程序使用广播接收器或其他一些检测方法来确定应用程序何时启动。
- 如果应用程序是应该受保护的应用程序,则保护程序应用程序会在任务之上放置一个锁定屏幕。
- 如果用户输入正确的锁,则锁定屏幕自动完成。
- 如果密码不正确,保护程序将终止受保护的应用程序。
我认为这就是所有应用程序保护程序的工作方式,而且我很确定这就是像Handcent SMS这样的应用程序保护文本消息的方式。