当前位置: 首页>>代码示例>>Java>>正文


Java Shell类代码示例

本文整理汇总了Java中com.stericson.RootShell.execution.Shell的典型用法代码示例。如果您正苦于以下问题:Java Shell类的具体用法?Java Shell怎么用?Java Shell使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Shell类属于com.stericson.RootShell.execution包,在下文中一共展示了Shell类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getInode

import com.stericson.RootShell.execution.Shell; //导入依赖的package包/类
/**
 * This method will return the inode number of a file. This method is dependent on having a version of
 * ls that supports the -i parameter.
 *
 * @param file path to the file that you wish to return the inode number
 * @return String The inode number for this file or "" if the inode number could not be found.
 */
public String getInode(String file) {
    try {
        Command command = new Command(Constants.GI, false, "/data/local/ls -i " + file) {

            @Override
            public void commandOutput(int id, String line) {
                if (id == Constants.GI) {
                    if (!line.trim().equals("") && Character.isDigit(line.trim().substring(0, 1).toCharArray()[0])) {
                        InternalVariables.inode = line.trim().split(" ")[0];
                    }
                }

                super.commandOutput(id, line);
            }
        };
        Shell.startRootShell().add(command);
        commandWait(Shell.startRootShell(), command);

        return InternalVariables.inode;
    } catch (Exception ignore) {
        return "";
    }
}
 
开发者ID:AlexanderKirillov,项目名称:Script-Executor-ROOT,代码行数:31,代码来源:RootToolsInternalMethods.java

示例2: enableUMS

import com.stericson.RootShell.execution.Shell; //导入依赖的package包/类
boolean enableUMS(Context context) {
    try {
        String enableCommand = data.getString(Constants.setPermissionCmds, "")+"\n"+data.getString(Constants.enableUMScmds, "");
        if(enableCommand.isEmpty()) {
            Toast.makeText(context, context.getString(R.string.toast_open_app_once), Toast.LENGTH_SHORT).show();
            return false;
        }
        Shell rootShell = RootTools.getShell(true);
        Command cmd = new Command(0, "setenforce 0\n"+enableCommand);
        rootShell.add(cmd);
        //if(!rootShell.isExecuting) rootShell.close();
    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(context, context.getString(R.string.error_ums), Toast.LENGTH_SHORT).show();
        openApp(context);
        return false;
    }
    Toast.makeText(context, context.getString(R.string.toast_ums_enabled), Toast.LENGTH_SHORT).show();
    isUMSdisabled = false;
    showNotification(context);
    return true;
}
 
开发者ID:GokulNC,项目名称:USB_Mass_Storage_Enabler,代码行数:23,代码来源:UsbBroadcastReceiver.java

示例3: disableUMS

import com.stericson.RootShell.execution.Shell; //导入依赖的package包/类
boolean disableUMS(Context context, boolean removeNotif) {
    try {
        String disableCommand = data.getString(Constants.disableUMScmds, "");
        if(disableCommand.isEmpty()) {
            Toast.makeText(context, context.getString(R.string.toast_open_app_once), Toast.LENGTH_SHORT).show();
            return false;
        }
        Shell rootShell = RootTools.getShell(true);
        Command cmd = new Command(0, disableCommand);
        rootShell.add(cmd);
        //if(!rootShell.isExecuting) rootShell.close();
    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(context, context.getString(R.string.error_ums_disable), Toast.LENGTH_SHORT).show();
        return false;
    }
    Toast.makeText(context, context.getString(R.string.toast_ums_disabled), Toast.LENGTH_SHORT).show();
    isUMSdisabled = true;
    if(removeNotif) removeNotification(context);
    else showNotification(context);
    //TODO: if(MainActivity.isAppOpen) MainActivity.updateUSBconfig(); //When toggled from notif
    return true;
}
 
开发者ID:GokulNC,项目名称:USB_Mass_Storage_Enabler,代码行数:24,代码来源:UsbBroadcastReceiver.java

示例4: setNotificationLed

