首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对Emulator上的Root访问授权Android工具测试

对Emulator上的Root访问授权Android工具测试
EN

Stack Overflow用户
提问于 2013-02-12 04:28:35
回答 1查看 960关注 0票数 0

我已经开发了一个需要root访问权限的Android应用程序,它工作得很好。我正在尝试使用ActivityInstrumentationTestCase2的插装测试来测试应用程序,并涵盖应用程序中利用根访问的部分。测试应该是完全自动化的,因为它们将在我们的CI上运行。CI构建创建了一个新的仿真器,然后它使用以下命令将仿真器作为根:

代码语言:javascript
复制
adb -e install superuser.apk
adb shell mount -o rw,remount -t yaffs2 /dev/block/mtdblock03 /system 
adb push su /system/xbin/su 
adb shell chmod 06755 /system 
adb shell chmod 06755 /system/xbin/su

它工作正常,但在测试需要时,我必须在超级用户的root访问提示上单击"Allow“按钮。我的问题是如何在不手动单击"Allow“按钮的情况下执行这些测试,并获得root访问权限。

如果我尝试使用以下代码在工具测试中单击此按钮

代码语言:javascript
复制
instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_CENTER);

我得到了

代码语言:javascript
复制
java.lang.SecurityException: 
Injecting to another application requires INJECT_EVENTS permission

显然,此权限仅由系统应用程序使用,我无法使用此权限授权我的应用程序。也许我在这里做错了什么?

另一个想法是在模拟器引导期间从命令行对应用程序进行预授权,但我还没有找到方法。

EN

回答 1

Stack Overflow用户

发布于 2013-02-18 22:58:40

你的方法会有很多问题,你可以使用不同的框架而不是工具(例如monkey/http://developer.android.com/tools/testing/testing_ui.html)来自动化按钮按下,但我建议你使用快照/为你的模拟器自定义磁盘镜像,创建你自己的快照/镜像,将手机放入根目录,然后你应该能够启动模拟器,并告诉它使用已经具有根访问权限的快照。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14820278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档