获取ROOT并修改mmcblk0分区权限为110: [java] view plaincopy
- import java.io.DataOutputStream;
-
- import android.app.Activity;
-
- public class MyTestPri extends Activity{
-
- public void onCreate(Bundle savedInstanceState){
- super.onCreate(savedInstanceState);
- //* Create a TextView and set its content.
- //* the text is retrieved by calling a native
- //* function.
-
- setContentView(R.layout.main);
- String apkRoot="chmod 110 /dev/block/mmcblk0";//SD卡分区路径,也可能是mmcblk1随系统版本定,当前程序路径请用getPackageCodePath();
- RootCmd(apkRoot);
- }
-
- public boolean RootCmd(String cmd){
- Process process = null;
- DataOutputStream os = null;
- try{
- process = Runtime.getRuntime().exec("su");
- os = new DataOutputStream(process.getOutputStream());
- os.writeBytes(cmd+ "\n");
- os.writeBytes("exit\n");
- os.flush();
- process.waitFor();
- } catch (Exception e) {
- return false;
- } finally {
- try {
- if (os != null) {
- os.close();
- }
- process.destroy();
- } catch (Exception e) {
- }
- }
- return true;
- }
- }
以上程序第一次运行时,会弹出类似“XXX应用程序想要获取root权限”这样提示的对话框。这时你只需确认许可即可,下次再次执行时,Android会自动授权该程序进行ROOT提权。 执行完成后,可以看到该设备权限已被修改为110,注:如果只是想按照扇区读写SD卡,修改为606就足够了,或者再尝试低一点的权限。 另外,关于TF/SD卡的挂载点问题,好像有的版本会挂载到mmcblk0,有的会挂载到mmcblk1上,具体还是要判断一下,有深入研究过的不妨留言补充。
这里有个疑问,权限,是不是数字越大,权限越高?
|