import com.stericson.RootShell.execution.Shell; //导入依赖的package包/类
private void setNotificationLed(int value) {
    if (Profile.isProfilePreferenceAllowed(Profile.PREF_PROFILE_NOTIFICATION_LED, context)
            == PPApplication.PREFERENCE_ALLOWED) {
        if (android.os.Build.VERSION.SDK_INT < 23)    // Not working in Android M (exception)
            Settings.System.putInt(context.getContentResolver(), "notification_light_pulse", value);
        else {
            if (PPApplication.isRooted() && PPApplication.settingsBinaryExists()) {
                synchronized (PPApplication.startRootCommandMutex) {
                    String command1 = "settings put system " + "notification_light_pulse" + " " + value;
                    //if (PPApplication.isSELinuxEnforcing())
                    //	command1 = PPApplication.getSELinuxEnforceCommand(command1, Shell.ShellContext.SYSTEM_APP);
                    Command command = new Command(0, false, command1); //, command2);
                    try {
                        //RootTools.closeAllShells();
                        RootTools.getShell(true, Shell.ShellContext.SYSTEM_APP).add(command);
                        commandWait(command);
                    } catch (Exception e) {
                        Log.e("ActivateProfileHelper.setNotificationLed", "Error on run su: " + e.toString());
                    }
                }
            }
        }
    }
}
 
开发者ID:henrichg,项目名称:PhoneProfiles,代码行数:25,代码来源:ActivateProfileHelper.java

示例5: setHeadsUpNotifications

import com.stericson.RootShell.execution.Shell; //导入依赖的package包/类
private void setHeadsUpNotifications(int value) {
    if (Profile.isProfilePreferenceAllowed(Profile.PREF_PROFILE_HEADS_UP_NOTIFICATIONS, context)
            == PPApplication.PREFERENCE_ALLOWED) {
        if (android.os.Build.VERSION.SDK_INT >= 21) {
            if (Permissions.hasPermission(context, Manifest.permission.WRITE_SECURE_SETTINGS)) {
                Settings.Global.putInt(context.getContentResolver(), "heads_up_notifications_enabled", value);
            }
            else
            if (PPApplication.isRooted() && PPApplication.settingsBinaryExists()) {
                synchronized (PPApplication.startRootCommandMutex) {
                    String command1 = "settings put global " + "heads_up_notifications_enabled" + " " + value;
                    //if (PPApplication.isSELinuxEnforcing())
                    //	command1 = PPApplication.getSELinuxEnforceCommand(command1, Shell.ShellContext.SYSTEM_APP);
                    Command command = new Command(0, false, command1); //, command2);
                    try {
                        //RootTools.closeAllShells();
                        RootTools.getShell(true, Shell.ShellContext.SYSTEM_APP).add(command);
                        commandWait(command);
                    } catch (Exception e) {
                        Log.e("ActivateProfileHelper.setHeadsUpNotifications", "Error on run su: " + e.toString());
                    }
                }
            }
        }
    }
}
 
开发者ID:henrichg,项目名称:PhoneProfiles,代码行数:27,代码来源:ActivateProfileHelper.java

示例6: setNFC

import com.stericson.RootShell.execution.Shell; //导入依赖的package包/类
private void setNFC(Context context, boolean enable)
{
    //Log.e("ActivateProfileHelper.setNFC", "xxx");
    if (Permissions.hasPermission(context, Manifest.permission.WRITE_SECURE_SETTINGS)) {
        //Log.e("ActivateProfileHelper.setNFC", "permission granted!!");
        CmdNfc.run(enable);
    }
    else
    if (PPApplication.isRooted()/*PPApplication.isRootGranted()*/) {
        synchronized (PPApplication.startRootCommandMutex) {
            String command1 = PPApplication.getJavaCommandFile(CmdNfc.class, "nfc", context, enable);
            //Log.e("ActivateProfileHelper.setNFC", "command1="+command1);
            if (command1 != null) {
                Command command = new Command(0, false, command1);
                try {
                    //RootTools.closeAllShells();
                    RootTools.getShell(true, Shell.ShellContext.NORMAL).add(command);
                    commandWait(command);
                } catch (Exception e) {
                    Log.e("ActivateProfileHelper.setNFC", "Error on run su");
                }
            }
        }
    }
}
 
