请问下端android的代码定义的是什么?

下面代码中这个位置的代码是什么意思啊?
Process process2 = Runtime.getRuntime().exec("su");
这个代码的意思是定义一个su名的线程吗?还是拿到日本的时间?
Runtime.getRuntime().exec("su");
Process process2 是自定义类型 定义了一个Process类型对象?
后面都能看懂
"rm -rf /data/data/" + offerPackage + "/!(lib)"});
还有上面这行命令是删除了 offerPackage文件夹下面的什么东西
!(lib) 这玩意啥东西?删除所有不为lib的文件?这样对吗

 public static String getOwner(String packageName) {
        String line;
        try {
            Process process2 = Runtime.getRuntime().exec("su");
            DataOutputStream dataOutputStream2 = new DataOutputStream(process2.getOutputStream());
            dataOutputStream2.writeBytes("cd /data/data\n");
            dataOutputStream2.writeBytes("ls -l\n");
            dataOutputStream2.writeBytes("exit\n");
            LineNumberReader input = new LineNumberReader(new InputStreamReader(process2.getInputStream()));
            do {
                line = input.readLine();
                if (line == null) {
                    process2.waitFor();
                    return null;
                }
            } while (!Pattern.compile(packageName).matcher(line).find());
            String[] item = line.split("  ")[0].split(" ");
            Log.i("Owner Group:", item[1] + "  " + 0);
            return item[1];
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e2) {
            e2.printStackTrace();
        }
    }

su是一个命令
Process是执行的这个命令(进程)的对象。
"rm -rf /data/data/" + offerPackage + "/!(lib)"}); 这是删除 data/data/offerPackage这个变量代表的路径/所有不包含lib的文件

Java 可通过 Runtime.getRuntime().exec 执行 Linux 命令的,这些都是常用的 Linux 命令。