手机没有root情况下是不能执行的

解决方案 »

  1.   

    你这种方法只能在root过的手机上可以使用。各手机的情况不太一样,通用性可能还要打折扣。
      

  2.   

    我查看过自己的手机 已经root过的
      

  3.   

    手机已经root了,请问2、3楼还有其他原因吗?
      

  4.   


    这个具体是怎么回事呢? 可以说的明白一点吗? 不懂linux对文件的读写都需要文件夹的权限,特别是系统文件,所以你先一步步检查
      

  5.   


    这个具体是怎么回事呢? 可以说的明白一点吗? 不懂linux对文件的读写都需要文件夹的权限,特别是系统文件,所以你先一步步检查我在/sys/class/gpio 下执行 echo 74 > /sys/class/gpio/export  命令,可以得到gpio74这个文件,说这个文件是具有可写权限的
      

  6.   

    你的手机已经root过了是吧,我建议你在adb shell下,修改自己那个程序的权限,chmod 777 xxx。然后再运行试试。
      

  7.   

    小弟,多谢各位大神的关注!问题已经解决了。
    我之前的操作是,连续写了两条命令,导致不能在/sys/class/gpio下不能导出相应的gpio文件:
    static Process process = null;
    DataOutputStream dos = null;
    process = Runtime.getRuntime().exec("su");
    dos = new DataOutputStream(process.getOutputStream());
    dos.writeBytes("echo 74 > /sys/class/gpio/export"+"\n"); 
    dos.writeBytes("echo 1  > /sys/class/gpio/gpio74/direction");
    dos.flush();
    dos.close();
    据个人现阶段的认识,dos.write(),只能一条一条的写命令,且每次写命令之前都需重新获得root权限。
    所以,我将上面两条写入命令分开就能成功了。代码如下:
    static Process process = null;
    DataOutputStream dos = null;
    process = Runtime.getRuntime().exec("su");
    dos = new DataOutputStream(process.getOutputStream());
    dos.writeBytes("echo 74 > /sys/class/gpio/export"+"\n"); 
    dos.flush();
    dos.close();
    process = Runtime.getRuntime().exec("su");
    dos = new DataOutputStream(process.getOutputStream());
    dos.writeBytes("echo 1  > /sys/class/gpio/gpio74/direction");
    dos.flush();
    dos.close();
      

  8.   

    有没有大神,熟悉TCP是怎么实现打洞的呢
      

  9.   

    以前找过这方面的资料,走数据流量的话目前应该还不行,volte下就不清楚了;wfi估计可以,你可以搜搜对等路由的概念,貌似打洞基本都是建立在对等路由下。大概知道这么多,希望对你有所帮助=.=
      

  10.   

    以前找过这方面的资料,走数据流量的话目前应该还不行,volte下就不清楚了;wfi估计可以,你可以搜搜对等路由的概念,貌似打洞基本都是建立在对等路由下。大概知道这么多,希望对你有所帮助=.=
    谢谢楼上的,最近看了些关于TCP打洞的资料,要实现TCP打洞,需复用或重用本地端口,我在复用端口的时候一直提示出错,很是纠结、郁闷