`

Android 截图程序实现 需要root权限

 
阅读更多

public class Screenshot extends Activity {
private static final String DATA_PATH = "/data/data/com.su.ScreenShot/";
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    
    super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        CopyAssets();
       
        Button btClose = (Button) findViewById(R.id.button1);  
        btClose.setOnClickListener(new View.OnClickListener() {  
            public void onClick(View v) {  
            runRootCommand("chmod 777 /data/data/com.su.ScreenShot/gsnap");
            Log.v("2", "2---------------");
            runRootCommand("/data/data/com.su.ScreenShot/gsnap test.jpg /dev/graphics/fb0");//使用有root权限的命令 运行gsnap的c程序
            Log.v("3", "3---------------");
              }             
        }); 
    }
        
        
   
    public static boolean runRootCommand(String command) {
Process process = null;
DataOutputStream os = null;
try {
process = Runtime.getRuntime().exec("su");
os = new DataOutputStream(process.getOutputStream());
os.writeBytes(command + "\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) {
// nothing
}
}
return true;
}
    
    
   


public static boolean runCommand(String command) {
Process process = null;
try {
process = Runtime.getRuntime().exec(command);
process.waitFor();
} catch (Exception e) {
return false;
} finally {
try {
process.destroy();
} catch (Exception e) {
// nothing
}
}
return true;
}
private void CopyAssets() {
AssetManager assetManager = getAssets();
String[] files = null;
try {
files = assetManager.list("");
} catch (IOException e) {


}
for (int i = 0; i < files.length; i++) {
InputStream in = null;
OutputStream out = null;
try {
if (!(new File(DATA_PATH + files[i])).exists()) {
in = assetManager.open(files[i]);
out = new FileOutputStream(DATA_PATH + files[i]);
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
}
} catch (Exception e) {
}
}
}
private void copyFile(InputStream in, OutputStream out) throws IOException {
byte[] buffer = new byte[1024];
int read;
while ((read = in.read(buffer)) != -1) {
out.write(buffer, 0, read);
}
}




}

其实主要还是人家的c程序 我只是写了几句shell命令



赚点豆豆~

C程序的地址http://download.csdn.net/detail/sfshine/3781315

分享到:
评论

相关推荐

    Android应用程序请求root权限代码

    android应用启动时弹窗请求root权限

    Android修改源码让APP获取root权限可以执行su命令的git diff记录

    修改源码让APP获取root权限可以执行su命令的git diff记录

    android应用获得执行root权限动作__socket_service

    设备系统定制,让应用获得执行root权限动作,利用socket在底层启动一个service(root权限的哦,你懂得)。现在4.4以后root越发困难了,直接集成源码的su命令是不行的。

    android 系统获取ROOT权限工具

    android 获取ROOT权限工具, 手机可以删除ROM自带的无用程序,使用需要ROOT才能运行的软件

    安卓应用程序永久获取Root权限的方法

    压缩包内有apk,demo源码,以及NDK 安装文档,主要是教你如何在已经root过得手机上只通过一次获取root权限,以后就再也不会弹出root授权框,主要思想是绕过superuser.apk的权限检查

    Android应用源码获取root权限静默安装

    不过应用程序运行命令获取ROOT权限,设备必须已破解(获得ROOT权限),代码中主要对流进行操作,有对文件读写不清楚的都可以看看。(源码采用GBK编码)。之前也介绍过一个静默卸载的项目...

    Android应用源码获取root权限静默安装.rar

    Android应用源码获取root权限静默安装是一个获取root权限后,不弹出系统安装界面,直接进行安装的的源码。代码只有一个MainActivity,看起来相对比较容易,代码中重要部分都已加入详细的注释,方便大家阅读。不过...

    手机root权限破解

    许多机友新购来的Android机器没有破解过Root权限,无法使用一些需要高权限的软件,以及进行一些高权限的操作,其实破解手机Root权限是比较简单及安全的,破解Root权限的原理就是在手机的/system/bin/或/system/xbin/...

    Android系统Root权限获取与检测

    一个应用程序的进程就是一个安全的沙盒。它不能干扰 其它应用程序,除非显式地声明了“permissions”,...应用程序需要的那 些“permissions”是静态的在程序中声明,所以他们会在程序安 装时被知晓,并不会再改变。

    Android手机获取root权限并实现关机重启功能的方法

    主要介绍了Android手机获取root权限并实现关机重启功能的方法,是Android程序设计中非常重要的技巧,需要的朋友可以参考下

    连接Android设备 QtScrcpy v1.4.5(不需要root权限).zip

    不需要root权限。 单个应用程序最多支持16个安卓设备同时连接。同时支持GNU/Linux,Windows和MacOS三大主流桌面平台。 主要功能: 1、实时显示Android设备屏幕 2、实时键鼠控制Android设备 3、屏幕录制 4、截图为...

    安卓系统Root权限破解

    根据作者的介绍,v1.9.1能够获取任意Android版本的ROOT权限(Android 2.3.4除外)。 请一定要确认你的电脑中已经安装了USB驱动了! 还有需要拔出外置SD卡! 如果红字部分你都做到了还不能够成功ROOT的话,请尝试...

    c++builder的Android程序中执行Shell命令

    本单元实现了一个伪的Shell,可以用于在Android程序中执行Shell命令,如果需要Root权限,则在执行前,调用AskForRoot方法来获取用户的Root授权,如果不再需要在Root账号下执行命令,则调用ExitRoot方法来退出Root...

    Android模拟器一键root工具

    cmwrap.apk为测试用的程序,需要在root 权限下运行。 2.前提条件是已经建立了android 2.1模拟器并已经运行过。 3.用编辑器打开“first.bat”和一键“root.bat”,将temppath的值改为你的模拟器的路径, 4.在first....

    Android应用获取永久Root的方法_专利.pdf

    权限的方法,将需要用到Root 权限的操作进行编 写,并编译成一可执行程序文件,将该文件包含在 应用程序中,应用程序通过一次su 程序授权,将 文件拷贝到/system/bin 的目录下,并修改其所 有者和所属分组为root,并...

    Magisk:Android 获取 Root 权限的工具 它可以快速、无痛地获得 Android 的超级用户权限

    Magisk:Android 获取 Root 权限的工具。它可以快速、无痛地获得 Android 的超级用户权限,支持 Android 5.0 以上的设备。 介绍 Magisk是一套用于定制Android的开源软件,支持高于Android 5.0的设备。 一些突出特点...

    Android root app

    Android获取root权限,源代码,可以加到程序中使用.

    使用root权限运行自己所编译程序的解决方法

    总之,希望能够使自己编写的程序以root权限运行而不需要加上sudo或者切换到#提示符。  没有找到能在进程运行时提升自身权限的方法,另查到一种方法(来源见文后注释)可以实现,这两步缺一不可: (1)用root权限...

Global site tag (gtag.js) - Google Analytics