开发者ID:henrichg,项目名称:PhoneProfiles,代码行数:26,代码来源:ActivateProfileHelper.java

示例7: deleteFile_su

import com.stericson.RootShell.execution.Shell; //导入依赖的package包/类
private static boolean deleteFile_su(String file) {
    boolean OK;

    List<String> settingsPaths = RootTools.findBinary("rm", true);
    if (settingsPaths.size() > 0) {
        String command1 = "rm " + file;
        //if (PPApplication.isSELinuxEnforcing())
        //	command1 = PPApplication.getSELinuxEnforceCommand(command1);
        synchronized (PPApplication.startRootCommandMutex) {
            Command command = new Command(0, false, command1);
            try {
                //RootTools.closeAllShells();
                RootTools.getShell(true, Shell.ShellContext.RECOVERY).add(command);
                OK = commandWait(command);
                OK = OK && command.getExitCode() == 0;
            } catch (Exception e) {
                //e.printStackTrace();
                OK = false;
            }
        }
    }
    else {
        OK = RootTools.deleteFileOrDirectory(file, false);
    }
    return OK;
}
 
开发者ID:henrichg,项目名称:PhoneProfiles,代码行数:27,代码来源:PhoneProfilesHelper.java

示例8: executeRootForAdaptiveBrightness

import com.stericson.RootShell.execution.Shell; //导入依赖的package包/类
private void executeRootForAdaptiveBrightness(final Profile profile, final Context context) {
    /* not working (private secure settings) :-/
    if (Permissions.hasPermission(appContext, Manifest.permission.WRITE_SECURE_SETTINGS)) {
        Settings.System.putFloat(appContext.getContentResolver(), ADAPTIVE_BRIGHTNESS_SETTING_NAME,
                profile.getDeviceBrightnessAdaptiveValue(appContext));
    }
    else {*/
    if (PPApplication.isRooted() && PPApplication.settingsBinaryExists()) {
        synchronized (PPApplication.startRootCommandMutex) {
            String command1 = "settings put system " + ADAPTIVE_BRIGHTNESS_SETTING_NAME + " " +
                    Float.toString(profile.getDeviceBrightnessAdaptiveValue(context));
            //if (PPApplication.isSELinuxEnforcing())
            //	command1 = PPApplication.getSELinuxEnforceCommand(command1, Shell.ShellContext.SYSTEM_APP);
            Command command = new Command(0, false, command1); //, command2);
            try {
                //RootTools.closeAllShells();
                RootTools.getShell(true, Shell.ShellContext.SYSTEM_APP).add(command);
                commandWait(command);
            } catch (Exception e) {
                Log.e("ActivateProfileHelper.execute", "Error on run su: " + e.toString());
            }
        }
    }
    //}
}
 
开发者ID:henrichg,项目名称:PhoneProfilesPlus,代码行数:26,代码来源:ActivateProfileHelper.java

示例9: deleteFile_su

import com.stericson.RootShell.execution.Shell; //导入依赖的package包/类
private static boolean deleteFile_su(String file) {
    boolean OK;

    List<String> settingsPaths = RootTools.findBinary("rm", true);
    if (settingsPaths.size() > 0) {
        synchronized (PPApplication.startRootCommandMutex) {
            String command1 = "rm " + file;
            //if (PPApplication.isSELinuxEnforcing())
            //	command1 = PPApplication.getSELinuxEnforceCommand(command1);
            Command command = new Command(0, false, command1);
            try {
                //RootTools.closeAllShells();
                RootTools.getShell(true, Shell.ShellContext.RECOVERY).add(command);
                OK = commandWait(command);
                OK = OK && command.getExitCode() == 0;
            } catch (Exception e) {
                //e.printStackTrace();
                OK = false;
            }
        }
    }
    else {
        OK = RootTools.deleteFileOrDirectory(file, false);
    }
    return OK;
}
 
