如何直接在手机上获取root权限

如何直接在手机上获取root权限,第1张

手机上获取root权限方法如下:

1下载并安装神话一键root在手机上;

2打开root软件;

3选择开始root;

4、root过程

5等几十秒之后,软件就会帮你的手机root成功,成功之后就可以删除手机里的内置程序了。

用这类root软件不能保证100%成功,如果不成功,就换一种软件试试;root之后删除内置应用请小心,别把手机里重要的文件删除了,否则手机将无法正常使用;如使用需要root权限的软件,必须要授权才可以正常使用。

root权限,系统权限的一种,也叫根权限,与SYSTEM权限可以理解成一个概念,但高于Administrator权限,root是Linux和unix系统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权力,所有对象他都可以 *** 作。获得root权限之后就意味着已经获得了系统的最高权限,这时候你可以对系统中的任何文件(包括系统文件)执行所有增、删、改、查的 *** 作。

首先要获取本机的root权限。第一步安装z4root软件,安装完成后勾选USB调试,然后打开z4root软件,有临时获取root权限(在下次重启前有效)和永久获取root权限两个选项,然后选择你要获取的root的类型,稍等片刻等待z4root获取权限(大概1-2分钟就成功了,有提示),获得成功后将要重启系统。 root成功在手机的应用程序里会多个骷髅的头像(授权管理软件)。

接下来安装RE文件管理器,安装完毕之后打开,如果已成功获取root权限,打开RE管理器会有提示(成功获取root权限)点击允许即可,然后找到system文件夹,里面有个app的子文件夹,定制的软件全在里面,格式为xxxxapk ,现在你还不能对文件进行 *** 作,点击软件上方的写|读就可以对文件进行 *** 作了。长按xxxxapk(你想要删除的软件,下面的同名文件也可以删)会d出来对文件 *** 作的选项,点击删除即可。然后退出来看看那些烦人的定制软件是不是没有了。为了手机的安全,删除定制软件后重启。

不过z4root也有许多不足的地方,z4root也不是全能的,并不能支持所有的安卓手机进行root,不能使用z4root进行root的朋友们只能通过其它方法进行root了。

手机ROOT权限是什么意思?

答:对于安卓系统手机ROOT权限是相当于手机最高管理权限,用通俗的话说,获得root权限就可以访问控制这部手机的手机系统的每个地方,并且可以限制手机系统应用后台自启动、卸载手机自带应用权限、更换手机系统等。

如何获得ROOT权限

答:首先要清楚并不是所有品牌的手机都好获取ROOT权限,这取决于官方的态度,国内的手机厂商较好root的有一加,小米。

对于可以获得ROOT权限的品牌,获得ROOT获取root权限分为两种,一种用root软件,一种用卡刷包。

第一种方法不推荐用,无论是kingroot还是其他刷机软件都存在难以卸载干净,root权限不完整的问题。但是如果不在意这些的话可以使用kingroot等软件一键root。

第二种方法则是通过刷入第三方的REC,从而刷入卡刷包进行root。推荐使用的REC有twrp,下载链接如下:网页链接使用方法,解锁手机的bl锁,通过fastboot刷入twrp。推荐双清。

刷入TWRP后,将自己的品牌的卡刷包(可以去国内知名搞机市场酷安提问寻求)放入根目录,开机时按住音量+和关机键进入TWRP刷入卡刷包就可以完成root了。

手机root权限获取方法:先获取解锁码,再使用ROOT软件进行root,具体 *** 作方法如下:

1进入华为手机软件应用界面,选择“EMUI”切换界面,在EMUI界面顶端的菜单栏中选择“下载”进入。

2切换界面后,点击右侧“刷机解锁”按钮,在d出的对话框中的刷机解锁后点击“打开”,然后登陆华为手机账号,根据提示添加信息申请解锁密码,然后点击“提交”。

3申请完成后,可以根据获取的解锁码,通过华为手机解锁教程完成华为手机的解锁 *** 作。

4成功完成华为手机解锁 *** 作后,打开USB调试(打开方法:设置--关于手机--多次点击版本号至开启开发者选项--重新进入设置--开发者选项--开启USB调试),运行强力一键root软件识别手机设备。

