有没有办法在没有root权限的情况下运行android系统应用程序?我可以通过adb执行系统应用程序,例如:
adb shell/system/bin/screencap -p /sdcard/screen.png
在我自己的应用程序中,我想运行一个没有"su"命令的shell命令.有什么办法吗?android如何阻止用户应用程序执行系统应用程序?
小智 7
您应该能够在java代码中运行此命令:
Runtime.getRuntime().exec("screencap -p /sdcard/screen.png");
Run Code Online (Sandbox Code Playgroud)
有一些shell命令可以在没有root的情况下执行.所以你不需要运行"su".我不确定你是否可以执行screencap.当然,您需要获得在应用中写入SD_CARD的权限.
android.permission.WRITE_EXTERNAL_STORAGE
Run Code Online (Sandbox Code Playgroud)
但是为什么你不使用Android API制作截图?有关更多信息,请阅读stackoverflow上的这篇文章:如何以编程方式在Android中截取屏幕截图?
Androids安全模型基于用户ID,就像Linux一样.每个应用程序都有自己的用户ID.所以你的应用程序有一个像1001这样的用户ID.如果允许你的用户运行命令,否则你将收到错误.
编辑:
您需要root来截取屏幕截图或成为系统应用程序.有一个权限READ_FRAME_BUFFER但您只能在系统应用程序时获取它.当应用程序可以获取您设备的屏幕截图时,这是一个安全问题.
我发现这个API http://code.google.com/p/android-screenshot-library/承诺在没有root的情况下截取屏幕截图.我没有测试它.该库启动本机服务,然后为您截取屏幕截图.但是每次手机启动时都必须运行该服务.所以它获得了系统权限.那不太舒服......
结论:没有很好的方法可以从代码中获取没有root的屏幕截图...
归档时间: |
|
查看次数: |
17547 次 |
最近记录: |