开发板环境下在Android应用程序中调用需要root权限的脚本命令的一种方法
2016-04-17 16:22
399 查看
Xilinx Zynq-7000 zc702开发板环境下,找到官方的Android SD卡文件(Android2.3),已经能够在开发板上运行Android,希望写一个应用程序调用一个重构FPGA的脚本命令,尝试了很多天都失败了,最后查找资料做了很多实验终于成功了,代码片段如下:
原理就是通过执行su获得root权限,通过DataOutPutStream向su启动的shell里用writeBytes写入要执行的命令。在stackoverflow上找到的
另外,需要注释掉su.c中的以下代码片段:
这样执行su的时候即使是即使真实用户id是普通用户也能继续执行。
除此之外,还必须把su可执行文件 sudo chmod a+s su ,这样有效用户id会暂时为0,也就是root。
说实话,关于Android权限不太懂,有个文章总结的还将就,可以学习一下;
http://blog.csdn.net/superkris/article/details/7709504/
try{ Process suProcess = Runtime.getRuntime().exec("/system/xbin/su"); DataOutputStream dos = new DataOutputStream(suProcess.getOutputStream()); dos.writeBytes("ls > /data/local/d\n"); dos.flush(); dos.writeBytes("cat /system/Zynq_RealFFT_wrapper.bin > /tmp/dev1/xdevcfg\n"); dos.flush(); dos.close(); suProcess.waitFor(); } catch (Exception e) { // Please do something, don't let Exceptions be raised and silently trapped. e.printStackTrace(); }
原理就是通过执行su获得root权限,通过DataOutPutStream向su启动的shell里用writeBytes写入要执行的命令。在stackoverflow上找到的
另外,需要注释掉su.c中的以下代码片段:
if (myuid != AID_ROOT && myuid != AID_SHELL) { fprintf(stderr,"su: uid %d not allowed to su\n", myuid); return 1; }
这样执行su的时候即使是即使真实用户id是普通用户也能继续执行。
除此之外,还必须把su可执行文件 sudo chmod a+s su ,这样有效用户id会暂时为0,也就是root。
说实话,关于Android权限不太懂,有个文章总结的还将就,可以学习一下;
http://blog.csdn.net/superkris/article/details/7709504/
相关文章推荐
- android聊天器(仿QQ)编写第一天__界面的搭建和主要的布局
- Android Studio 2.0新特性之Instant Run
- 整理下最近在做的android5.0的代码,留用
- Activity与Intent——android学习
- Android Tween动画之RotateAnimation实现图片不停旋转
- Android开发性能优化总结(一)
- Android内存泄漏的各种原因详解
- Android中自定义View
- android MVP模式思考
- Android应用面向Holder编程,附源码
- 【读书笔记】【Android 开发艺术探索】第4章 View 的工作原理
- android之getevent/sendevent/input
- android开发笔记之Android介绍
- 揭秘在ListView等AdapterView上动态添加删除项的陷阱
- 关于Android Studio 导入Library Project 以及遇到的一些问题
- android 显示目录下图片
- Android NDK开发
- AndroidStudio通过AIDL开启、绑定远程Service
- Android实现两次按下返回键退出
- Android性能优化-MAT工具的简单使用