开发者ID:henrichg,项目名称:PhoneProfilesPlus,代码行数:27,代码来源:PhoneProfilesHelper.java

示例10: runAndWait

import com.stericson.RootShell.execution.Shell; //导入依赖的package包/类
public static ExecutionResult runAndWait(String cmd, Shell shell, boolean exceptionOnFailure) throws IOException
{
	Logger.debug("Run&Wait: " + cmd);

	CommandCapture cc = new CommandCapture(0, cmd);
	shell.add(cc);

	if (!waitForCommand(cc))
	{
		throw new IOException(String.format("Error waiting for command to finish executing {%s}", cmd));
	}

	if (exceptionOnFailure && cc.getExitCode() != 0)
	{
		throw new IOException(String.format("Unsuccessful exit code (%d) when executing command {%s}", cc.getExitCode(), cmd));
	}

	return new ExecutionResult(cc.toString(), cc.getExitCode());
}
 
开发者ID:JohnNPhillips,项目名称:HistoryCleanerPro,代码行数:20,代码来源:RootHelper.java

示例11: getMounts

import com.stericson.RootShell.execution.Shell; //导入依赖的package包/类
/**
 * This will return an ArrayList of the class Mount. The class mount contains the following
 * property's: device mountPoint type flags
 * <p/>
 * These will provide you with any information you need to work with the mount points.
 *
 * @return <code>ArrayList<Mount></code> an ArrayList of the class Mount.
 * @throws Exception if we cannot return the mount points.
 */
public ArrayList<Mount> getMounts() throws Exception {

    InternalVariables.mounts = new ArrayList<>();

    if (null == InternalVariables.mounts || InternalVariables.mounts.isEmpty()) {
        Shell shell = RootTools.getShell(true);

        Command cmd = new Command(Constants.GET_MOUNTS,
                false,
                "cat /proc/mounts") {

            @Override
            public void commandOutput(int id, String line) {
                if (id == Constants.GET_MOUNTS) {
                    RootTools.log(line);

                    String[] fields = line.split(" ");
                    InternalVariables.mounts.add(new Mount(new File(fields[0]), // device
                            new File(fields[1]), // mountPoint
                            fields[2], // fstype
                            fields[3] // flags
                    ));
                }

                super.commandOutput(id, line);
            }
        };
        shell.add(cmd);
        this.commandWait(shell, cmd);
    }

    return InternalVariables.mounts;
}
 
开发者ID:AlexanderKirillov,项目名称:Script-Executor-ROOT,代码行数:43,代码来源:RootToolsInternalMethods.java

示例12: getSymlinks

import com.stericson.RootShell.execution.Shell; //导入依赖的package包/类
/**
 * This will return an ArrayList of the class Symlink. The class Symlink contains the following
 * property's: path SymplinkPath
 * <p/>
 * These will provide you with any Symlinks in the given path.
 *
 * @param path path to search for Symlinks.
 * @return <code>ArrayList<Symlink></code> an ArrayList of the class Symlink.
 * @throws Exception if we cannot return the Symlinks.
 */
public ArrayList<Symlink> getSymlinks(String path) throws Exception {

    // this command needs find
    if (!checkUtil("find")) {
        throw new Exception();
    }

    InternalVariables.symlinks = new ArrayList<>();

    Command command = new Command(0, false, "find " + path + " -type l -exec ls -l {} \\;") {
        @Override
        public void commandOutput(int id, String line) {
            if (id == Constants.GET_SYMLINKS) {
                RootTools.log(line);

                String[] fields = line.split(" ");
                InternalVariables.symlinks.add(new Symlink(new File(fields[fields.length - 3]), // file
                        new File(fields[fields.length - 1]) // SymlinkPath
                ));

            }

            super.commandOutput(id, line);
        }
    };
    Shell.startRootShell().add(command);
    commandWait(Shell.startRootShell(), command);

    if (InternalVariables.symlinks != null) {
        return InternalVariables.symlinks;
    } else {
        throw new Exception();
    }
}
 
