Can anyone shed some light on how applications like App Protector , ES Security Manager (app protector part) work
Basically what you do is set all the apps you want to lock in there. then whenever you try to launch "locked" app it pops in its Lockscreen activity. so you enter the password 开发者_Python百科there and get access to the locked app.
It uses the following permissions
> 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
So how does such a system work. does it keep reading the logs "READ_LOGS" to see if the application launch is occurring ??
I reverse engineered the app and found what exactly it was doing.
It just continuously read the logs via logcat through a service using filters like
ActivityManager:I *:S
to get just the activities launched. also some part of its information came from
ActivityManager.RunningTaskInfo
then if the "locked" activity is launched it shows the lockscreen.
My guess for the process this uses would be this:
- The app uses a broadcast receiver or some other method of detection to determine when an app has been launched.
- If the app is one that should be protected, the protector app puts a lock screen on top of the task.
- If the user enters the correct lock, the lock screen finishes itself.
- If the passcode is incorrect, the protector kills the protected app.
I think that that is the way that all app protectors work, and I am fairly certain that that is how apps like Handcent SMS protect text messages.
精彩评论