5接着根据向导提示点击“安装APP”,进入强力一键root手机版安装状态,请耐心等待软件成功安装到手机上。

6软件安装完成后,在手机界面中点击“立即体验”--“一键ROOT”即可完成华为手机root *** 作,获取手机root权限。

以上是华为手机root权限的获取方法,基本适用大部分华为手机,如果手机升级后无法获取root权限,可以降级后再用强力一键root获取。

在apk中,有时候需要root权限,例如通过apk更新系统库等system的文件等,避免升级固件,或者在apk中需要直接访问某些设备等。下面是在apk中获取root权限的方法,前提是设备已经root过了。

关键点在于下面这句,通过执行su产生一个具有root权限的进程:

Process p = RuntimegetRuntime()exec("su");

然后,在向这个进程的写入要执行的命令,即可达到以root权限执行命令:

dos = new DataOutputStream(pgetOutputStream());

doswriteBytes(cmd + "\n");

dosflush();

或者用下面的方式:

RuntimegetRuntime()exec(new String[]{"/system/bin/su","-c", cmd});

经过测试,以root权限执行命令,只在真机上测试成功,在模拟器上没有成功过。

第一次运行时,会出现请求root权限的界面,选中记住,并允许:

测试程序界面,如果已经root,界面中可以显示出/system分区对应的设备节点:

主要文件:RootCmdjava

[java] 

package orgcklroot; 

 

import javaioDataInputStream; 

import javaioDataOutputStream; 

import javaioIOException; 

 

import androidutilLog; 

 

public final class RootCmd { 

 

    private static final String TAG = "RootCmd"; 

    private static boolean mHaveRoot = false; 

 

    // 判断机器Android是否已经root,即是否获取root权限 

    public static boolean haveRoot() { 

        if (!mHaveRoot) { 

            int ret = execRootCmdSilent("echo test"); // 通过执行测试命令来检测 

            if (ret != -1) { 

                Logi(TAG, "have root!"); 

                mHaveRoot = true; 

            } else { 

                Logi(TAG, "not root!"); 

            } 

        } else { 

            Logi(TAG, "mHaveRoot = true, have root!"); 

        } 

        return mHaveRoot; 

    } 

 

    // 执行命令并且输出结果 

    public static String execRootCmd(String cmd) { 

        String result = ""; 

        DataOutputStream dos = null; 

        DataInputStream dis = null; 

         

        try { 

            Process p = RuntimegetRuntime()exec("su");// 经过Root处理的android系统即有su命令 

            dos = new DataOutputStream(pgetOutputStream()); 

            dis = new DataInputStream(pgetInputStream()); 

 

            Logi(TAG, cmd); 

            doswriteBytes(cmd + "\n"); 

            dosflush(); 

            doswriteBytes("exit\n"); 

            dosflush(); 

            String line = null; 

            while ((line = disreadLine()) != null) { 

                Logd("result", line); 

                result += line; 

            } 

            pwaitFor(); 

        } catch (Exception e) { 

            eprintStackTrace(); 

        } finally { 

            if (dos != null) { 

                try { 

                    dosclose(); 

                } catch (IOException e) { 

                    eprintStackTrace(); 

                } 

            } 

            if (dis != null) { 

                try { 

                    disclose(); 

                } catch (IOException e) { 

                    eprintStackTrace(); 

                } 

            } 

        } 

        return result; 

    } 

 

    // 执行命令但不关注结果输出 

    public static int execRootCmdSilent(String cmd) { 

        int result = -1; 

        DataOutputStream dos = null; 

         

        try { 

            Process p = RuntimegetRuntime()exec("su"); 

            dos = new DataOutputStream(pgetOutputStream()); 

             

            Logi(TAG, cmd); 

            doswriteBytes(cmd + "\n"); 

            dosflush(); 

            doswriteBytes("exit\n"); 

            dosflush(); 

            pwaitFor(); 

            result = pexitValue(); 

        } catch (Exception e) { 

            eprintStackTrace(); 

        } finally { 

            if (dos != null) { 

                try { 

                    dosclose(); 

                } catch (IOException e) { 

                    eprintStackTrace(); 

                } 

            } 

        } 

        return result; 

    } 

}