开发者ID:AlexanderKirillov,项目名称:Script-Executor-ROOT,代码行数:45,代码来源:RootToolsInternalMethods.java

示例13: closeShell

import com.stericson.RootShell.execution.Shell; //导入依赖的package包/类
/**
 * This will close either the root shell or the standard shell depending on what you specify.
 *
 * @param root a <code>boolean</code> to specify whether to close the root shell or the standard shell.
 */
public static void closeShell(boolean root) throws IOException {
    if (root) {
        Shell.closeRootShell();
    } else {
        Shell.closeShell();
    }
}
 
开发者ID:AlexanderKirillov,项目名称:Script-Executor-ROOT,代码行数:13,代码来源:RootShell.java

示例14: isAccessGiven

import com.stericson.RootShell.execution.Shell; //导入依赖的package包/类
/**
 * @return <code>true</code> if your app has been given root access.
 * @throws TimeoutException if this operation times out. (cannot determine if access is given)
 */
public static boolean isAccessGiven() {
    final Set<String> ID = new HashSet<String>();
    final int IAG = 158;

    try {
        RootShell.log("Checking for Root access");

        Command command = new Command(IAG, false, "id") {
            @Override
            public void commandOutput(int id, String line) {
                if (id == IAG) {
                    ID.addAll(Arrays.asList(line.split(" ")));
                }

                super.commandOutput(id, line);
            }
        };

        Shell.startRootShell().add(command);
        commandWait(Shell.startRootShell(), command);

        //parse the userid
        for (String userid : ID) {
            RootShell.log(userid);

            if (userid.toLowerCase().contains("uid=0")) {
                RootShell.log("Access Given");
                return true;
            }
        }

        return false;
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
}
 
开发者ID:AlexanderKirillov,项目名称:Script-Executor-ROOT,代码行数:42,代码来源:RootShell.java

示例15: executeRootForAdaptiveBrightness

import com.stericson.RootShell.execution.Shell; //导入依赖的package包/类
private void executeRootForAdaptiveBrightness(final Profile profile) {
    final Context appContext = context.getApplicationContext();
    PPApplication.startHandlerThread();
    final Handler handler = new Handler(PPApplication.handlerThread.getLooper());
    handler.post(new Runnable() {
        @Override
        public void run() {

            PowerManager powerManager = (PowerManager) appContext.getSystemService(POWER_SERVICE);
            PowerManager.WakeLock wakeLock = null;
            if (powerManager != null) {
                wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "ActivateProfileHelper.executeRootForAdaptiveBrightness");
                wakeLock.acquire(10 * 60 * 1000);
            }

            if (PPApplication.isRooted() && PPApplication.settingsBinaryExists()) {
                synchronized (PPApplication.startRootCommandMutex) {
                    String command1 = "settings put system " + ADAPTIVE_BRIGHTNESS_SETTING_NAME + " " +
                            Float.toString(profile.getDeviceBrightnessAdaptiveValue(appContext));
                    //if (PPApplication.isSELinuxEnforcing())
                    //	command1 = PPApplication.getSELinuxEnforceCommand(command1, Shell.ShellContext.SYSTEM_APP);
                    Command command = new Command(0, false, command1); //, command2);
                    try {
                        //RootTools.closeAllShells();
                        RootTools.getShell(true, Shell.ShellContext.SYSTEM_APP).add(command);
                        commandWait(command);
                    } catch (Exception e) {
                        Log.e("ActivateProfileHelper.execute", "Error on run su: " + e.toString());
                    }
                }
            }

            if ((wakeLock != null) && wakeLock.isHeld())
                wakeLock.release();
        }
    });
}
 
开发者ID:henrichg,项目名称:PhoneProfiles,代码行数:38,代码来源:ActivateProfileHelper.java


注:本文中的com.stericson.RootShell.execution.Shell类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。