相关文件:SystemPartitionjava,获取/system分区设备节点,并支持重新mount /system为可读写:

[java] 

package orgcklroot; 

 

import javaioDataInputStream; 

import javaioFile; 

import javaioFileInputStream; 

import javaioIOException; 

 

import androidutilLog; 

 

public class SystemPartition { 

    private static final String TAG = "SystemMount"; 

    private static String TMP_PATH = "/sdcard/mounttxt"; 

    private static String mMountPiont = null; 

    private static boolean mWriteable = false; 

     

    private SystemPartition() { 

        Logi(TAG, "new SystemMount()"); 

    } 

     

    private static class SystemPartitionHolder { 

        private static SystemPartition instance = new SystemPartition(); 

    } 

     

    public SystemPartition getInstance() { 

        return SystemPartitionHolderinstance; 

    } 

     

    public static String getSystemMountPiont() { 

        DataInputStream dis = null; 

        if (mMountPiont == null) {  

            try { 

                RootCmdexecRootCmd("mount > " + TMP_PATH); 

//              RuntimegetRuntime()exec("mount > " + TMP_PATH); 

                 

                dis = new DataInputStream(new FileInputStream(TMP_PATH)); 

                 

                String line = null; 

                int index = -1; 

                while ( (line = disreadLine()) != null ) { 

                    index = lineindexOf(" /system "); 

                    if (index > 0) { 

                        mMountPiont = linesubstring(0, index); 

                        if (lineindexOf(" rw") > 0) { 

                            mWriteable = true; 

                            Logi(TAG, "/system is writeable !"); 

                        } else { 

                            mWriteable = false; 

                            Logi(TAG, "/system is readonly !"); 

                        } 

                        break; 

                    } 

                } 

            } catch (Exception e) { 

                eprintStackTrace(); 

            } finally { 

                if (dis != null) { 

                    try { 

                        disclose(); 

                    } catch (IOException e1) { 

                        e1printStackTrace(); 

                    } 

                    dis = null; 

                } 

                 

                File f = new File(TMP_PATH); 

                if (fexists()) { 

                    fdelete(); 

                } 

            } 

        } 

         

        if (mMountPiont != null) { 

            Logi(TAG, "/system mount piont: " + mMountPiont); 

        } else { 

            Logi(TAG, "get /system mount piont failed !!!"); 

        } 

         

        return mMountPiont; 

    } 

     

    public static boolean isWriteable() { 

        mMountPiont = null; 

        getSystemMountPiont(); 

        return mWriteable; 

    } 

     

    public static void remountSystem(boolean writeable) { 

        String cmd = null; 

        getSystemMountPiont(); 

        if (mMountPiont != null && RootCmdhaveRoot()) { 

            if (writeable) { 

                cmd = "mount -o remount,rw " + mMountPiont + " /system"; 

            } else { 

                cmd = "mount -o remount,ro " + mMountPiont + " /system"; 

            } 

            RootCmdexecRootCmdSilent(cmd); 

             

            isWriteable(); 

        } 

    } 

}

vivo手机是不可以root的,建议不要将手机root。

root后手机容易误改或误删了系统文件,会导致手机死机、重启、使用异常等问题;

一些非法程序会在不知情的情况下,造成隐私泄露和费用损失。

注:root过的手机将无法在线升级;且root导致的硬件问题售后是不予保修的。

如果您想获取华为手机ROOT权限,不建议您Root手机,此行为可能会带来以下影响:

手机Root后,系统可能无法达到正常工作状态,部分对于系统安全性较高的功能可能无法正常运行(比如手机银行)。同时可能会存在兼容性不好、系统易受病毒入侵等问题。获取Root权限后如未正确使用,很容易导致第三方对系统进行篡改,降低系统安全性。

手机Root后会带来无法预料的负面影响,请谨慎 *** 作。如果设备不能正常使用,并且无法恢复,需要自行承担风险。

以上就是关于如何直接在手机上获取root权限全部的内容,包括:如何直接在手机上获取root权限、写入root权限不行怎么办、手机ROOT权限是什么意思怎么获得等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9563018.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存