Publish libsu 3.2.0 javadoc

This commit is contained in:
topjohnwu 2021-12-09 23:23:53 -08:00
parent c76bd90d0a
commit 128bf8d1e2
70 changed files with 50552 additions and 0 deletions

263
allclasses-index.html Normal file
View File

@ -0,0 +1,263 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>All Classes (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="All Classes (libsu API)";
}
}
catch(err) {
}
//-->
var data = {"i0":2,"i1":2,"i2":8,"i3":2,"i4":2,"i5":2,"i6":1,"i7":2,"i8":2,"i9":2,"i10":1,"i11":1,"i12":2,"i13":2,"i14":2,"i15":2,"i16":2};
var tabs = {65535:["t0","All Classes"],1:["t1","Interface Summary"],2:["t2","Class Summary"],8:["t4","Exception Summary"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "./";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
</div>
<div class="allClassesContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary">
<caption><span id="t0" class="activeTableTab"><span>All Classes</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Interface Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Class Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Exception Summary</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><a href="com/topjohnwu/superuser/BusyBoxInstaller.html" title="class in com.topjohnwu.superuser">BusyBoxInstaller</a></td>
<th class="colLast" scope="row">
<div class="block">An initializer that installs and setup the bundled BusyBox.</div>
</th>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><a href="com/topjohnwu/superuser/CallbackList.html" title="class in com.topjohnwu.superuser">CallbackList</a>&lt;<a href="com/topjohnwu/superuser/CallbackList.html" title="type parameter in CallbackList">E</a>&gt;</td>
<th class="colLast" scope="row">
<div class="block">An <a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>AbstractList</code></a> that calls <code>onAddElement</code> when a new element is added to the list.</div>
</th>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><a href="com/topjohnwu/superuser/NoShellException.html" title="class in com.topjohnwu.superuser">NoShellException</a></td>
<th class="colLast" scope="row">
<div class="block">Thrown when it is impossible to construct <code>Shell</code>.</div>
</th>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><a href="com/topjohnwu/superuser/ipc/RootService.html" title="class in com.topjohnwu.superuser.ipc">RootService</a></td>
<th class="colLast" scope="row">
<div class="block">A remote root service using native Android Binder IPC.</div>
</th>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></td>
<th class="colLast" scope="row">
<div class="block">A class providing APIs to an interactive (root) shell.</div>
</th>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><a href="com/topjohnwu/superuser/Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a></td>
<th class="colLast" scope="row">
<div class="block">Builder class for <a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser"><code>Shell</code></a> objects.</div>
</th>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><a href="com/topjohnwu/superuser/Shell.GetShellCallback.html" title="interface in com.topjohnwu.superuser">Shell.GetShellCallback</a></td>
<th class="colLast" scope="row">
<div class="block">The callback used in <a href="com/topjohnwu/superuser/Shell.html#getShell(com.topjohnwu.superuser.Shell.GetShellCallback)"><code>Shell.getShell(GetShellCallback)</code></a>.</div>
</th>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><a href="com/topjohnwu/superuser/Shell.Initializer.html" title="class in com.topjohnwu.superuser">Shell.Initializer</a></td>
<th class="colLast" scope="row">
<div class="block">The initializer when a new <code>Shell</code> is constructed.</div>
</th>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><a href="com/topjohnwu/superuser/Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a></td>
<th class="colLast" scope="row">
<div class="block">Represents a shell Job that could later be executed or submitted to background threads.</div>
</th>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><a href="com/topjohnwu/superuser/Shell.Result.html" title="class in com.topjohnwu.superuser">Shell.Result</a></td>
<th class="colLast" scope="row">
<div class="block">The result of a <a href="com/topjohnwu/superuser/Shell.Job.html" title="class in com.topjohnwu.superuser"><code>Shell.Job</code></a>.</div>
</th>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><a href="com/topjohnwu/superuser/Shell.ResultCallback.html" title="interface in com.topjohnwu.superuser">Shell.ResultCallback</a></td>
<th class="colLast" scope="row">
<div class="block">The callback to receive a result in <a href="com/topjohnwu/superuser/Shell.Job.html#submit(com.topjohnwu.superuser.Shell.ResultCallback)"><code>Shell.Job.submit(Shell.ResultCallback)</code></a>.</div>
</th>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><a href="com/topjohnwu/superuser/Shell.Task.html" title="interface in com.topjohnwu.superuser">Shell.Task</a></td>
<th class="colLast" scope="row">
<div class="block">A task that can be executed by a shell with the method <a href="com/topjohnwu/superuser/Shell.html#execTask(com.topjohnwu.superuser.Shell.Task)"><code>Shell.execTask(Task)</code></a>.</div>
</th>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><a href="com/topjohnwu/superuser/ShellUtils.html" title="class in com.topjohnwu.superuser">ShellUtils</a></td>
<th class="colLast" scope="row">
<div class="block">Some handy utility methods that are used in <code>libsu</code>.</div>
</th>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></td>
<th class="colLast" scope="row">
<div class="block">A <a href="https://developer.android.com/reference/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>File</code></a> implementation using root shell.</div>
</th>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><a href="com/topjohnwu/superuser/io/SuFileInputStream.html" title="class in com.topjohnwu.superuser.io">SuFileInputStream</a></td>
<th class="colLast" scope="row">
<div class="block">Open <a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>s that read files with root access.</div>
</th>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><a href="com/topjohnwu/superuser/io/SuFileOutputStream.html" title="class in com.topjohnwu.superuser.io">SuFileOutputStream</a></td>
<th class="colLast" scope="row">
<div class="block">Open <a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>OutputStream</code></a>s that read files with root access.</div>
</th>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io">SuRandomAccessFile</a></td>
<th class="colLast" scope="row">
<div class="block">Access files using the main shell and mimics <a href="https://developer.android.com/reference/java/io/RandomAccessFile.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>RandomAccessFile</code></a>.</div>
</th>
</tr>
</table>
</li>
</ul>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

43
allclasses.html Normal file
View File

@ -0,0 +1,43 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>All Classes (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
<h1 class="bar">All&nbsp;Classes</h1>
<main role="main" class="indexContainer">
<ul>
<li><a href="com/topjohnwu/superuser/BusyBoxInstaller.html" title="class in com.topjohnwu.superuser">BusyBoxInstaller</a></li>
<li><a href="com/topjohnwu/superuser/CallbackList.html" title="class in com.topjohnwu.superuser">CallbackList</a></li>
<li><a href="com/topjohnwu/superuser/NoShellException.html" title="class in com.topjohnwu.superuser">NoShellException</a></li>
<li><a href="com/topjohnwu/superuser/ipc/RootService.html" title="class in com.topjohnwu.superuser.ipc">RootService</a></li>
<li><a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></li>
<li><a href="com/topjohnwu/superuser/Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a></li>
<li><a href="com/topjohnwu/superuser/Shell.GetShellCallback.html" title="interface in com.topjohnwu.superuser"><span class="interfaceName">Shell.GetShellCallback</span></a></li>
<li><a href="com/topjohnwu/superuser/Shell.Initializer.html" title="class in com.topjohnwu.superuser">Shell.Initializer</a></li>
<li><a href="com/topjohnwu/superuser/Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a></li>
<li><a href="com/topjohnwu/superuser/Shell.Result.html" title="class in com.topjohnwu.superuser">Shell.Result</a></li>
<li><a href="com/topjohnwu/superuser/Shell.ResultCallback.html" title="interface in com.topjohnwu.superuser"><span class="interfaceName">Shell.ResultCallback</span></a></li>
<li><a href="com/topjohnwu/superuser/Shell.Task.html" title="interface in com.topjohnwu.superuser"><span class="interfaceName">Shell.Task</span></a></li>
<li><a href="com/topjohnwu/superuser/ShellUtils.html" title="class in com.topjohnwu.superuser">ShellUtils</a></li>
<li><a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></li>
<li><a href="com/topjohnwu/superuser/io/SuFileInputStream.html" title="class in com.topjohnwu.superuser.io">SuFileInputStream</a></li>
<li><a href="com/topjohnwu/superuser/io/SuFileOutputStream.html" title="class in com.topjohnwu.superuser.io">SuFileOutputStream</a></li>
<li><a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io">SuRandomAccessFile</a></li>
</ul>
</main>
</body>
</html>

169
allpackages-index.html Normal file
View File

@ -0,0 +1,169 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>All Packages (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="All Packages (libsu API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "./";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="All&amp;nbsp;Packages" class="title">All&nbsp;Packages</h1>
</div>
<div class="allPackagesContainer">
<ul class="blockList">
<li class="blockList">
<table class="packagesSummary">
<caption><span>Package Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Package</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/topjohnwu/superuser/package-summary.html">com.topjohnwu.superuser</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="com/topjohnwu/superuser/io/package-summary.html">com.topjohnwu.superuser.io</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="com/topjohnwu/superuser/ipc/package-summary.html">com.topjohnwu.superuser.ipc</a></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,339 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>BusyBoxInstaller (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="BusyBoxInstaller (libsu API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.topjohnwu.superuser</a></div>
<h2 title="Class BusyBoxInstaller" class="title">Class BusyBoxInstaller</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="Shell.Initializer.html" title="class in com.topjohnwu.superuser">com.topjohnwu.superuser.Shell.Initializer</a></li>
<li>
<ul class="inheritance">
<li>com.topjohnwu.superuser.BusyBoxInstaller</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public class <span class="typeNameLabel">BusyBoxInstaller</span>
extends <a href="Shell.Initializer.html" title="class in com.topjohnwu.superuser">Shell.Initializer</a></pre>
<div class="block">An initializer that installs and setup the bundled BusyBox.
<p>
<code>libsu</code> bundles with BusyBox binaries, supporting arm/arm64/x86/x64.
It is non trivial to bundle executables complying with Play Store and modern Android
restrictions, and at the same time workaround issues on older Samsung devices.
Using this initializer handles all of that for you.
<p>
Register this class with <a href="Shell.Builder.html#setInitializers(java.lang.Class...)"><code>Shell.Builder.setInitializers(Class[])</code></a> to let <code>libsu</code>
install and setup the shell to use the bundled BusyBox binary.
<p>
After the initializer is run, the shell will be using BusyBox's "Standalone Mode ASH".
In this state, all commands will <b>always call the one in BusyBox regardless of PATH</b>.
To specifically call a command elsewhere, use the full path (e.g. <code>/system/bin/ls -l</code>).
This makes sure all commands are using the applets from BusyBox, providing predictable
behavior so that developers can have less headache handling different implementation of the
common shell utilities.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">BusyBoxInstaller</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onInit(android.content.Context,com.topjohnwu.superuser.Shell)">onInit</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content" class="externalLink">Context</a>&nbsp;context,
<a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a>&nbsp;shell)</code></th>
<td class="colLast">
<div class="block">Called when a new shell is constructed.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>BusyBoxInstaller</h4>
<pre>public&nbsp;BusyBoxInstaller()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="onInit(android.content.Context,com.topjohnwu.superuser.Shell)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onInit</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;onInit&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content" class="externalLink">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a>&nbsp;shell)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="Shell.Initializer.html#onInit(android.content.Context,com.topjohnwu.superuser.Shell)">Shell.Initializer</a></code></span></div>
<div class="block">Called when a new shell is constructed.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="Shell.Initializer.html#onInit(android.content.Context,com.topjohnwu.superuser.Shell)">onInit</a></code>&nbsp;in class&nbsp;<code><a href="Shell.Initializer.html" title="class in com.topjohnwu.superuser">Shell.Initializer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - the application context.</dd>
<dd><code>shell</code> - the newly constructed shell.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>false</code> when initialization fails, otherwise <code>true</code>.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,615 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>CallbackList (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="CallbackList (libsu API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":6,"i3":10,"i4":10,"i5":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.topjohnwu.superuser</a></div>
<h2 title="Class CallbackList" class="title">Class CallbackList&lt;E&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/util/AbstractCollection.html?is-external=true" title="class or interface in java.util" class="externalLink">java.util.AbstractCollection</a>&lt;E&gt;</li>
<li>
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink">java.util.AbstractList</a>&lt;E&gt;</li>
<li>
<ul class="inheritance">
<li>com.topjohnwu.superuser.CallbackList&lt;E&gt;</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://developer.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;E&gt;</code>, <code><a href="https://developer.android.com/reference/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;E&gt;</code>, <code><a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;E&gt;</code></dd>
</dl>
<hr>
<pre>public abstract class <span class="typeNameLabel">CallbackList&lt;E&gt;</span>
extends <a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink">AbstractList</a>&lt;E&gt;</pre>
<div class="block">An <a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>AbstractList</code></a> that calls <code>onAddElement</code> when a new element is added to the list.
<p>
To simplify the API of <a href="Shell.html" title="class in com.topjohnwu.superuser"><code>Shell</code></a>, both STDOUT and STDERR will output to <a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>List</code></a>s.
This class is useful if you want to trigger a callback every time <a href="Shell.html" title="class in com.topjohnwu.superuser"><code>Shell</code></a>
outputs a new line.
<p>
The <code>CallbackList</code> itself does not have a data store. If you need one, you can provide a
base <a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>List</code></a>, and this class will delegate its calls to it.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mBase">mBase</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://developer.android.com/reference/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Executor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mExecutor">mExecutor</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.java.util.AbstractList">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;java.util.<a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink">AbstractList</a></h3>
<code><a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true#modCount" title="class or interface in java.util" class="externalLink">modCount</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colSecond" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">CallbackList</a></span>()</code></th>
<td class="colLast">
<div class="block"><a href="#onAddElement(E)"><code>onAddElement(Object)</code></a> runs on the main thread; no backing list.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.concurrent.Executor)">CallbackList</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Executor</a>&nbsp;executor)</code></th>
<td class="colLast">
<div class="block"><a href="#onAddElement(E)"><code>onAddElement(Object)</code></a> runs with the executor; no backing list.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.concurrent.Executor,java.util.List)">CallbackList</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Executor</a>&nbsp;executor,
<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&gt;&nbsp;base)</code></th>
<td class="colLast">
<div class="block"><a href="#onAddElement(E)"><code>onAddElement(Object)</code></a> runs with the executor; sets a backing list.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.List)">CallbackList</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&gt;&nbsp;base)</code></th>
<td class="colLast">
<div class="block"><a href="#onAddElement(E)"><code>onAddElement(Object)</code></a> runs on the main thread; sets a backing list.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add(int,E)">add</a></span>&#8203;(int&nbsp;i,
<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&nbsp;s)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="CallbackList.html" title="type parameter in CallbackList">E</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(int)">get</a></span>&#8203;(int&nbsp;i)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onAddElement(E)">onAddElement</a></span>&#8203;(<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&nbsp;e)</code></th>
<td class="colLast">
<div class="block">The callback when a new element is added.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="CallbackList.html" title="type parameter in CallbackList">E</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#remove(int)">remove</a></span>&#8203;(int&nbsp;i)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="CallbackList.html" title="type parameter in CallbackList">E</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#set(int,E)">set</a></span>&#8203;(int&nbsp;i,
<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&nbsp;s)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#size()">size</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.util.AbstractList">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.util.<a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink">AbstractList</a></h3>
<code><a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true#add(E)" title="class or interface in java.util" class="externalLink">add</a>, <a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true#addAll(int,java.util.Collection)" title="class or interface in java.util" class="externalLink">addAll</a>, <a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true#clear()" title="class or interface in java.util" class="externalLink">clear</a>, <a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.util" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true#hashCode()" title="class or interface in java.util" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true#indexOf(java.lang.Object)" title="class or interface in java.util" class="externalLink">indexOf</a>, <a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true#iterator()" title="class or interface in java.util" class="externalLink">iterator</a>, <a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true#lastIndexOf(java.lang.Object)" title="class or interface in java.util" class="externalLink">lastIndexOf</a>, <a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true#listIterator()" title="class or interface in java.util" class="externalLink">listIterator</a>, <a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true#listIterator(int)" title="class or interface in java.util" class="externalLink">listIterator</a>, <a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true#removeRange(int,int)" title="class or interface in java.util" class="externalLink">removeRange</a>, <a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true#subList(int,int)" title="class or interface in java.util" class="externalLink">subList</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.util.AbstractCollection">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.util.<a href="https://developer.android.com/reference/java/util/AbstractCollection.html?is-external=true" title="class or interface in java.util" class="externalLink">AbstractCollection</a></h3>
<code><a href="https://developer.android.com/reference/java/util/AbstractCollection.html?is-external=true#addAll(java.util.Collection)" title="class or interface in java.util" class="externalLink">addAll</a>, <a href="https://developer.android.com/reference/java/util/AbstractCollection.html?is-external=true#contains(java.lang.Object)" title="class or interface in java.util" class="externalLink">contains</a>, <a href="https://developer.android.com/reference/java/util/AbstractCollection.html?is-external=true#containsAll(java.util.Collection)" title="class or interface in java.util" class="externalLink">containsAll</a>, <a href="https://developer.android.com/reference/java/util/AbstractCollection.html?is-external=true#isEmpty()" title="class or interface in java.util" class="externalLink">isEmpty</a>, <a href="https://developer.android.com/reference/java/util/AbstractCollection.html?is-external=true#remove(java.lang.Object)" title="class or interface in java.util" class="externalLink">remove</a>, <a href="https://developer.android.com/reference/java/util/AbstractCollection.html?is-external=true#removeAll(java.util.Collection)" title="class or interface in java.util" class="externalLink">removeAll</a>, <a href="https://developer.android.com/reference/java/util/AbstractCollection.html?is-external=true#retainAll(java.util.Collection)" title="class or interface in java.util" class="externalLink">retainAll</a>, <a href="https://developer.android.com/reference/java/util/AbstractCollection.html?is-external=true#toArray()" title="class or interface in java.util" class="externalLink">toArray</a>, <a href="https://developer.android.com/reference/java/util/AbstractCollection.html?is-external=true#toArray(T%5B%5D)" title="class or interface in java.util" class="externalLink">toArray</a>, <a href="https://developer.android.com/reference/java/util/AbstractCollection.html?is-external=true#toString()" title="class or interface in java.util" class="externalLink">toString</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.util.Collection">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;java.util.<a href="https://developer.android.com/reference/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a></h3>
<code><a href="https://developer.android.com/reference/java/util/Collection.html?is-external=true#parallelStream()" title="class or interface in java.util" class="externalLink">parallelStream</a>, <a href="https://developer.android.com/reference/java/util/Collection.html?is-external=true#removeIf(java.util.function.Predicate)" title="class or interface in java.util" class="externalLink">removeIf</a>, <a href="https://developer.android.com/reference/java/util/Collection.html?is-external=true#stream()" title="class or interface in java.util" class="externalLink">stream</a>, <a href="https://developer.android.com/reference/java/util/Collection.html?is-external=true#toArray(java.util.function.IntFunction)" title="class or interface in java.util" class="externalLink">toArray</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Iterable">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Iterable.html?is-external=true#forEach(java.util.function.Consumer)" title="class or interface in java.lang" class="externalLink">forEach</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.util.List">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;java.util.<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a></h3>
<code><a href="https://developer.android.com/reference/java/util/List.html?is-external=true#addAll(java.util.Collection)" title="class or interface in java.util" class="externalLink">addAll</a>, <a href="https://developer.android.com/reference/java/util/List.html?is-external=true#contains(java.lang.Object)" title="class or interface in java.util" class="externalLink">contains</a>, <a href="https://developer.android.com/reference/java/util/List.html?is-external=true#containsAll(java.util.Collection)" title="class or interface in java.util" class="externalLink">containsAll</a>, <a href="https://developer.android.com/reference/java/util/List.html?is-external=true#isEmpty()" title="class or interface in java.util" class="externalLink">isEmpty</a>, <a href="https://developer.android.com/reference/java/util/List.html?is-external=true#remove(java.lang.Object)" title="class or interface in java.util" class="externalLink">remove</a>, <a href="https://developer.android.com/reference/java/util/List.html?is-external=true#removeAll(java.util.Collection)" title="class or interface in java.util" class="externalLink">removeAll</a>, <a href="https://developer.android.com/reference/java/util/List.html?is-external=true#replaceAll(java.util.function.UnaryOperator)" title="class or interface in java.util" class="externalLink">replaceAll</a>, <a href="https://developer.android.com/reference/java/util/List.html?is-external=true#retainAll(java.util.Collection)" title="class or interface in java.util" class="externalLink">retainAll</a>, <a href="https://developer.android.com/reference/java/util/List.html?is-external=true#sort(java.util.Comparator)" title="class or interface in java.util" class="externalLink">sort</a>, <a href="https://developer.android.com/reference/java/util/List.html?is-external=true#spliterator()" title="class or interface in java.util" class="externalLink">spliterator</a>, <a href="https://developer.android.com/reference/java/util/List.html?is-external=true#toArray()" title="class or interface in java.util" class="externalLink">toArray</a>, <a href="https://developer.android.com/reference/java/util/List.html?is-external=true#toArray(T%5B%5D)" title="class or interface in java.util" class="externalLink">toArray</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="mBase">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mBase</h4>
<pre>protected&nbsp;<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&gt; mBase</pre>
</li>
</ul>
<a id="mExecutor">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>mExecutor</h4>
<pre>protected&nbsp;<a href="https://developer.android.com/reference/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Executor</a> mExecutor</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CallbackList</h4>
<pre>protected&nbsp;CallbackList()</pre>
<div class="block"><a href="#onAddElement(E)"><code>onAddElement(Object)</code></a> runs on the main thread; no backing list.</div>
</li>
</ul>
<a id="&lt;init&gt;(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CallbackList</h4>
<pre>protected&nbsp;CallbackList&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/Nullable.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@Nullable</a>
<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&gt;&nbsp;base)</pre>
<div class="block"><a href="#onAddElement(E)"><code>onAddElement(Object)</code></a> runs on the main thread; sets a backing list.</div>
</li>
</ul>
<a id="&lt;init&gt;(java.util.concurrent.Executor)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CallbackList</h4>
<pre>protected&nbsp;CallbackList&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Executor</a>&nbsp;executor)</pre>
<div class="block"><a href="#onAddElement(E)"><code>onAddElement(Object)</code></a> runs with the executor; no backing list.</div>
</li>
</ul>
<a id="&lt;init&gt;(java.util.concurrent.Executor,java.util.List)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>CallbackList</h4>
<pre>protected&nbsp;CallbackList&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Executor</a>&nbsp;executor,
<a href="https://developer.android.com/reference/androidx/annotation/Nullable.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@Nullable</a>
<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&gt;&nbsp;base)</pre>
<div class="block"><a href="#onAddElement(E)"><code>onAddElement(Object)</code></a> runs with the executor; sets a backing list.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="onAddElement(java.lang.Object)">
<!-- -->
</a><a id="onAddElement(E)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onAddElement</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;onAddElement&#8203;(<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&nbsp;e)</pre>
<div class="block">The callback when a new element is added.
<p>
This method will be called after <code>add</code> is called.
Which thread it runs on depends on which constructor is used to construct the instance.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>e</code> - the new element added to the list.</dd>
</dl>
</li>
</ul>
<a id="get(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
<pre class="methodSignature">public&nbsp;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&nbsp;get&#8203;(int&nbsp;i)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/util/List.html?is-external=true#get(int)" title="class or interface in java.util" class="externalLink">get</a></code>&nbsp;in interface&nbsp;<code><a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true#get(int)" title="class or interface in java.util" class="externalLink">get</a></code>&nbsp;in class&nbsp;<code><a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink">AbstractList</a>&lt;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&gt;</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/java/util/List.html?is-external=true#get(int)" title="class or interface in java.util" class="externalLink"><code>List.get(int)</code></a></dd>
</dl>
</li>
</ul>
<a id="set(int,java.lang.Object)">
<!-- -->
</a><a id="set(int,E)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>set</h4>
<pre class="methodSignature">public&nbsp;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&nbsp;set&#8203;(int&nbsp;i,
<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&nbsp;s)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/util/List.html?is-external=true#set(int,E)" title="class or interface in java.util" class="externalLink">set</a></code>&nbsp;in interface&nbsp;<code><a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true#set(int,E)" title="class or interface in java.util" class="externalLink">set</a></code>&nbsp;in class&nbsp;<code><a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink">AbstractList</a>&lt;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&gt;</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/java/util/List.html?is-external=true#set(int,E)" title="class or interface in java.util" class="externalLink"><code>List.set(int, Object)</code></a></dd>
</dl>
</li>
</ul>
<a id="add(int,java.lang.Object)">
<!-- -->
</a><a id="add(int,E)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;add&#8203;(int&nbsp;i,
<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&nbsp;s)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/util/List.html?is-external=true#add(int,E)" title="class or interface in java.util" class="externalLink">add</a></code>&nbsp;in interface&nbsp;<code><a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true#add(int,E)" title="class or interface in java.util" class="externalLink">add</a></code>&nbsp;in class&nbsp;<code><a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink">AbstractList</a>&lt;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&gt;</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/java/util/List.html?is-external=true#add(int,E)" title="class or interface in java.util" class="externalLink"><code>List.add(int, Object)</code></a></dd>
</dl>
</li>
</ul>
<a id="remove(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>remove</h4>
<pre class="methodSignature">public&nbsp;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&nbsp;remove&#8203;(int&nbsp;i)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/util/List.html?is-external=true#remove(int)" title="class or interface in java.util" class="externalLink">remove</a></code>&nbsp;in interface&nbsp;<code><a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true#remove(int)" title="class or interface in java.util" class="externalLink">remove</a></code>&nbsp;in class&nbsp;<code><a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink">AbstractList</a>&lt;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&gt;</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/java/util/List.html?is-external=true#remove(java.lang.Object)" title="class or interface in java.util" class="externalLink"><code>List.remove(Object)</code></a></dd>
</dl>
</li>
</ul>
<a id="size()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>size</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;size()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/util/Collection.html?is-external=true#size()" title="class or interface in java.util" class="externalLink">size</a></code>&nbsp;in interface&nbsp;<code><a href="https://developer.android.com/reference/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/util/List.html?is-external=true#size()" title="class or interface in java.util" class="externalLink">size</a></code>&nbsp;in interface&nbsp;<code><a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/util/AbstractCollection.html?is-external=true#size()" title="class or interface in java.util" class="externalLink">size</a></code>&nbsp;in class&nbsp;<code><a href="https://developer.android.com/reference/java/util/AbstractCollection.html?is-external=true" title="class or interface in java.util" class="externalLink">AbstractCollection</a>&lt;<a href="CallbackList.html" title="type parameter in CallbackList">E</a>&gt;</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/java/util/List.html?is-external=true#size()" title="class or interface in java.util" class="externalLink"><code>List.size()</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,310 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>NoShellException (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="NoShellException (libsu API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li>Method</li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.topjohnwu.superuser</a></div>
<h2 title="Class NoShellException" class="title">Class NoShellException</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
<li>
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
<li>
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
<li>
<ul class="inheritance">
<li>com.topjohnwu.superuser.NoShellException</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://developer.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">NoShellException</span>
extends <a href="https://developer.android.com/reference/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">RuntimeException</a></pre>
<div class="block">Thrown when it is impossible to construct <code>Shell</code>.
This is a runtime exception, and should happen very rarely.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../serialized-form.html#com.topjohnwu.superuser.NoShellException">Serialized Form</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">NoShellException</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;msg)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">NoShellException</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
<a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NoShellException</h4>
<pre>public&nbsp;NoShellException&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;msg)</pre>
</li>
</ul>
<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>NoShellException</h4>
<pre>public&nbsp;NoShellException&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
<a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li>Method</li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,547 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Shell.Builder (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Shell.Builder (libsu API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":9,"i3":10,"i4":10,"i5":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.topjohnwu.superuser</a></div>
<h2 title="Class Shell.Builder" class="title">Class Shell.Builder</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.topjohnwu.superuser.Shell.Builder</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Enclosing class:</dt>
<dd><a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dd>
</dl>
<hr>
<pre>public abstract static class <span class="typeNameLabel">Shell.Builder</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
<div class="block">Builder class for <a href="Shell.html" title="class in com.topjohnwu.superuser"><code>Shell</code></a> objects.
<p>
Set the default builder for the main shell instance with
<a href="Shell.html#setDefaultBuilder(com.topjohnwu.superuser.Shell.Builder)"><code>Shell.setDefaultBuilder(Builder)</code></a>, or directly use a builder object to create new
<a href="Shell.html" title="class in com.topjohnwu.superuser"><code>Shell</code></a> objects.
<p>
Do not subclass this class, use <a href="#create()"><code>create()</code></a> to get a new Builder object.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flags">flags</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://developer.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="Shell.Initializer.html" title="class in com.topjohnwu.superuser">Shell.Initializer</a>&gt;[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#initClasses">initClasses</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#timeout">timeout</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Builder</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>abstract <a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
<td class="colLast">
<div class="block">Combine all of the options that have been set and build a new <code>Shell</code> instance
with the default methods.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract <a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build(java.lang.String...)">build</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;commands)</code></th>
<td class="colLast">
<div class="block">Combine all of the options that have been set and build a new <code>Shell</code> instance
with the provided commands.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#create()">create</a></span>()</code></th>
<td class="colLast">
<div class="block">Create a new <a href="Shell.Builder.html" title="class in com.topjohnwu.superuser"><code>Shell.Builder</code></a>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setFlags(int)">setFlags</a></span>&#8203;(int&nbsp;flags)</code></th>
<td class="colLast">
<div class="block">Set flags that controls how <code>Shell</code> works and how a new <code>Shell</code> will be
constructed.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setInitializers(java.lang.Class...)">setInitializers</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="Shell.Initializer.html" title="class in com.topjohnwu.superuser">Shell.Initializer</a>&gt;...&nbsp;classes)</code></th>
<td class="colLast">
<div class="block">Set the desired <a href="Shell.Initializer.html" title="class in com.topjohnwu.superuser"><code>Shell.Initializer</code></a>s.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTimeout(long)">setTimeout</a></span>&#8203;(long&nbsp;timeout)</code></th>
<td class="colLast">
<div class="block">Set the maximum time to wait for a new shell construction.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="flags">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flags</h4>
<pre>protected&nbsp;int flags</pre>
</li>
</ul>
<a id="timeout">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>timeout</h4>
<pre>protected&nbsp;long timeout</pre>
</li>
</ul>
<a id="initClasses">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>initClasses</h4>
<pre>protected&nbsp;<a href="https://developer.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="Shell.Initializer.html" title="class in com.topjohnwu.superuser">Shell.Initializer</a>&gt;[] initClasses</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Builder</h4>
<pre>public&nbsp;Builder()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="create()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>create</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public static&nbsp;<a href="Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a>&nbsp;create()</pre>
<div class="block">Create a new <a href="Shell.Builder.html" title="class in com.topjohnwu.superuser"><code>Shell.Builder</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new Builder object.</dd>
</dl>
</li>
</ul>
<a id="setInitializers(java.lang.Class...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setInitializers</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/java/lang/SafeVarargs.html?is-external=true" title="class or interface in java.lang" class="externalLink">@SafeVarargs</a>
<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public final&nbsp;<a href="Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a>&nbsp;setInitializers&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="Shell.Initializer.html" title="class in com.topjohnwu.superuser">Shell.Initializer</a>&gt;...&nbsp;classes)</pre>
<div class="block">Set the desired <a href="Shell.Initializer.html" title="class in com.topjohnwu.superuser"><code>Shell.Initializer</code></a>s.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>classes</code> - the classes of desired initializers.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this Builder object for chaining of calls.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="Shell.Initializer.html" title="class in com.topjohnwu.superuser"><code>Shell.Initializer</code></a></dd>
</dl>
</li>
</ul>
<a id="setFlags(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFlags</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public final&nbsp;<a href="Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a>&nbsp;setFlags&#8203;(int&nbsp;flags)</pre>
<div class="block">Set flags that controls how <code>Shell</code> works and how a new <code>Shell</code> will be
constructed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>flags</code> - the desired flags.
Value is either 0 or bitwise-or'd value of
<a href="Shell.html#FLAG_NON_ROOT_SHELL"><code>Shell.FLAG_NON_ROOT_SHELL</code></a>, <a href="Shell.html#FLAG_MOUNT_MASTER"><code>Shell.FLAG_MOUNT_MASTER</code></a>, or
<a href="Shell.html#FLAG_REDIRECT_STDERR"><code>Shell.FLAG_REDIRECT_STDERR</code></a></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this Builder object for chaining of calls.</dd>
</dl>
</li>
</ul>
<a id="setTimeout(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTimeout</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public final&nbsp;<a href="Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a>&nbsp;setTimeout&#8203;(long&nbsp;timeout)</pre>
<div class="block">Set the maximum time to wait for a new shell construction.
<p>
If after the timeout occurs and the new shell still has no response,
the shell process will be force-closed and throw <a href="NoShellException.html" title="class in com.topjohnwu.superuser"><code>NoShellException</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeout</code> - the maximum time to wait in seconds.
The default timeout is 20 seconds.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this Builder object for chaining of calls.</dd>
</dl>
</li>
</ul>
<a id="build()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>build</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public abstract&nbsp;<a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a>&nbsp;build()</pre>
<div class="block">Combine all of the options that have been set and build a new <code>Shell</code> instance
with the default methods.
<p>
There are 3 methods to construct a Unix shell; if any method fails, it will fallback to
the next method:
<ol>
<li>If <a href="Shell.html#FLAG_NON_ROOT_SHELL"><code>Shell.FLAG_NON_ROOT_SHELL</code></a> is not set and <a href="Shell.html#FLAG_MOUNT_MASTER"><code>Shell.FLAG_MOUNT_MASTER</code></a>
is set, construct a Unix shell by calling <code>su --mount-master</code>.
It may fail if the root implementation does not support mount master.</li>
<li>If <a href="Shell.html#FLAG_NON_ROOT_SHELL"><code>Shell.FLAG_NON_ROOT_SHELL</code></a> is not set, construct a Unix shell by calling
<code>su</code>. It may fail if the device is not rooted, or root permission is
not granted.</li>
<li>Construct a Unix shell by calling <code>sh</code>. This would never fail in normal
conditions, but should it fail, it will throw <a href="NoShellException.html" title="class in com.topjohnwu.superuser"><code>NoShellException</code></a></li>
</ol>
The developer should check the status of the returned <code>Shell</code> with
<a href="Shell.html#getStatus()"><code>Shell.getStatus()</code></a> since it may be constructed with any of the 3 possible methods.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the created <code>Shell</code> instance.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="NoShellException.html" title="class in com.topjohnwu.superuser">NoShellException</a></code> - impossible to construct a <a href="Shell.html" title="class in com.topjohnwu.superuser"><code>Shell</code></a> instance, or
initialization failed when using the configured <a href="Shell.Initializer.html" title="class in com.topjohnwu.superuser"><code>Shell.Initializer</code></a>.</dd>
</dl>
</li>
</ul>
<a id="build(java.lang.String...)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>build</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public abstract&nbsp;<a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a>&nbsp;build&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;commands)</pre>
<div class="block">Combine all of the options that have been set and build a new <code>Shell</code> instance
with the provided commands.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>commands</code> - commands that will be passed to <a href="https://developer.android.com/reference/java/lang/Runtime.html?is-external=true#exec(java.lang.String%5B%5D)" title="class or interface in java.lang" class="externalLink"><code>Runtime.exec(String[])</code></a> to create
a new <a href="https://developer.android.com/reference/java/lang/Process.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Process</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the built <code>Shell</code> instance.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="NoShellException.html" title="class in com.topjohnwu.superuser">NoShellException</a></code> - the provided command cannot create a <a href="Shell.html" title="class in com.topjohnwu.superuser"><code>Shell</code></a> instance, or
initialization failed when using the configured <a href="Shell.Initializer.html" title="class in com.topjohnwu.superuser"><code>Shell.Initializer</code></a>.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,255 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Shell.GetShellCallback (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Shell.GetShellCallback (libsu API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.topjohnwu.superuser</a></div>
<h2 title="Interface Shell.GetShellCallback" class="title">Interface Shell.GetShellCallback</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Enclosing class:</dt>
<dd><a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dd>
</dl>
<hr>
<pre>public static interface <span class="typeNameLabel">Shell.GetShellCallback</span></pre>
<div class="block">The callback used in <a href="Shell.html#getShell(com.topjohnwu.superuser.Shell.GetShellCallback)"><code>Shell.getShell(GetShellCallback)</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onShell(com.topjohnwu.superuser.Shell)">onShell</a></span>&#8203;(<a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a>&nbsp;shell)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="onShell(com.topjohnwu.superuser.Shell)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onShell</h4>
<pre class="methodSignature">void&nbsp;onShell&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a>&nbsp;shell)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>shell</code> - the <code>Shell</code> obtained in the asynchronous operation.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,334 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Shell.Initializer (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Shell.Initializer (libsu API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.topjohnwu.superuser</a></div>
<h2 title="Class Shell.Initializer" class="title">Class Shell.Initializer</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.topjohnwu.superuser.Shell.Initializer</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="BusyBoxInstaller.html" title="class in com.topjohnwu.superuser">BusyBoxInstaller</a></code></dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
<dd><a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dd>
</dl>
<hr>
<pre>public static class <span class="typeNameLabel">Shell.Initializer</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
<div class="block">The initializer when a new <code>Shell</code> is constructed.
<p>
This is an advanced feature. If you need to run specific operations when a new <code>Shell</code>
is constructed, extend this class, add your own implementation, and register it with
<a href="Shell.Builder.html#setInitializers(java.lang.Class...)"><code>Shell.Builder.setInitializers(Class[])</code></a>.
The concept is similar to <code>.bashrc</code>: run specific scripts/commands when the shell
starts up. <a href="#onInit(android.content.Context,com.topjohnwu.superuser.Shell)"><code>onInit(Context, Shell)</code></a> will be called as soon as the shell is
constructed and tested as a valid shell.
<p>
An initializer will be constructed and the callbacks will be invoked each time a new
shell is created.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Initializer</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onInit(android.content.Context,com.topjohnwu.superuser.Shell)">onInit</a></span>&#8203;(<a href="https://developer.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content" class="externalLink">Context</a>&nbsp;context,
<a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a>&nbsp;shell)</code></th>
<td class="colLast">
<div class="block">Called when a new shell is constructed.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Initializer</h4>
<pre>public&nbsp;Initializer()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="onInit(android.content.Context,com.topjohnwu.superuser.Shell)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onInit</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;onInit&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content" class="externalLink">Context</a>&nbsp;context,
<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a>&nbsp;shell)</pre>
<div class="block">Called when a new shell is constructed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - the application context.</dd>
<dd><code>shell</code> - the newly constructed shell.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>false</code> when initialization fails, otherwise <code>true</code>.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,501 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Shell.Job (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Shell.Job (libsu API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":10,"i4":10,"i5":6,"i6":6,"i7":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.topjohnwu.superuser</a></div>
<h2 title="Class Shell.Job" class="title">Class Shell.Job</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.topjohnwu.superuser.Shell.Job</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Enclosing class:</dt>
<dd><a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dd>
</dl>
<hr>
<pre>public abstract static class <span class="typeNameLabel">Shell.Job</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
<div class="block">Represents a shell Job that could later be executed or submitted to background threads.
<p>
All operations added in <a href="#add(java.lang.String...)"><code>add(String...)</code></a> and <a href="#add(java.io.InputStream)"><code>add(InputStream)</code></a> will be
executed in the order of addition.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Job</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>abstract <a href="Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add(java.io.InputStream)">add</a></span>&#8203;(<a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;in)</code></th>
<td class="colLast">
<div class="block">Add a new operation serving an InputStream to STDIN.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract <a href="Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add(java.lang.String...)">add</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;cmds)</code></th>
<td class="colLast">
<div class="block">Add a new operation running commands.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>abstract <a href="Shell.Result.html" title="class in com.topjohnwu.superuser">Shell.Result</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#exec()">exec</a></span>()</code></th>
<td class="colLast">
<div class="block">Execute the job immediately and returns the result.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#submit()">submit</a></span>()</code></th>
<td class="colLast">
<div class="block">Submit the job to an internal queue to run in the background.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#submit(com.topjohnwu.superuser.Shell.ResultCallback)">submit</a></span>&#8203;(<a href="Shell.ResultCallback.html" title="interface in com.topjohnwu.superuser">Shell.ResultCallback</a>&nbsp;cb)</code></th>
<td class="colLast">
<div class="block">Submit the job to an internal queue to run in the background.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#submit(java.util.concurrent.Executor,com.topjohnwu.superuser.Shell.ResultCallback)">submit</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Executor</a>&nbsp;executor,
<a href="Shell.ResultCallback.html" title="interface in com.topjohnwu.superuser">Shell.ResultCallback</a>&nbsp;cb)</code></th>
<td class="colLast">
<div class="block">Submit the job to an internal queue to run in the background.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>abstract <a href="Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#to(java.util.List)">to</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;output)</code></th>
<td class="colLast">
<div class="block">Store output to a specific list.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>abstract <a href="Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#to(java.util.List,java.util.List)">to</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;stdout,
<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;stderr)</code></th>
<td class="colLast">
<div class="block">Store output of STDOUT and STDERR to specific lists.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Job</h4>
<pre>public&nbsp;Job()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="to(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>to</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public abstract&nbsp;<a href="Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a>&nbsp;to&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/Nullable.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@Nullable</a>
<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;output)</pre>
<div class="block">Store output to a specific list.
<p>
Output of STDERR will be also be stored in the same <a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>List</code></a> if the flag
<a href="Shell.html#FLAG_REDIRECT_STDERR"><code>Shell.FLAG_REDIRECT_STDERR</code></a> is set; <a href="Shell.Result.html#getErr()"><code>Shell.Result.getErr()</code></a>
will always return an empty list.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>output</code> - the list to store outputs. Pass <code>null</code> to omit all outputs.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this Job object for chaining of calls.</dd>
</dl>
</li>
</ul>
<a id="to(java.util.List,java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>to</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public abstract&nbsp;<a href="Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a>&nbsp;to&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/Nullable.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@Nullable</a>
<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;stdout,
<a href="https://developer.android.com/reference/androidx/annotation/Nullable.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@Nullable</a>
<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;stderr)</pre>
<div class="block">Store output of STDOUT and STDERR to specific lists.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>stdout</code> - the list to store STDOUT. Pass <code>null</code> to omit STDOUT.</dd>
<dd><code>stderr</code> - the list to store STDERR. Pass <code>null</code> to omit STDERR.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this Job object for chaining of calls.</dd>
</dl>
</li>
</ul>
<a id="add(java.lang.String...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public abstract&nbsp;<a href="Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a>&nbsp;add&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;cmds)</pre>
<div class="block">Add a new operation running commands.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cmds</code> - the commands to run.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this Job object for chaining of calls.</dd>
</dl>
</li>
</ul>
<a id="add(java.io.InputStream)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public abstract&nbsp;<a href="Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a>&nbsp;add&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;in)</pre>
<div class="block">Add a new operation serving an InputStream to STDIN.
<p>
This is NOT executing the script like <code>sh script.sh</code>.
This is similar to sourcing the script (<code>. script.sh</code>) as the
raw content of the script is directly fed into STDIN. If you call
<code>exit</code> in the script, <strong>the shell will be killed and this
shell instance will no longer be alive!</strong></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>in</code> - the InputStream to serve to STDIN.
The stream will be closed after consumption.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this Job object for chaining of calls.</dd>
</dl>
</li>
</ul>
<a id="exec()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>exec</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public abstract&nbsp;<a href="Shell.Result.html" title="class in com.topjohnwu.superuser">Shell.Result</a>&nbsp;exec()</pre>
<div class="block">Execute the job immediately and returns the result.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the result of the job.</dd>
</dl>
</li>
</ul>
<a id="submit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>submit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;submit()</pre>
<div class="block">Submit the job to an internal queue to run in the background.
The result will be omitted.</div>
</li>
</ul>
<a id="submit(com.topjohnwu.superuser.Shell.ResultCallback)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>submit</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;submit&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/Nullable.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@Nullable</a>
<a href="Shell.ResultCallback.html" title="interface in com.topjohnwu.superuser">Shell.ResultCallback</a>&nbsp;cb)</pre>
<div class="block">Submit the job to an internal queue to run in the background.
The result will be returned with a callback running on the main thread.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cb</code> - the callback to receive the result of the job.</dd>
</dl>
</li>
</ul>
<a id="submit(java.util.concurrent.Executor,com.topjohnwu.superuser.Shell.ResultCallback)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>submit</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;submit&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/Nullable.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@Nullable</a>
<a href="https://developer.android.com/reference/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Executor</a>&nbsp;executor,
<a href="https://developer.android.com/reference/androidx/annotation/Nullable.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@Nullable</a>
<a href="Shell.ResultCallback.html" title="interface in com.topjohnwu.superuser">Shell.ResultCallback</a>&nbsp;cb)</pre>
<div class="block">Submit the job to an internal queue to run in the background.
The result will be returned with a callback executed by the provided executor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>executor</code> - the executor used to handle the result callback event.
Pass <code>null</code> to run the callback on the same thread executing the job.</dd>
<dd><code>cb</code> - the callback to receive the result of the job.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,433 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Shell.Result (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Shell.Result (libsu API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.topjohnwu.superuser</a></div>
<h2 title="Class Shell.Result" class="title">Class Shell.Result</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.topjohnwu.superuser.Shell.Result</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Enclosing class:</dt>
<dd><a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dd>
</dl>
<hr>
<pre>public abstract static class <span class="typeNameLabel">Shell.Result</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
<div class="block">The result of a <a href="Shell.Job.html" title="class in com.topjohnwu.superuser"><code>Shell.Job</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#JOB_NOT_EXECUTED">JOB_NOT_EXECUTED</a></span></code></th>
<td class="colLast">
<div class="block">This code indicates that the job was not executed, and the outputs are all empty.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Result</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>abstract int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCode()">getCode</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the return code of the job.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract <a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getErr()">getErr</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the output of STDERR.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>abstract <a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOut()">getOut</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the output of STDOUT.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSuccess()">isSuccess</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether the job succeeded.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="JOB_NOT_EXECUTED">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>JOB_NOT_EXECUTED</h4>
<pre>public static final&nbsp;int JOB_NOT_EXECUTED</pre>
<div class="block">This code indicates that the job was not executed, and the outputs are all empty.
Constant value: -1.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#com.topjohnwu.superuser.Shell.Result.JOB_NOT_EXECUTED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Result</h4>
<pre>public&nbsp;Result()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getOut()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOut</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public abstract&nbsp;<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getOut()</pre>
<div class="block">Get the output of STDOUT.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a list of strings that stores the output of STDOUT. Empty list if no output
is available.</dd>
</dl>
</li>
</ul>
<a id="getErr()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getErr</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public abstract&nbsp;<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getErr()</pre>
<div class="block">Get the output of STDERR.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a list of strings that stores the output of STDERR. Empty list if no output
is available.</dd>
</dl>
</li>
</ul>
<a id="getCode()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCode</h4>
<pre class="methodSignature">public abstract&nbsp;int&nbsp;getCode()</pre>
<div class="block">Get the return code of the job.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the return code of the last operation in the shell. If the job is executed
properly, the code should range from 0-255. If the job fails to execute, it will return
<a href="#JOB_NOT_EXECUTED"><code>JOB_NOT_EXECUTED</code></a>.</dd>
</dl>
</li>
</ul>
<a id="isSuccess()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isSuccess</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isSuccess()</pre>
<div class="block">Whether the job succeeded.
<code>getCode() == 0</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the return code is 0.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,256 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Shell.ResultCallback (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Shell.ResultCallback (libsu API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.topjohnwu.superuser</a></div>
<h2 title="Interface Shell.ResultCallback" class="title">Interface Shell.ResultCallback</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Enclosing class:</dt>
<dd><a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dd>
</dl>
<hr>
<pre>public static interface <span class="typeNameLabel">Shell.ResultCallback</span></pre>
<div class="block">The callback to receive a result in <a href="Shell.Job.html#submit(com.topjohnwu.superuser.Shell.ResultCallback)"><code>Shell.Job.submit(Shell.ResultCallback)</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onResult(com.topjohnwu.superuser.Shell.Result)">onResult</a></span>&#8203;(<a href="Shell.Result.html" title="class in com.topjohnwu.superuser">Shell.Result</a>&nbsp;out)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="onResult(com.topjohnwu.superuser.Shell.Result)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onResult</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/MainThread.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@MainThread</a>
void&nbsp;onResult&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="Shell.Result.html" title="class in com.topjohnwu.superuser">Shell.Result</a>&nbsp;out)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>out</code> - the result of the job.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,270 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Shell.Task (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Shell.Task (libsu API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.topjohnwu.superuser</a></div>
<h2 title="Interface Shell.Task" class="title">Interface Shell.Task</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Enclosing class:</dt>
<dd><a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dd>
</dl>
<hr>
<pre>public static interface <span class="typeNameLabel">Shell.Task</span></pre>
<div class="block">A task that can be executed by a shell with the method <a href="Shell.html#execTask(com.topjohnwu.superuser.Shell.Task)"><code>Shell.execTask(Task)</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#run(java.io.OutputStream,java.io.InputStream,java.io.InputStream)">run</a></span>&#8203;(<a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;stdin,
<a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;stdout,
<a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;stderr)</code></th>
<td class="colLast">
<div class="block">This method will be called when a task is executed by a shell.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="run(java.io.OutputStream,java.io.InputStream,java.io.InputStream)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>run</h4>
<pre class="methodSignature">void&nbsp;run&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;stdin,
<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;stdout,
<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;stderr)
throws <a href="https://developer.android.com/reference/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
<div class="block">This method will be called when a task is executed by a shell.
Calling <a href="https://developer.android.com/reference/java/io/Closeable.html?is-external=true#close()" title="class or interface in java.io" class="externalLink"><code>Closeable.close()</code></a> on all streams is NOP (does nothing).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>stdin</code> - the STDIN of the shell.</dd>
<dd><code>stdout</code> - the STDOUT of the shell.</dd>
<dd><code>stderr</code> - the STDERR of the shell.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - I/O errors when doing operations with STDIN/STDOUT/STDERR</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,468 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>ShellUtils (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ShellUtils (libsu API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.topjohnwu.superuser</a></div>
<h2 title="Class ShellUtils" class="title">Class ShellUtils</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.topjohnwu.superuser.ShellUtils</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public final class <span class="typeNameLabel">ShellUtils</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
<div class="block">Some handy utility methods that are used in <code>libsu</code>.
<p>
These methods are for internal use. I personally find them pretty handy, so I gathered them here.
However, since these are meant to be used internally, they are not stable APIs.
I would change them without too much consideration if needed. Also, these methods are not well
tested for public usage, many might not handle some edge cases correctly.
<strong>You have been warned!!</strong></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cleanInputStream(java.io.InputStream)">cleanInputStream</a></span>&#8203;(<a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;in)</code></th>
<td class="colLast">
<div class="block">Discard all data currently available in an <a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#escapedString(java.lang.String)">escapedString</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;s)</code></th>
<td class="colLast">
<div class="block">Format string to quoted and escaped string suitable for shell commands.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fastCmd(com.topjohnwu.superuser.Shell,java.lang.String...)">fastCmd</a></span>&#8203;(<a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a>&nbsp;shell,
<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;cmds)</code></th>
<td class="colLast">
<div class="block">Run commands and get a single line output.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fastCmd(java.lang.String...)">fastCmd</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;cmds)</code></th>
<td class="colLast">
<div class="block">Run commands with the main shell and get a single line output.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fastCmdResult(com.topjohnwu.superuser.Shell,java.lang.String...)">fastCmdResult</a></span>&#8203;(<a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a>&nbsp;shell,
<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;cmds)</code></th>
<td class="colLast">
<div class="block">Run commands and return whether exits with 0 (success).</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fastCmdResult(java.lang.String...)">fastCmdResult</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;cmds)</code></th>
<td class="colLast">
<div class="block">Run commands with the main shell and return whether exits with 0 (success).</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#gcd(long,long)">gcd</a></span>&#8203;(long&nbsp;u,
long&nbsp;v)</code></th>
<td class="colLast">
<div class="block">Get the greatest common divisor of 2 integers with binary algorithm.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isValidOutput(java.util.List)">isValidOutput</a></span>&#8203;(<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;out)</code></th>
<td class="colLast">
<div class="block">Test whether the list is <code>null</code> or empty or all elements are empty strings.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onMainThread()">onMainThread</a></span>()</code></th>
<td class="colLast">
<div class="block">Check if current thread is main thread.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="isValidOutput(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValidOutput</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isValidOutput&#8203;(<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;out)</pre>
<div class="block">Test whether the list is <code>null</code> or empty or all elements are empty strings.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>out</code> - the output of a shell command.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>false</code> if the list is <code>null</code> or empty or all elements are empty strings.</dd>
</dl>
</li>
</ul>
<a id="fastCmd(java.lang.String...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fastCmd</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public static&nbsp;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;fastCmd&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;cmds)</pre>
<div class="block">Run commands with the main shell and get a single line output.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cmds</code> - the commands.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the last line of the output of the command, empty string if no output is available.</dd>
</dl>
</li>
</ul>
<a id="fastCmd(com.topjohnwu.superuser.Shell,java.lang.String...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fastCmd</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public static&nbsp;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;fastCmd&#8203;(<a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a>&nbsp;shell,
<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;cmds)</pre>
<div class="block">Run commands and get a single line output.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>shell</code> - a shell instance.</dd>
<dd><code>cmds</code> - the commands.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the last line of the output of the command, empty string if no output is available.</dd>
</dl>
</li>
</ul>
<a id="fastCmdResult(java.lang.String...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fastCmdResult</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;fastCmdResult&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;cmds)</pre>
<div class="block">Run commands with the main shell and return whether exits with 0 (success).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cmds</code> - the commands.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the commands succeed.</dd>
</dl>
</li>
</ul>
<a id="fastCmdResult(com.topjohnwu.superuser.Shell,java.lang.String...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fastCmdResult</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;fastCmdResult&#8203;(<a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a>&nbsp;shell,
<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;cmds)</pre>
<div class="block">Run commands and return whether exits with 0 (success).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>shell</code> - a shell instance.</dd>
<dd><code>cmds</code> - the commands.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the commands succeed.</dd>
</dl>
</li>
</ul>
<a id="onMainThread()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onMainThread</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;onMainThread()</pre>
<div class="block">Check if current thread is main thread.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the current thread is the main thread.</dd>
</dl>
</li>
</ul>
<a id="cleanInputStream(java.io.InputStream)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cleanInputStream</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;cleanInputStream&#8203;(<a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;in)</pre>
<div class="block">Discard all data currently available in an <a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>in</code> - the <a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a> to be cleaned.</dd>
</dl>
</li>
</ul>
<a id="escapedString(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>escapedString</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;escapedString&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;s)</pre>
<div class="block">Format string to quoted and escaped string suitable for shell commands.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - the string to be formatted.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the formatted string.</dd>
</dl>
</li>
</ul>
<a id="gcd(long,long)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>gcd</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;gcd&#8203;(long&nbsp;u,
long&nbsp;v)</pre>
<div class="block">Get the greatest common divisor of 2 integers with binary algorithm.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>u</code> - an integer.</dd>
<dd><code>v</code> - an integer.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the greatest common divisor.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,359 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SuFileInputStream (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SuFileInputStream (libsu API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.topjohnwu.superuser.io</a></div>
<h2 title="Class SuFileInputStream" class="title">Class SuFileInputStream</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">java.io.InputStream</a></li>
<li>
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/io/FilterInputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">java.io.FilterInputStream</a></li>
<li>
<ul class="inheritance">
<li>com.topjohnwu.superuser.io.SuFileInputStream</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://developer.android.com/reference/java/io/Closeable.html?is-external=true" title="class or interface in java.io" class="externalLink">Closeable</a></code>, <code><a href="https://developer.android.com/reference/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">SuFileInputStream</span>
extends <a href="https://developer.android.com/reference/java/io/FilterInputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">FilterInputStream</a></pre>
<div class="block">Open <a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>s that read files with root access.
<p>
Directly creating instances of this class is deprecated, please use the static helper
methods to open new InputStreams.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.java.io.FilterInputStream">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;java.io.<a href="https://developer.android.com/reference/java/io/FilterInputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">FilterInputStream</a></h3>
<code><a href="https://developer.android.com/reference/java/io/FilterInputStream.html?is-external=true#in" title="class or interface in java.io" class="externalLink">in</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#open(java.io.File)">open</a></span>&#8203;(<a href="https://developer.android.com/reference/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&nbsp;file)</code></th>
<td class="colLast">
<div class="block">Open an <a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a> with root access.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#open(java.lang.String)">open</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
<td class="colLast">
<div class="block"><code>SuFileInputStream.open(new File(path))</code></div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.io.FilterInputStream">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.io.<a href="https://developer.android.com/reference/java/io/FilterInputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">FilterInputStream</a></h3>
<code><a href="https://developer.android.com/reference/java/io/FilterInputStream.html?is-external=true#available()" title="class or interface in java.io" class="externalLink">available</a>, <a href="https://developer.android.com/reference/java/io/FilterInputStream.html?is-external=true#close()" title="class or interface in java.io" class="externalLink">close</a>, <a href="https://developer.android.com/reference/java/io/FilterInputStream.html?is-external=true#mark(int)" title="class or interface in java.io" class="externalLink">mark</a>, <a href="https://developer.android.com/reference/java/io/FilterInputStream.html?is-external=true#markSupported()" title="class or interface in java.io" class="externalLink">markSupported</a>, <a href="https://developer.android.com/reference/java/io/FilterInputStream.html?is-external=true#read()" title="class or interface in java.io" class="externalLink">read</a>, <a href="https://developer.android.com/reference/java/io/FilterInputStream.html?is-external=true#read(byte%5B%5D)" title="class or interface in java.io" class="externalLink">read</a>, <a href="https://developer.android.com/reference/java/io/FilterInputStream.html?is-external=true#read(byte%5B%5D,int,int)" title="class or interface in java.io" class="externalLink">read</a>, <a href="https://developer.android.com/reference/java/io/FilterInputStream.html?is-external=true#reset()" title="class or interface in java.io" class="externalLink">reset</a>, <a href="https://developer.android.com/reference/java/io/FilterInputStream.html?is-external=true#skip(long)" title="class or interface in java.io" class="externalLink">skip</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.io.InputStream">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.io.<a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a></h3>
<code><a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true#nullInputStream()" title="class or interface in java.io" class="externalLink">nullInputStream</a>, <a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true#readAllBytes()" title="class or interface in java.io" class="externalLink">readAllBytes</a>, <a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true#readNBytes(byte%5B%5D,int,int)" title="class or interface in java.io" class="externalLink">readNBytes</a>, <a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true#readNBytes(int)" title="class or interface in java.io" class="externalLink">readNBytes</a>, <a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true#transferTo(java.io.OutputStream)" title="class or interface in java.io" class="externalLink">transferTo</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="open(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>open</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public static&nbsp;<a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;open&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)
throws <a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></pre>
<div class="block"><code>SuFileInputStream.open(new File(path))</code></div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a id="open(java.io.File)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>open</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public static&nbsp;<a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;open&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&nbsp;file)
throws <a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></pre>
<div class="block">Open an <a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a> with root access.
<p>
Unless <code>file</code> is an <a href="SuFile.html" title="class in com.topjohnwu.superuser.io"><code>SuFile</code></a>, this method will always try to directly
open a <a href="https://developer.android.com/reference/java/io/FileInputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>FileInputStream</code></a>, and fallback to using root access when it fails.
<p>
<strong>Root Access Streams:</strong><br>
On Android 5.0 and higher (API 21+), internally a named pipe (FIFO) is created
to bridge all I/O operations across process boundary, providing 100% native
<a href="https://developer.android.com/reference/java/io/FileInputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>FileInputStream</code></a> performance.
A single root command is issued through the main shell at stream construction.
<br>
On Android 4.4 and lower, the returned stream will do I/O operations using <code>dd</code>
commands via the main root shell for each 4MB chunk. Due to excessive internal buffering,
the performance is on par with native streams.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/java/io/FileInputStream.html?is-external=true#%3Cinit%3E(java.io.File)" title="class or interface in java.io" class="externalLink"><code>FileInputStream(File)</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,545 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SuFileOutputStream (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SuFileOutputStream (libsu API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.topjohnwu.superuser.io</a></div>
<h2 title="Class SuFileOutputStream" class="title">Class SuFileOutputStream</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">java.io.OutputStream</a></li>
<li>
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/io/FilterOutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">java.io.FilterOutputStream</a></li>
<li>
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/io/BufferedOutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">java.io.BufferedOutputStream</a></li>
<li>
<ul class="inheritance">
<li>com.topjohnwu.superuser.io.SuFileOutputStream</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://developer.android.com/reference/java/io/Closeable.html?is-external=true" title="class or interface in java.io" class="externalLink">Closeable</a></code>, <code><a href="https://developer.android.com/reference/java/io/Flushable.html?is-external=true" title="class or interface in java.io" class="externalLink">Flushable</a></code>, <code><a href="https://developer.android.com/reference/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">SuFileOutputStream</span>
extends <a href="https://developer.android.com/reference/java/io/BufferedOutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">BufferedOutputStream</a></pre>
<div class="block">Open <a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>OutputStream</code></a>s that read files with root access.
<p>
Directly creating instances of this class is deprecated, please use the static helper
methods to open new OutputStreams.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.java.io.BufferedOutputStream">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;java.io.<a href="https://developer.android.com/reference/java/io/BufferedOutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">BufferedOutputStream</a></h3>
<code><a href="https://developer.android.com/reference/java/io/BufferedOutputStream.html?is-external=true#buf" title="class or interface in java.io" class="externalLink">buf</a>, <a href="https://developer.android.com/reference/java/io/BufferedOutputStream.html?is-external=true#count" title="class or interface in java.io" class="externalLink">count</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.java.io.FilterOutputStream">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;java.io.<a href="https://developer.android.com/reference/java/io/FilterOutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">FilterOutputStream</a></h3>
<code><a href="https://developer.android.com/reference/java/io/FilterOutputStream.html?is-external=true#out" title="class or interface in java.io" class="externalLink">out</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#open(java.io.File)">open</a></span>&#8203;(<a href="https://developer.android.com/reference/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&nbsp;file)</code></th>
<td class="colLast">
<div class="block"><code>SuFileOutputStream.open(file, false)</code></div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#open(java.io.File,boolean)">open</a></span>&#8203;(<a href="https://developer.android.com/reference/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&nbsp;file,
boolean&nbsp;append)</code></th>
<td class="colLast">
<div class="block">Open an <a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>OutputStream</code></a> with root access.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#open(java.lang.String)">open</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
<td class="colLast">
<div class="block"><code>SuFileOutputStream.open(new File(path), false)</code></div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#open(java.lang.String,boolean)">open</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
boolean&nbsp;append)</code></th>
<td class="colLast">
<div class="block"><code>SuFileOutputStream.open(new File(path), append)</code></div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#openNoCopy(java.io.File)">openNoCopy</a></span>&#8203;(<a href="https://developer.android.com/reference/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&nbsp;file)</code></th>
<td class="colLast">
<div class="block"><code>SuFileOutputStream.openNoCopy(file, false)</code></div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#openNoCopy(java.io.File,boolean)">openNoCopy</a></span>&#8203;(<a href="https://developer.android.com/reference/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&nbsp;file,
boolean&nbsp;append)</code></th>
<td class="colLast">
<div class="block">Open an <a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>OutputStream</code></a> with root access (no internal copying).</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#openNoCopy(java.lang.String)">openNoCopy</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
<td class="colLast">
<div class="block"><code>SuFileOutputStream.openNoCopy(new File(path), false)</code></div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static <a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#openNoCopy(java.lang.String,boolean)">openNoCopy</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
boolean&nbsp;append)</code></th>
<td class="colLast">
<div class="block"><code>SuFileOutputStream.openNoCopy(new File(path), append)</code></div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.io.BufferedOutputStream">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.io.<a href="https://developer.android.com/reference/java/io/BufferedOutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">BufferedOutputStream</a></h3>
<code><a href="https://developer.android.com/reference/java/io/BufferedOutputStream.html?is-external=true#flush()" title="class or interface in java.io" class="externalLink">flush</a>, <a href="https://developer.android.com/reference/java/io/BufferedOutputStream.html?is-external=true#write(byte%5B%5D,int,int)" title="class or interface in java.io" class="externalLink">write</a>, <a href="https://developer.android.com/reference/java/io/BufferedOutputStream.html?is-external=true#write(int)" title="class or interface in java.io" class="externalLink">write</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.io.FilterOutputStream">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.io.<a href="https://developer.android.com/reference/java/io/FilterOutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">FilterOutputStream</a></h3>
<code><a href="https://developer.android.com/reference/java/io/FilterOutputStream.html?is-external=true#close()" title="class or interface in java.io" class="externalLink">close</a>, <a href="https://developer.android.com/reference/java/io/FilterOutputStream.html?is-external=true#write(byte%5B%5D)" title="class or interface in java.io" class="externalLink">write</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.io.OutputStream">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.io.<a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a></h3>
<code><a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true#nullOutputStream()" title="class or interface in java.io" class="externalLink">nullOutputStream</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="open(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>open</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public static&nbsp;<a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;open&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)
throws <a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></pre>
<div class="block"><code>SuFileOutputStream.open(new File(path), false)</code></div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a id="open(java.lang.String,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>open</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public static&nbsp;<a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;open&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
boolean&nbsp;append)
throws <a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></pre>
<div class="block"><code>SuFileOutputStream.open(new File(path), append)</code></div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a id="open(java.io.File)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>open</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public static&nbsp;<a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;open&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&nbsp;file)
throws <a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></pre>
<div class="block"><code>SuFileOutputStream.open(file, false)</code></div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a id="open(java.io.File,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>open</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public static&nbsp;<a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;open&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&nbsp;file,
boolean&nbsp;append)
throws <a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></pre>
<div class="block">Open an <a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>OutputStream</code></a> with root access.
<p>
Unless <code>file</code> is an <a href="SuFile.html" title="class in com.topjohnwu.superuser.io"><code>SuFile</code></a>, this method will always try to directly
open a <a href="https://developer.android.com/reference/java/io/FileOutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>FileOutputStream</code></a>, and fallback to using root access when it fails.
<p>
<strong>Root Access Streams:</strong><br>
On Android 5.0 and higher (API 21+), internally a named pipe (FIFO) is created
to bridge all I/O operations across process boundary, providing 100% native
<a href="https://developer.android.com/reference/java/io/FileOutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>FileOutputStream</code></a> performance.
A single root command is issued through the main shell at stream construction.
<br>
On Android 4.4 and lower, all write operations will be applied to a temporary file in
the application cache folder. When the stream is closed, the temporary file
will be copied over to the provided <code>file</code> by using a single <code>cat</code>
command with the main shell, then deleted.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/java/io/FileOutputStream.html?is-external=true#%3Cinit%3E(java.io.File,boolean)" title="class or interface in java.io" class="externalLink"><code>FileOutputStream(File, boolean)</code></a></dd>
</dl>
</li>
</ul>
<a id="openNoCopy(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>openNoCopy</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public static&nbsp;<a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;openNoCopy&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)
throws <a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></pre>
<div class="block"><code>SuFileOutputStream.openNoCopy(new File(path), false)</code></div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a id="openNoCopy(java.lang.String,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>openNoCopy</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public static&nbsp;<a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;openNoCopy&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
boolean&nbsp;append)
throws <a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></pre>
<div class="block"><code>SuFileOutputStream.openNoCopy(new File(path), append)</code></div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a id="openNoCopy(java.io.File)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>openNoCopy</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public static&nbsp;<a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;openNoCopy&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&nbsp;file)
throws <a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></pre>
<div class="block"><code>SuFileOutputStream.openNoCopy(file, false)</code></div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a id="openNoCopy(java.io.File,boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>openNoCopy</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public static&nbsp;<a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;openNoCopy&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&nbsp;file,
boolean&nbsp;append)
throws <a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></pre>
<div class="block">Open an <a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>OutputStream</code></a> with root access (no internal copying).
<p>
<strong>If your minSdkVersion is 21 or higher, this method is irrelevant.</strong>
<p>
Unless <code>file</code> is an <a href="SuFile.html" title="class in com.topjohnwu.superuser.io"><code>SuFile</code></a>, this method will always try to directly
open a <a href="https://developer.android.com/reference/java/io/FileOutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>FileOutputStream</code></a>, and fallback to using root access when it fails.
<p>
<strong>Root Access Streams:</strong><br>
On Android 5.0 and higher (API 21+), this is equivalent to <a href="#open(java.io.File,boolean)"><code>open(File, boolean)</code></a>.
<br>
On Android 4.4 and lower, the returned stream will do every write operation with a
<code>dd</code> command via the main root shell. <strong>Writing to files through shell
commands is proven to be error prone. YOU HAVE BEEN WARNED!</strong></div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/java/io/FileOutputStream.html?is-external=true#%3Cinit%3E(java.io.File,boolean)" title="class or interface in java.io" class="externalLink"><code>FileOutputStream(File, boolean)</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,538 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SuRandomAccessFile (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SuRandomAccessFile (libsu API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":9,"i3":9,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.topjohnwu.superuser.io</a></div>
<h2 title="Class SuRandomAccessFile" class="title">Class SuRandomAccessFile</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>com.topjohnwu.superuser.io.SuRandomAccessFile</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://developer.android.com/reference/java/io/Closeable.html?is-external=true" title="class or interface in java.io" class="externalLink">Closeable</a></code>, <code><a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true" title="class or interface in java.io" class="externalLink">DataInput</a></code>, <code><a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true" title="class or interface in java.io" class="externalLink">DataOutput</a></code>, <code><a href="https://developer.android.com/reference/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
</dl>
<hr>
<pre>public abstract class <span class="typeNameLabel">SuRandomAccessFile</span>
extends <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
implements <a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true" title="class or interface in java.io" class="externalLink">DataInput</a>, <a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true" title="class or interface in java.io" class="externalLink">DataOutput</a>, <a href="https://developer.android.com/reference/java/io/Closeable.html?is-external=true" title="class or interface in java.io" class="externalLink">Closeable</a></pre>
<div class="block">Access files using the main shell and mimics <a href="https://developer.android.com/reference/java/io/RandomAccessFile.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>RandomAccessFile</code></a>.
<p>
Usage of this class is not recommended. Each I/O operation comes with a large
overhead and depends on certain behavior of the command <code>dd</code>.
<strong>Writing to files through shell commands is proven to be error prone.
YOU HAVE BEEN WARNED!</strong>
Please use <a href="SuFileInputStream.html" title="class in com.topjohnwu.superuser.io"><code>SuFileInputStream</code></a> and <a href="SuFileOutputStream.html" title="class in com.topjohnwu.superuser.io"><code>SuFileOutputStream</code></a> whenever possible.
<p>
This class always checks whether using a shell is necessary. If not, it simply opens a new
<a href="https://developer.android.com/reference/java/io/RandomAccessFile.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>RandomAccessFile</code></a> and behaves as a wrapper. This class has almost the exact same
methods as <a href="https://developer.android.com/reference/java/io/RandomAccessFile.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>RandomAccessFile</code></a> and can be treated as a drop-in replacement.
<p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/java/io/RandomAccessFile.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>RandomAccessFile</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">SuRandomAccessFile</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>abstract long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFilePointer()">getFilePointer</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#length()">length</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io">SuRandomAccessFile</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#open(java.io.File,java.lang.String)">open</a></span>&#8203;(<a href="https://developer.android.com/reference/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&nbsp;file,
<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;mode)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static <a href="SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io">SuRandomAccessFile</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#open(java.lang.String,java.lang.String)">open</a></span>&#8203;(<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;mode)</code></th>
<td class="colLast">
<div class="block"><code>SuRandomAccessFile.open(new File(path), mode)</code></div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>abstract int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#read()">read</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>abstract int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#read(byte%5B%5D)">read</a></span>&#8203;(byte[]&nbsp;b)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>abstract int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#read(byte%5B%5D,int,int)">read</a></span>&#8203;(byte[]&nbsp;b,
int&nbsp;off,
int&nbsp;len)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seek(long)">seek</a></span>&#8203;(long&nbsp;pos)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setLength(long)">setLength</a></span>&#8203;(long&nbsp;newLength)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.io.Closeable">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;java.io.<a href="https://developer.android.com/reference/java/io/Closeable.html?is-external=true" title="class or interface in java.io" class="externalLink">Closeable</a></h3>
<code><a href="https://developer.android.com/reference/java/io/Closeable.html?is-external=true#close()" title="class or interface in java.io" class="externalLink">close</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.io.DataInput">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;java.io.<a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true" title="class or interface in java.io" class="externalLink">DataInput</a></h3>
<code><a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true#readBoolean()" title="class or interface in java.io" class="externalLink">readBoolean</a>, <a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true#readByte()" title="class or interface in java.io" class="externalLink">readByte</a>, <a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true#readChar()" title="class or interface in java.io" class="externalLink">readChar</a>, <a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true#readDouble()" title="class or interface in java.io" class="externalLink">readDouble</a>, <a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true#readFloat()" title="class or interface in java.io" class="externalLink">readFloat</a>, <a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true#readFully(byte%5B%5D)" title="class or interface in java.io" class="externalLink">readFully</a>, <a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true#readFully(byte%5B%5D,int,int)" title="class or interface in java.io" class="externalLink">readFully</a>, <a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true#readInt()" title="class or interface in java.io" class="externalLink">readInt</a>, <a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true#readLine()" title="class or interface in java.io" class="externalLink">readLine</a>, <a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true#readLong()" title="class or interface in java.io" class="externalLink">readLong</a>, <a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true#readShort()" title="class or interface in java.io" class="externalLink">readShort</a>, <a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true#readUnsignedByte()" title="class or interface in java.io" class="externalLink">readUnsignedByte</a>, <a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true#readUnsignedShort()" title="class or interface in java.io" class="externalLink">readUnsignedShort</a>, <a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true#readUTF()" title="class or interface in java.io" class="externalLink">readUTF</a>, <a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true#skipBytes(int)" title="class or interface in java.io" class="externalLink">skipBytes</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.io.DataOutput">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;java.io.<a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true" title="class or interface in java.io" class="externalLink">DataOutput</a></h3>
<code><a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true#write(byte%5B%5D)" title="class or interface in java.io" class="externalLink">write</a>, <a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true#write(byte%5B%5D,int,int)" title="class or interface in java.io" class="externalLink">write</a>, <a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true#write(int)" title="class or interface in java.io" class="externalLink">write</a>, <a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true#writeBoolean(boolean)" title="class or interface in java.io" class="externalLink">writeBoolean</a>, <a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true#writeByte(int)" title="class or interface in java.io" class="externalLink">writeByte</a>, <a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true#writeBytes(java.lang.String)" title="class or interface in java.io" class="externalLink">writeBytes</a>, <a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true#writeChar(int)" title="class or interface in java.io" class="externalLink">writeChar</a>, <a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true#writeChars(java.lang.String)" title="class or interface in java.io" class="externalLink">writeChars</a>, <a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true#writeDouble(double)" title="class or interface in java.io" class="externalLink">writeDouble</a>, <a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true#writeFloat(float)" title="class or interface in java.io" class="externalLink">writeFloat</a>, <a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true#writeInt(int)" title="class or interface in java.io" class="externalLink">writeInt</a>, <a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true#writeLong(long)" title="class or interface in java.io" class="externalLink">writeLong</a>, <a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true#writeShort(int)" title="class or interface in java.io" class="externalLink">writeShort</a>, <a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true#writeUTF(java.lang.String)" title="class or interface in java.io" class="externalLink">writeUTF</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SuRandomAccessFile</h4>
<pre>public&nbsp;SuRandomAccessFile()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="open(java.io.File,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>open</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public static&nbsp;<a href="SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io">SuRandomAccessFile</a>&nbsp;open&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a>&nbsp;file,
<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;mode)
throws <a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>file</code> - the file object.</dd>
<dd><code>mode</code> - the access mode.
Note: <code>rws</code>, <code>rwd</code> behaves exactly the same as <code>rw</code> if
it end up using shell-backed implementation.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an instance of <a href="SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io"><code>SuRandomAccessFile</code></a>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/java/io/RandomAccessFile.html?is-external=true#%3Cinit%3E(java.io.File,java.lang.String)" title="class or interface in java.io" class="externalLink"><code>RandomAccessFile(File, String)</code></a></dd>
</dl>
</li>
</ul>
<a id="open(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>open</h4>
<pre class="methodSignature"><a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
public static&nbsp;<a href="SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io">SuRandomAccessFile</a>&nbsp;open&#8203;(<a href="https://developer.android.com/reference/androidx/annotation/NonNull.html?is-external=true" title="class or interface in androidx.annotation" class="externalLink">@NonNull</a>
<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
<a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;mode)
throws <a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></pre>
<div class="block"><code>SuRandomAccessFile.open(new File(path), mode)</code></div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io" class="externalLink">FileNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a id="read()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>read</h4>
<pre class="methodSignature">public abstract&nbsp;int&nbsp;read()
throws <a href="https://developer.android.com/reference/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/java/io/RandomAccessFile.html?is-external=true#read()" title="class or interface in java.io" class="externalLink"><code>RandomAccessFile.read()</code></a></dd>
</dl>
</li>
</ul>
<a id="read(byte[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>read</h4>
<pre class="methodSignature">public abstract&nbsp;int&nbsp;read&#8203;(byte[]&nbsp;b)
throws <a href="https://developer.android.com/reference/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/java/io/RandomAccessFile.html?is-external=true#read(byte%5B%5D)" title="class or interface in java.io" class="externalLink"><code>RandomAccessFile.read(byte[])</code></a></dd>
</dl>
</li>
</ul>
<a id="read(byte[],int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>read</h4>
<pre class="methodSignature">public abstract&nbsp;int&nbsp;read&#8203;(byte[]&nbsp;b,
int&nbsp;off,
int&nbsp;len)
throws <a href="https://developer.android.com/reference/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/java/io/RandomAccessFile.html?is-external=true#read(byte%5B%5D,int,int)" title="class or interface in java.io" class="externalLink"><code>RandomAccessFile.read(byte[], int, int)</code></a></dd>
</dl>
</li>
</ul>
<a id="seek(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>seek</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;seek&#8203;(long&nbsp;pos)
throws <a href="https://developer.android.com/reference/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/java/io/RandomAccessFile.html?is-external=true#seek(long)" title="class or interface in java.io" class="externalLink"><code>RandomAccessFile.seek(long)</code></a></dd>
</dl>
</li>
</ul>
<a id="setLength(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLength</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;setLength&#8203;(long&nbsp;newLength)
throws <a href="https://developer.android.com/reference/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/java/io/RandomAccessFile.html?is-external=true#seek(long)" title="class or interface in java.io" class="externalLink"><code>RandomAccessFile.seek(long)</code></a></dd>
</dl>
</li>
</ul>
<a id="length()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>length</h4>
<pre class="methodSignature">public abstract&nbsp;long&nbsp;length()
throws <a href="https://developer.android.com/reference/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/java/io/RandomAccessFile.html?is-external=true#length()" title="class or interface in java.io" class="externalLink"><code>RandomAccessFile.length()</code></a></dd>
</dl>
</li>
</ul>
<a id="getFilePointer()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getFilePointer</h4>
<pre class="methodSignature">public abstract&nbsp;long&nbsp;getFilePointer()
throws <a href="https://developer.android.com/reference/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://developer.android.com/reference/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://developer.android.com/reference/java/io/RandomAccessFile.html?is-external=true#getFilePointer()" title="class or interface in java.io" class="externalLink"><code>RandomAccessFile.getFilePointer()</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,181 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>com.topjohnwu.superuser.io (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="com.topjohnwu.superuser.io (libsu API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="Package" class="title">Package&nbsp;com.topjohnwu.superuser.io</h1>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></th>
<td class="colLast">
<div class="block">A <a href="https://developer.android.com/reference/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>File</code></a> implementation using root shell.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SuFileInputStream.html" title="class in com.topjohnwu.superuser.io">SuFileInputStream</a></th>
<td class="colLast">
<div class="block">Open <a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>s that read files with root access.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="SuFileOutputStream.html" title="class in com.topjohnwu.superuser.io">SuFileOutputStream</a></th>
<td class="colLast">
<div class="block">Open <a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>OutputStream</code></a>s that read files with root access.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io">SuRandomAccessFile</a></th>
<td class="colLast">
<div class="block">Access files using the main shell and mimics <a href="https://developer.android.com/reference/java/io/RandomAccessFile.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>RandomAccessFile</code></a>.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,185 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>com.topjohnwu.superuser.io Class Hierarchy (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="com.topjohnwu.superuser.io Class Hierarchy (libsu API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 class="title">Hierarchy For Package com.topjohnwu.superuser.io</h1>
<span class="packageHierarchyLabel">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="../../../../overview-tree.html">All Packages</a></li>
</ul>
</div>
<div class="contentContainer">
<section role="region">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li class="circle">java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
<ul>
<li class="circle">java.io.<a href="https://developer.android.com/reference/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink"><span class="typeNameLink">File</span></a> (implements java.lang.<a href="https://developer.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;T&gt;, java.io.<a href="https://developer.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
<ul>
<li class="circle">com.topjohnwu.superuser.io.<a href="SuFile.html" title="class in com.topjohnwu.superuser.io"><span class="typeNameLink">SuFile</span></a></li>
</ul>
</li>
<li class="circle">java.io.<a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><span class="typeNameLink">InputStream</span></a> (implements java.io.<a href="https://developer.android.com/reference/java/io/Closeable.html?is-external=true" title="class or interface in java.io" class="externalLink">Closeable</a>)
<ul>
<li class="circle">java.io.<a href="https://developer.android.com/reference/java/io/FilterInputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><span class="typeNameLink">FilterInputStream</span></a>
<ul>
<li class="circle">com.topjohnwu.superuser.io.<a href="SuFileInputStream.html" title="class in com.topjohnwu.superuser.io"><span class="typeNameLink">SuFileInputStream</span></a></li>
</ul>
</li>
</ul>
</li>
<li class="circle">java.io.<a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><span class="typeNameLink">OutputStream</span></a> (implements java.io.<a href="https://developer.android.com/reference/java/io/Closeable.html?is-external=true" title="class or interface in java.io" class="externalLink">Closeable</a>, java.io.<a href="https://developer.android.com/reference/java/io/Flushable.html?is-external=true" title="class or interface in java.io" class="externalLink">Flushable</a>)
<ul>
<li class="circle">java.io.<a href="https://developer.android.com/reference/java/io/FilterOutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><span class="typeNameLink">FilterOutputStream</span></a>
<ul>
<li class="circle">java.io.<a href="https://developer.android.com/reference/java/io/BufferedOutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><span class="typeNameLink">BufferedOutputStream</span></a>
<ul>
<li class="circle">com.topjohnwu.superuser.io.<a href="SuFileOutputStream.html" title="class in com.topjohnwu.superuser.io"><span class="typeNameLink">SuFileOutputStream</span></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="circle">com.topjohnwu.superuser.io.<a href="SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io"><span class="typeNameLink">SuRandomAccessFile</span></a> (implements java.io.<a href="https://developer.android.com/reference/java/io/Closeable.html?is-external=true" title="class or interface in java.io" class="externalLink">Closeable</a>, java.io.<a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true" title="class or interface in java.io" class="externalLink">DataInput</a>, java.io.<a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true" title="class or interface in java.io" class="externalLink">DataOutput</a>)</li>
</ul>
</li>
</ul>
</section>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,163 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>com.topjohnwu.superuser.ipc (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="com.topjohnwu.superuser.ipc (libsu API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="Package" class="title">Package&nbsp;com.topjohnwu.superuser.ipc</h1>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="RootService.html" title="class in com.topjohnwu.superuser.ipc">RootService</a></th>
<td class="colLast">
<div class="block">A remote root service using native Android Binder IPC.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,166 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>com.topjohnwu.superuser.ipc Class Hierarchy (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="com.topjohnwu.superuser.ipc Class Hierarchy (libsu API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 class="title">Hierarchy For Package com.topjohnwu.superuser.ipc</h1>
<span class="packageHierarchyLabel">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="../../../../overview-tree.html">All Packages</a></li>
</ul>
</div>
<div class="contentContainer">
<section role="region">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li class="circle">java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
<ul>
<li class="circle">android.content.<a href="https://developer.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content" class="externalLink"><span class="typeNameLink">Context</span></a>
<ul>
<li class="circle">android.content.<a href="https://developer.android.com/reference/android/content/ContextWrapper.html?is-external=true" title="class or interface in android.content" class="externalLink"><span class="typeNameLink">ContextWrapper</span></a>
<ul>
<li class="circle">com.topjohnwu.superuser.ipc.<a href="RootService.html" title="class in com.topjohnwu.superuser.ipc"><span class="typeNameLink">RootService</span></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</section>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,251 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>com.topjohnwu.superuser (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="com.topjohnwu.superuser (libsu API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="Package" class="title">Package&nbsp;com.topjohnwu.superuser</h1>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary">
<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Shell.GetShellCallback.html" title="interface in com.topjohnwu.superuser">Shell.GetShellCallback</a></th>
<td class="colLast">
<div class="block">The callback used in <a href="Shell.html#getShell(com.topjohnwu.superuser.Shell.GetShellCallback)"><code>Shell.getShell(GetShellCallback)</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Shell.ResultCallback.html" title="interface in com.topjohnwu.superuser">Shell.ResultCallback</a></th>
<td class="colLast">
<div class="block">The callback to receive a result in <a href="Shell.Job.html#submit(com.topjohnwu.superuser.Shell.ResultCallback)"><code>Shell.Job.submit(Shell.ResultCallback)</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Shell.Task.html" title="interface in com.topjohnwu.superuser">Shell.Task</a></th>
<td class="colLast">
<div class="block">A task that can be executed by a shell with the method <a href="Shell.html#execTask(com.topjohnwu.superuser.Shell.Task)"><code>Shell.execTask(Task)</code></a>.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="BusyBoxInstaller.html" title="class in com.topjohnwu.superuser">BusyBoxInstaller</a></th>
<td class="colLast">
<div class="block">An initializer that installs and setup the bundled BusyBox.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="CallbackList.html" title="class in com.topjohnwu.superuser">CallbackList</a>&lt;E&gt;</th>
<td class="colLast">
<div class="block">An <a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>AbstractList</code></a> that calls <code>onAddElement</code> when a new element is added to the list.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Shell.html" title="class in com.topjohnwu.superuser">Shell</a></th>
<td class="colLast">
<div class="block">A class providing APIs to an interactive (root) shell.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a></th>
<td class="colLast">
<div class="block">Builder class for <a href="Shell.html" title="class in com.topjohnwu.superuser"><code>Shell</code></a> objects.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Shell.Initializer.html" title="class in com.topjohnwu.superuser">Shell.Initializer</a></th>
<td class="colLast">
<div class="block">The initializer when a new <code>Shell</code> is constructed.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a></th>
<td class="colLast">
<div class="block">Represents a shell Job that could later be executed or submitted to background threads.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="Shell.Result.html" title="class in com.topjohnwu.superuser">Shell.Result</a></th>
<td class="colLast">
<div class="block">The result of a <a href="Shell.Job.html" title="class in com.topjohnwu.superuser"><code>Shell.Job</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><a href="ShellUtils.html" title="class in com.topjohnwu.superuser">ShellUtils</a></th>
<td class="colLast">
<div class="block">Some handy utility methods that are used in <code>libsu</code>.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary">
<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Exception</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<th class="colFirst" scope="row"><a href="NoShellException.html" title="class in com.topjohnwu.superuser">NoShellException</a></th>
<td class="colLast">
<div class="block">Thrown when it is impossible to construct <code>Shell</code>.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

View File

@ -0,0 +1,197 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>com.topjohnwu.superuser Class Hierarchy (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="com.topjohnwu.superuser Class Hierarchy (libsu API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 class="title">Hierarchy For Package com.topjohnwu.superuser</h1>
<span class="packageHierarchyLabel">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="../../../overview-tree.html">All Packages</a></li>
</ul>
</div>
<div class="contentContainer">
<section role="region">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li class="circle">java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
<ul>
<li class="circle">java.util.<a href="https://developer.android.com/reference/java/util/AbstractCollection.html?is-external=true" title="class or interface in java.util" class="externalLink"><span class="typeNameLink">AbstractCollection</span></a>&lt;E&gt; (implements java.util.<a href="https://developer.android.com/reference/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;E&gt;)
<ul>
<li class="circle">java.util.<a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink"><span class="typeNameLink">AbstractList</span></a>&lt;E&gt; (implements java.util.<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;E&gt;)
<ul>
<li class="circle">com.topjohnwu.superuser.<a href="CallbackList.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">CallbackList</span></a>&lt;E&gt;</li>
</ul>
</li>
</ul>
</li>
<li class="circle">com.topjohnwu.superuser.<a href="Shell.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">Shell</span></a> (implements java.io.<a href="https://developer.android.com/reference/java/io/Closeable.html?is-external=true" title="class or interface in java.io" class="externalLink">Closeable</a>)</li>
<li class="circle">com.topjohnwu.superuser.<a href="Shell.Builder.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">Shell.Builder</span></a></li>
<li class="circle">com.topjohnwu.superuser.<a href="Shell.Initializer.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">Shell.Initializer</span></a>
<ul>
<li class="circle">com.topjohnwu.superuser.<a href="BusyBoxInstaller.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">BusyBoxInstaller</span></a></li>
</ul>
</li>
<li class="circle">com.topjohnwu.superuser.<a href="Shell.Job.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">Shell.Job</span></a></li>
<li class="circle">com.topjohnwu.superuser.<a href="Shell.Result.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">Shell.Result</span></a></li>
<li class="circle">com.topjohnwu.superuser.<a href="ShellUtils.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">ShellUtils</span></a></li>
<li class="circle">java.lang.<a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="https://developer.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
<ul>
<li class="circle">java.lang.<a href="https://developer.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Exception</span></a>
<ul>
<li class="circle">java.lang.<a href="https://developer.android.com/reference/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">RuntimeException</span></a>
<ul>
<li class="circle">com.topjohnwu.superuser.<a href="NoShellException.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">NoShellException</span></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</section>
<section role="region">
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
<ul>
<li class="circle">com.topjohnwu.superuser.<a href="Shell.GetShellCallback.html" title="interface in com.topjohnwu.superuser"><span class="typeNameLink">Shell.GetShellCallback</span></a></li>
<li class="circle">com.topjohnwu.superuser.<a href="Shell.ResultCallback.html" title="interface in com.topjohnwu.superuser"><span class="typeNameLink">Shell.ResultCallback</span></a></li>
<li class="circle">com.topjohnwu.superuser.<a href="Shell.Task.html" title="interface in com.topjohnwu.superuser"><span class="typeNameLink">Shell.Task</span></a></li>
</ul>
</section>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

237
constant-values.html Normal file
View File

@ -0,0 +1,237 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Constant Field Values (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Constant Field Values (libsu API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "./";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
<section role="region">
<h2 title="Contents">Contents</h2>
<ul>
<li><a href="#com.topjohnwu">com.topjohnwu.*</a></li>
</ul>
</section>
</div>
<div class="constantValuesContainer"><a id="com.topjohnwu">
<!-- -->
</a>
<section role="region">
<h2 title="com.topjohnwu">com.topjohnwu.*</h2>
<ul class="blockList">
<li class="blockList">
<table class="constantsSummary">
<caption><span>com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Constant Field</th>
<th class="colLast" scope="col">Value</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a id="com.topjohnwu.superuser.Shell.FLAG_MOUNT_MASTER">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
<th class="colSecond" scope="row"><code><a href="com/topjohnwu/superuser/Shell.html#FLAG_MOUNT_MASTER">FLAG_MOUNT_MASTER</a></code></th>
<td class="colLast"><code>2</code></td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a id="com.topjohnwu.superuser.Shell.FLAG_NON_ROOT_SHELL">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
<th class="colSecond" scope="row"><code><a href="com/topjohnwu/superuser/Shell.html#FLAG_NON_ROOT_SHELL">FLAG_NON_ROOT_SHELL</a></code></th>
<td class="colLast"><code>1</code></td>
</tr>
<tr class="altColor">
<td class="colFirst"><a id="com.topjohnwu.superuser.Shell.FLAG_REDIRECT_STDERR">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
<th class="colSecond" scope="row"><code><a href="com/topjohnwu/superuser/Shell.html#FLAG_REDIRECT_STDERR">FLAG_REDIRECT_STDERR</a></code></th>
<td class="colLast"><code>8</code></td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a id="com.topjohnwu.superuser.Shell.NON_ROOT_SHELL">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
<th class="colSecond" scope="row"><code><a href="com/topjohnwu/superuser/Shell.html#NON_ROOT_SHELL">NON_ROOT_SHELL</a></code></th>
<td class="colLast"><code>0</code></td>
</tr>
<tr class="altColor">
<td class="colFirst"><a id="com.topjohnwu.superuser.Shell.ROOT_MOUNT_MASTER">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
<th class="colSecond" scope="row"><code><a href="com/topjohnwu/superuser/Shell.html#ROOT_MOUNT_MASTER">ROOT_MOUNT_MASTER</a></code></th>
<td class="colLast"><code>2</code></td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a id="com.topjohnwu.superuser.Shell.ROOT_SHELL">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
<th class="colSecond" scope="row"><code><a href="com/topjohnwu/superuser/Shell.html#ROOT_SHELL">ROOT_SHELL</a></code></th>
<td class="colLast"><code>1</code></td>
</tr>
<tr class="altColor">
<td class="colFirst"><a id="com.topjohnwu.superuser.Shell.UNKNOWN">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
<th class="colSecond" scope="row"><code><a href="com/topjohnwu/superuser/Shell.html#UNKNOWN">UNKNOWN</a></code></th>
<td class="colLast"><code>-1</code></td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="constantsSummary">
<caption><span>com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Result.html" title="class in com.topjohnwu.superuser">Shell.Result</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Constant Field</th>
<th class="colLast" scope="col">Value</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a id="com.topjohnwu.superuser.Shell.Result.JOB_NOT_EXECUTED">
<!-- -->
</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
<th class="colSecond" scope="row"><code><a href="com/topjohnwu/superuser/Shell.Result.html#JOB_NOT_EXECUTED">JOB_NOT_EXECUTED</a></code></th>
<td class="colLast"><code>-1</code></td>
</tr>
</tbody>
</table>
</li>
</ul>
</section>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

3
element-list Normal file
View File

@ -0,0 +1,3 @@
com.topjohnwu.superuser
com.topjohnwu.superuser.io
com.topjohnwu.superuser.ipc

263
help-doc.html Normal file
View File

@ -0,0 +1,263 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>API Help (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="API Help (libsu API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "./";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="index-all.html">Index</a></li>
<li class="navBarCell1Rev">Help</li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 class="title">How This API Document Is Organized</h1>
<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<section role="region">
<h2>Overview</h2>
<p>The <a href="index.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.</p>
</section>
</li>
<li class="blockList">
<section role="region">
<h2>Package</h2>
<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:</p>
<ul>
<li>Interfaces</li>
<li>Classes</li>
<li>Enums</li>
<li>Exceptions</li>
<li>Errors</li>
<li>Annotation Types</li>
</ul>
</section>
</li>
<li class="blockList">
<section role="region">
<h2>Class or Interface</h2>
<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
<ul>
<li>Class Inheritance Diagram</li>
<li>Direct Subclasses</li>
<li>All Known Subinterfaces</li>
<li>All Known Implementing Classes</li>
<li>Class or Interface Declaration</li>
<li>Class or Interface Description</li>
</ul>
<br>
<ul>
<li>Nested Class Summary</li>
<li>Field Summary</li>
<li>Property Summary</li>
<li>Constructor Summary</li>
<li>Method Summary</li>
</ul>
<br>
<ul>
<li>Field Detail</li>
<li>Property Detail</li>
<li>Constructor Detail</li>
<li>Method Detail</li>
</ul>
<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
</section>
</li>
<li class="blockList">
<section role="region">
<h2>Annotation Type</h2>
<p>Each annotation type has its own separate page with the following sections:</p>
<ul>
<li>Annotation Type Declaration</li>
<li>Annotation Type Description</li>
<li>Required Element Summary</li>
<li>Optional Element Summary</li>
<li>Element Detail</li>
</ul>
</section>
</li>
<li class="blockList">
<section role="region">
<h2>Enum</h2>
<p>Each enum has its own separate page with the following sections:</p>
<ul>
<li>Enum Declaration</li>
<li>Enum Description</li>
<li>Enum Constant Summary</li>
<li>Enum Constant Detail</li>
</ul>
</section>
</li>
<li class="blockList">
<section role="region">
<h2>Tree (Class Hierarchy)</h2>
<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with <code>java.lang.Object</code>. Interfaces do not inherit from <code>java.lang.Object</code>.</p>
<ul>
<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
<li>When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.</li>
</ul>
</section>
</li>
<li class="blockList">
<section role="region">
<h2>Index</h2>
<p>The <a href="index-all.html">Index</a> contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.</p>
</section>
</li>
<li class="blockList">
<section role="region">
<h2>All&nbsp;Classes</h2>
<p>The <a href="allclasses.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
</section>
</li>
<li class="blockList">
<section role="region">
<h2>Serialized Form</h2>
<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
</section>
</li>
<li class="blockList">
<section role="region">
<h2>Constant Field Values</h2>
<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
</section>
</li>
<li class="blockList">
<section role="region">
<h2>Search</h2>
<p>You can search for definitions of modules, packages, types, fields, methods and other terms defined in the API, using some or all of the name. "Camel-case" abbreviations are supported: for example, "InpStr" will find "InputStream" and "InputStreamReader".</p>
</section>
</li>
</ul>
<hr>
<span class="emphasizedPhrase">This help file applies to API documentation generated by the standard doclet.</span></div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="index-all.html">Index</a></li>
<li class="navBarCell1Rev">Help</li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

871
index-all.html Normal file
View File

@ -0,0 +1,871 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Index (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Index (libsu API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "./";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="contentContainer"><a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:W">W</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a>&nbsp;<a href="allpackages-index.html">All&nbsp;Packages</a><a id="I:A">
<!-- -->
</a>
<h2 class="title">A</h2>
<dl>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/CallbackList.html#add(int,E)">add(int, E)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/CallbackList.html" title="class in com.topjohnwu.superuser">CallbackList</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Job.html#add(java.io.InputStream)">add(InputStream)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a></dt>
<dd>
<div class="block">Add a new operation serving an InputStream to STDIN.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Job.html#add(java.lang.String...)">add(String...)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a></dt>
<dd>
<div class="block">Add a new operation running commands.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ipc/RootService.html#attachBaseContext(android.content.Context)">attachBaseContext(Context)</a></span> - Method in class com.topjohnwu.superuser.ipc.<a href="com/topjohnwu/superuser/ipc/RootService.html" title="class in com.topjohnwu.superuser.ipc">RootService</a></dt>
<dd>&nbsp;</dd>
</dl>
<a id="I:B">
<!-- -->
</a>
<h2 class="title">B</h2>
<dl>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ipc/RootService.html#bind(android.content.Intent,android.content.ServiceConnection)">bind(Intent, ServiceConnection)</a></span> - Static method in class com.topjohnwu.superuser.ipc.<a href="com/topjohnwu/superuser/ipc/RootService.html" title="class in com.topjohnwu.superuser.ipc">RootService</a></dt>
<dd>
<div class="block">Connect to a root service, creating if needed.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ipc/RootService.html#bind(android.content.Intent,java.util.concurrent.Executor,android.content.ServiceConnection)">bind(Intent, Executor, ServiceConnection)</a></span> - Static method in class com.topjohnwu.superuser.ipc.<a href="com/topjohnwu/superuser/ipc/RootService.html" title="class in com.topjohnwu.superuser.ipc">RootService</a></dt>
<dd>
<div class="block">Connect to a root service, creating if needed.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Builder.html#build()">build()</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a></dt>
<dd>
<div class="block">Combine all of the options that have been set and build a new <code>Shell</code> instance
with the default methods.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Builder.html#build(java.lang.String...)">build(String...)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a></dt>
<dd>
<div class="block">Combine all of the options that have been set and build a new <code>Shell</code> instance
with the provided commands.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Builder.html#%3Cinit%3E()">Builder()</a></span> - Constructor for class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a></dt>
<dd>&nbsp;</dd>
<dt><a href="com/topjohnwu/superuser/BusyBoxInstaller.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">BusyBoxInstaller</span></a> - Class in <a href="com/topjohnwu/superuser/package-summary.html">com.topjohnwu.superuser</a></dt>
<dd>
<div class="block">An initializer that installs and setup the bundled BusyBox.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/BusyBoxInstaller.html#%3Cinit%3E()">BusyBoxInstaller()</a></span> - Constructor for class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/BusyBoxInstaller.html" title="class in com.topjohnwu.superuser">BusyBoxInstaller</a></dt>
<dd>&nbsp;</dd>
</dl>
<a id="I:C">
<!-- -->
</a>
<h2 class="title">C</h2>
<dl>
<dt><a href="com/topjohnwu/superuser/CallbackList.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">CallbackList</span></a>&lt;<a href="com/topjohnwu/superuser/CallbackList.html" title="type parameter in CallbackList">E</a>&gt; - Class in <a href="com/topjohnwu/superuser/package-summary.html">com.topjohnwu.superuser</a></dt>
<dd>
<div class="block">An <a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>AbstractList</code></a> that calls <code>onAddElement</code> when a new element is added to the list.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/CallbackList.html#%3Cinit%3E()">CallbackList()</a></span> - Constructor for class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/CallbackList.html" title="class in com.topjohnwu.superuser">CallbackList</a></dt>
<dd>
<div class="block"><a href="com/topjohnwu/superuser/CallbackList.html#onAddElement(E)"><code>CallbackList.onAddElement(Object)</code></a> runs on the main thread; no backing list.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/CallbackList.html#%3Cinit%3E(java.util.concurrent.Executor)">CallbackList(Executor)</a></span> - Constructor for class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/CallbackList.html" title="class in com.topjohnwu.superuser">CallbackList</a></dt>
<dd>
<div class="block"><a href="com/topjohnwu/superuser/CallbackList.html#onAddElement(E)"><code>CallbackList.onAddElement(Object)</code></a> runs with the executor; no backing list.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/CallbackList.html#%3Cinit%3E(java.util.concurrent.Executor,java.util.List)">CallbackList(Executor, List&lt;E&gt;)</a></span> - Constructor for class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/CallbackList.html" title="class in com.topjohnwu.superuser">CallbackList</a></dt>
<dd>
<div class="block"><a href="com/topjohnwu/superuser/CallbackList.html#onAddElement(E)"><code>CallbackList.onAddElement(Object)</code></a> runs with the executor; sets a backing list.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/CallbackList.html#%3Cinit%3E(java.util.List)">CallbackList(List&lt;E&gt;)</a></span> - Constructor for class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/CallbackList.html" title="class in com.topjohnwu.superuser">CallbackList</a></dt>
<dd>
<div class="block"><a href="com/topjohnwu/superuser/CallbackList.html#onAddElement(E)"><code>CallbackList.onAddElement(Object)</code></a> runs on the main thread; sets a backing list.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#canExecute()">canExecute()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#canRead()">canRead()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#canWrite()">canWrite()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ShellUtils.html#cleanInputStream(java.io.InputStream)">cleanInputStream(InputStream)</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/ShellUtils.html" title="class in com.topjohnwu.superuser">ShellUtils</a></dt>
<dd>
<div class="block">Discard all data currently available in an <a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#clear()">clear()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Clear the content of the file denoted by this abstract pathname.</div>
</dd>
<dt><a href="com/topjohnwu/superuser/package-summary.html">com.topjohnwu.superuser</a> - package com.topjohnwu.superuser</dt>
<dd>&nbsp;</dd>
<dt><a href="com/topjohnwu/superuser/io/package-summary.html">com.topjohnwu.superuser.io</a> - package com.topjohnwu.superuser.io</dt>
<dd>&nbsp;</dd>
<dt><a href="com/topjohnwu/superuser/ipc/package-summary.html">com.topjohnwu.superuser.ipc</a> - package com.topjohnwu.superuser.ipc</dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Builder.html#create()">create()</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a></dt>
<dd>
<div class="block">Create a new <a href="com/topjohnwu/superuser/Shell.Builder.html" title="class in com.topjohnwu.superuser"><code>Shell.Builder</code></a>.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#createNewFile()">createNewFile()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
</dl>
<a id="I:D">
<!-- -->
</a>
<h2 class="title">D</h2>
<dl>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#delete()">delete()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Deletes the file or directory denoted by this abstract pathname.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#deleteOnExit()">deleteOnExit()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Unsupported</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#deleteRecursive()">deleteRecursive()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Deletes the file or directory denoted by this abstract pathname.</div>
</dd>
</dl>
<a id="I:E">
<!-- -->
</a>
<h2 class="title">E</h2>
<dl>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#enableVerboseLogging">enableVerboseLogging</a></span> - Static variable in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Set to <code>true</code> to enable verbose logging throughout the library.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ShellUtils.html#escapedString(java.lang.String)">escapedString(String)</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/ShellUtils.html" title="class in com.topjohnwu.superuser">ShellUtils</a></dt>
<dd>
<div class="block">Format string to quoted and escaped string suitable for shell commands.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Job.html#exec()">exec()</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a></dt>
<dd>
<div class="block">Execute the job immediately and returns the result.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#execTask(com.topjohnwu.superuser.Shell.Task)">execTask(Shell.Task)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Execute a low-level <a href="com/topjohnwu/superuser/Shell.Task.html" title="interface in com.topjohnwu.superuser"><code>Shell.Task</code></a> using the shell.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#EXECUTOR">EXECUTOR</a></span> - Static variable in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">The <a href="https://developer.android.com/reference/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutorService</code></a> that manages all worker threads used in <code>libsu</code>.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#exists()">exists()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
</dl>
<a id="I:F">
<!-- -->
</a>
<h2 class="title">F</h2>
<dl>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ShellUtils.html#fastCmd(com.topjohnwu.superuser.Shell,java.lang.String...)">fastCmd(Shell, String...)</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/ShellUtils.html" title="class in com.topjohnwu.superuser">ShellUtils</a></dt>
<dd>
<div class="block">Run commands and get a single line output.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ShellUtils.html#fastCmd(java.lang.String...)">fastCmd(String...)</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/ShellUtils.html" title="class in com.topjohnwu.superuser">ShellUtils</a></dt>
<dd>
<div class="block">Run commands with the main shell and get a single line output.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ShellUtils.html#fastCmdResult(com.topjohnwu.superuser.Shell,java.lang.String...)">fastCmdResult(Shell, String...)</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/ShellUtils.html" title="class in com.topjohnwu.superuser">ShellUtils</a></dt>
<dd>
<div class="block">Run commands and return whether exits with 0 (success).</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ShellUtils.html#fastCmdResult(java.lang.String...)">fastCmdResult(String...)</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/ShellUtils.html" title="class in com.topjohnwu.superuser">ShellUtils</a></dt>
<dd>
<div class="block">Run commands with the main shell and return whether exits with 0 (success).</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#FLAG_MOUNT_MASTER">FLAG_MOUNT_MASTER</a></span> - Static variable in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">If set, create a root shell with the <code>--mount-master</code> option.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#FLAG_NON_ROOT_SHELL">FLAG_NON_ROOT_SHELL</a></span> - Static variable in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">If set, create a non-root shell.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#FLAG_REDIRECT_STDERR">FLAG_REDIRECT_STDERR</a></span> - Static variable in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">If set, STDERR outputs will be redirected to STDOUT outputs.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Builder.html#flags">flags</a></span> - Variable in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a></dt>
<dd>&nbsp;</dd>
</dl>
<a id="I:G">
<!-- -->
</a>
<h2 class="title">G</h2>
<dl>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ShellUtils.html#gcd(long,long)">gcd(long, long)</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/ShellUtils.html" title="class in com.topjohnwu.superuser">ShellUtils</a></dt>
<dd>
<div class="block">Get the greatest common divisor of 2 integers with binary algorithm.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/CallbackList.html#get(int)">get(int)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/CallbackList.html" title="class in com.topjohnwu.superuser">CallbackList</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#getAbsoluteFile()">getAbsoluteFile()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#getAbsolutePath()">getAbsolutePath()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ipc/RootService.html#getApplicationContext()">getApplicationContext()</a></span> - Method in class com.topjohnwu.superuser.ipc.<a href="com/topjohnwu/superuser/ipc/RootService.html" title="class in com.topjohnwu.superuser.ipc">RootService</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#getCachedShell()">getCachedShell()</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Get the cached main shell.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#getCanonicalFile()">getCanonicalFile()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Returns the canonical form of this abstract pathname.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#getCanonicalPath()">getCanonicalPath()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Returns the canonical pathname string of this abstract pathname.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Result.html#getCode()">getCode()</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Result.html" title="class in com.topjohnwu.superuser">Shell.Result</a></dt>
<dd>
<div class="block">Get the return code of the job.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ipc/RootService.html#getComponentName()">getComponentName()</a></span> - Method in class com.topjohnwu.superuser.ipc.<a href="com/topjohnwu/superuser/ipc/RootService.html" title="class in com.topjohnwu.superuser.ipc">RootService</a></dt>
<dd>
<div class="block">Return the component name that will be used for service lookup.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Result.html#getErr()">getErr()</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Result.html" title="class in com.topjohnwu.superuser">Shell.Result</a></dt>
<dd>
<div class="block">Get the output of STDERR.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#getEscapedPath()">getEscapedPath()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Converts this abstract pathname into a pathname string suitable
for shell commands.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html#getFilePointer()">getFilePointer()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io">SuRandomAccessFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#getFreeSpace()">getFreeSpace()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Returns the number of unallocated bytes in the partition.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Result.html#getOut()">getOut()</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Result.html" title="class in com.topjohnwu.superuser">Shell.Result</a></dt>
<dd>
<div class="block">Get the output of STDOUT.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#getParentFile()">getParentFile()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#getShell()">getShell()</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Get the main shell instance.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#getShell(com.topjohnwu.superuser.Shell.GetShellCallback)">getShell(Shell.GetShellCallback)</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Get the main shell instance asynchronously via a callback.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#getShell(java.util.concurrent.Executor,com.topjohnwu.superuser.Shell.GetShellCallback)">getShell(Executor, Shell.GetShellCallback)</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Get the main shell instance asynchronously via a callback.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#getStatus()">getStatus()</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Get the status of the shell.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#getTotalSpace()">getTotalSpace()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Returns the size of the partition.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#getUsableSpace()">getUsableSpace()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Returns the number of bytes available to this process on the partition.</div>
</dd>
</dl>
<a id="I:I">
<!-- -->
</a>
<h2 class="title">I</h2>
<dl>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Builder.html#initClasses">initClasses</a></span> - Variable in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Initializer.html#%3Cinit%3E()">Initializer()</a></span> - Constructor for class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Initializer.html" title="class in com.topjohnwu.superuser">Shell.Initializer</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#isAlive()">isAlive()</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Return whether the shell is still alive.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#isBlock()">isBlock()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#isCharacter()">isCharacter()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#isDirectory()">isDirectory()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#isFile()">isFile()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#isRoot()">isRoot()</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Return whether the shell has root access.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Result.html#isSuccess()">isSuccess()</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Result.html" title="class in com.topjohnwu.superuser">Shell.Result</a></dt>
<dd>
<div class="block">Whether the job succeeded.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#isSymlink()">isSymlink()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ShellUtils.html#isValidOutput(java.util.List)">isValidOutput(List&lt;String&gt;)</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/ShellUtils.html" title="class in com.topjohnwu.superuser">ShellUtils</a></dt>
<dd>
<div class="block">Test whether the list is <code>null</code> or empty or all elements are empty strings.</div>
</dd>
</dl>
<a id="I:J">
<!-- -->
</a>
<h2 class="title">J</h2>
<dl>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Job.html#%3Cinit%3E()">Job()</a></span> - Constructor for class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Result.html#JOB_NOT_EXECUTED">JOB_NOT_EXECUTED</a></span> - Static variable in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Result.html" title="class in com.topjohnwu.superuser">Shell.Result</a></dt>
<dd>
<div class="block">This code indicates that the job was not executed, and the outputs are all empty.</div>
</dd>
</dl>
<a id="I:L">
<!-- -->
</a>
<h2 class="title">L</h2>
<dl>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#lastModified()">lastModified()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Returns the time that the file denoted by this abstract pathname was
last modified.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#length()">length()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Returns the length of the file denoted by this abstract pathname.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html#length()">length()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io">SuRandomAccessFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#list()">list()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Returns an array of strings naming the files and directories in the
directory denoted by this abstract pathname.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#list(java.io.FilenameFilter)">list(FilenameFilter)</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Returns an array of strings naming the files and directories in the
directory denoted by this abstract pathname that satisfy the specified filter.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#listFiles()">listFiles()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Returns an array of abstract pathnames denoting the files in the
directory denoted by this abstract pathname.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#listFiles(java.io.FileFilter)">listFiles(FileFilter)</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Returns an array of abstract pathnames denoting the files in the
directory denoted by this abstract pathname that satisfy the specified filter.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#listFiles(java.io.FilenameFilter)">listFiles(FilenameFilter)</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Returns an array of abstract pathnames denoting the files in the
directory denoted by this abstract pathname that satisfy the specified filter.</div>
</dd>
</dl>
<a id="I:M">
<!-- -->
</a>
<h2 class="title">M</h2>
<dl>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/CallbackList.html#mBase">mBase</a></span> - Variable in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/CallbackList.html" title="class in com.topjohnwu.superuser">CallbackList</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/CallbackList.html#mExecutor">mExecutor</a></span> - Variable in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/CallbackList.html" title="class in com.topjohnwu.superuser">CallbackList</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#mkdir()">mkdir()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Creates the directory named by this abstract pathname.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#mkdirs()">mkdirs()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Creates the directory named by this abstract pathname, including any
necessary but nonexistent parent directories.</div>
</dd>
</dl>
<a id="I:N">
<!-- -->
</a>
<h2 class="title">N</h2>
<dl>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#newJob()">newJob()</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Construct a new <a href="com/topjohnwu/superuser/Shell.Job.html" title="class in com.topjohnwu.superuser"><code>Shell.Job</code></a> that uses the shell for execution.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#NON_ROOT_SHELL">NON_ROOT_SHELL</a></span> - Static variable in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Shell status: Non-root shell.</div>
</dd>
<dt><a href="com/topjohnwu/superuser/NoShellException.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">NoShellException</span></a> - Exception in <a href="com/topjohnwu/superuser/package-summary.html">com.topjohnwu.superuser</a></dt>
<dd>
<div class="block">Thrown when it is impossible to construct <code>Shell</code>.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/NoShellException.html#%3Cinit%3E(java.lang.String)">NoShellException(String)</a></span> - Constructor for exception com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/NoShellException.html" title="class in com.topjohnwu.superuser">NoShellException</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/NoShellException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">NoShellException(String, Throwable)</a></span> - Constructor for exception com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/NoShellException.html" title="class in com.topjohnwu.superuser">NoShellException</a></dt>
<dd>&nbsp;</dd>
</dl>
<a id="I:O">
<!-- -->
</a>
<h2 class="title">O</h2>
<dl>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/CallbackList.html#onAddElement(E)">onAddElement(E)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/CallbackList.html" title="class in com.topjohnwu.superuser">CallbackList</a></dt>
<dd>
<div class="block">The callback when a new element is added.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ipc/RootService.html#onBind(android.content.Intent)">onBind(Intent)</a></span> - Method in class com.topjohnwu.superuser.ipc.<a href="com/topjohnwu/superuser/ipc/RootService.html" title="class in com.topjohnwu.superuser.ipc">RootService</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ipc/RootService.html#onCreate()">onCreate()</a></span> - Method in class com.topjohnwu.superuser.ipc.<a href="com/topjohnwu/superuser/ipc/RootService.html" title="class in com.topjohnwu.superuser.ipc">RootService</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ipc/RootService.html#onDestroy()">onDestroy()</a></span> - Method in class com.topjohnwu.superuser.ipc.<a href="com/topjohnwu/superuser/ipc/RootService.html" title="class in com.topjohnwu.superuser.ipc">RootService</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/BusyBoxInstaller.html#onInit(android.content.Context,com.topjohnwu.superuser.Shell)">onInit(Context, Shell)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/BusyBoxInstaller.html" title="class in com.topjohnwu.superuser">BusyBoxInstaller</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Initializer.html#onInit(android.content.Context,com.topjohnwu.superuser.Shell)">onInit(Context, Shell)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Initializer.html" title="class in com.topjohnwu.superuser">Shell.Initializer</a></dt>
<dd>
<div class="block">Called when a new shell is constructed.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ShellUtils.html#onMainThread()">onMainThread()</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/ShellUtils.html" title="class in com.topjohnwu.superuser">ShellUtils</a></dt>
<dd>
<div class="block">Check if current thread is main thread.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ipc/RootService.html#onRebind(android.content.Intent)">onRebind(Intent)</a></span> - Method in class com.topjohnwu.superuser.ipc.<a href="com/topjohnwu/superuser/ipc/RootService.html" title="class in com.topjohnwu.superuser.ipc">RootService</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.ResultCallback.html#onResult(com.topjohnwu.superuser.Shell.Result)">onResult(Shell.Result)</a></span> - Method in interface com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.ResultCallback.html" title="interface in com.topjohnwu.superuser">Shell.ResultCallback</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.GetShellCallback.html#onShell(com.topjohnwu.superuser.Shell)">onShell(Shell)</a></span> - Method in interface com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.GetShellCallback.html" title="interface in com.topjohnwu.superuser">Shell.GetShellCallback</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ipc/RootService.html#onUnbind(android.content.Intent)">onUnbind(Intent)</a></span> - Method in class com.topjohnwu.superuser.ipc.<a href="com/topjohnwu/superuser/ipc/RootService.html" title="class in com.topjohnwu.superuser.ipc">RootService</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFileInputStream.html#open(java.io.File)">open(File)</a></span> - Static method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFileInputStream.html" title="class in com.topjohnwu.superuser.io">SuFileInputStream</a></dt>
<dd>
<div class="block">Open an <a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a> with root access.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFileOutputStream.html#open(java.io.File)">open(File)</a></span> - Static method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFileOutputStream.html" title="class in com.topjohnwu.superuser.io">SuFileOutputStream</a></dt>
<dd>
<div class="block"><code>SuFileOutputStream.open(file, false)</code></div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFileOutputStream.html#open(java.io.File,boolean)">open(File, boolean)</a></span> - Static method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFileOutputStream.html" title="class in com.topjohnwu.superuser.io">SuFileOutputStream</a></dt>
<dd>
<div class="block">Open an <a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>OutputStream</code></a> with root access.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#open(java.io.File,java.lang.String)">open(File, String)</a></span> - Static method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html#open(java.io.File,java.lang.String)">open(File, String)</a></span> - Static method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io">SuRandomAccessFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#open(java.lang.String)">open(String)</a></span> - Static method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFileInputStream.html#open(java.lang.String)">open(String)</a></span> - Static method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFileInputStream.html" title="class in com.topjohnwu.superuser.io">SuFileInputStream</a></dt>
<dd>
<div class="block"><code>SuFileInputStream.open(new File(path))</code></div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFileOutputStream.html#open(java.lang.String)">open(String)</a></span> - Static method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFileOutputStream.html" title="class in com.topjohnwu.superuser.io">SuFileOutputStream</a></dt>
<dd>
<div class="block"><code>SuFileOutputStream.open(new File(path), false)</code></div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFileOutputStream.html#open(java.lang.String,boolean)">open(String, boolean)</a></span> - Static method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFileOutputStream.html" title="class in com.topjohnwu.superuser.io">SuFileOutputStream</a></dt>
<dd>
<div class="block"><code>SuFileOutputStream.open(new File(path), append)</code></div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#open(java.lang.String,java.lang.String)">open(String, String)</a></span> - Static method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html#open(java.lang.String,java.lang.String)">open(String, String)</a></span> - Static method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io">SuRandomAccessFile</a></dt>
<dd>
<div class="block"><code>SuRandomAccessFile.open(new File(path), mode)</code></div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#open(java.net.URI)">open(URI)</a></span> - Static method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFileOutputStream.html#openNoCopy(java.io.File)">openNoCopy(File)</a></span> - Static method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFileOutputStream.html" title="class in com.topjohnwu.superuser.io">SuFileOutputStream</a></dt>
<dd>
<div class="block"><code>SuFileOutputStream.openNoCopy(file, false)</code></div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFileOutputStream.html#openNoCopy(java.io.File,boolean)">openNoCopy(File, boolean)</a></span> - Static method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFileOutputStream.html" title="class in com.topjohnwu.superuser.io">SuFileOutputStream</a></dt>
<dd>
<div class="block">Open an <a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>OutputStream</code></a> with root access (no internal copying).</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFileOutputStream.html#openNoCopy(java.lang.String)">openNoCopy(String)</a></span> - Static method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFileOutputStream.html" title="class in com.topjohnwu.superuser.io">SuFileOutputStream</a></dt>
<dd>
<div class="block"><code>SuFileOutputStream.openNoCopy(new File(path), false)</code></div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFileOutputStream.html#openNoCopy(java.lang.String,boolean)">openNoCopy(String, boolean)</a></span> - Static method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFileOutputStream.html" title="class in com.topjohnwu.superuser.io">SuFileOutputStream</a></dt>
<dd>
<div class="block"><code>SuFileOutputStream.openNoCopy(new File(path), append)</code></div>
</dd>
</dl>
<a id="I:R">
<!-- -->
</a>
<h2 class="title">R</h2>
<dl>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html#read()">read()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io">SuRandomAccessFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html#read(byte%5B%5D)">read(byte[])</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io">SuRandomAccessFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html#read(byte%5B%5D,int,int)">read(byte[], int, int)</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io">SuRandomAccessFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/CallbackList.html#remove(int)">remove(int)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/CallbackList.html" title="class in com.topjohnwu.superuser">CallbackList</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#renameTo(java.io.File)">renameTo(File)</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Renames the file denoted by this abstract pathname.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Result.html#%3Cinit%3E()">Result()</a></span> - Constructor for class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Result.html" title="class in com.topjohnwu.superuser">Shell.Result</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#ROOT_MOUNT_MASTER">ROOT_MOUNT_MASTER</a></span> - Static variable in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Shell status: Root shell with mount master enabled.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#ROOT_SHELL">ROOT_SHELL</a></span> - Static variable in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Shell status: Root shell.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#rootAccess()">rootAccess()</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block"><code>Shell.getShell().isRoot()</code></div>
</dd>
<dt><a href="com/topjohnwu/superuser/ipc/RootService.html" title="class in com.topjohnwu.superuser.ipc"><span class="typeNameLink">RootService</span></a> - Class in <a href="com/topjohnwu/superuser/ipc/package-summary.html">com.topjohnwu.superuser.ipc</a></dt>
<dd>
<div class="block">A remote root service using native Android Binder IPC.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ipc/RootService.html#%3Cinit%3E()">RootService()</a></span> - Constructor for class com.topjohnwu.superuser.ipc.<a href="com/topjohnwu/superuser/ipc/RootService.html" title="class in com.topjohnwu.superuser.ipc">RootService</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Task.html#run(java.io.OutputStream,java.io.InputStream,java.io.InputStream)">run(OutputStream, InputStream, InputStream)</a></span> - Method in interface com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Task.html" title="interface in com.topjohnwu.superuser">Shell.Task</a></dt>
<dd>
<div class="block">This method will be called when a task is executed by a shell.</div>
</dd>
</dl>
<a id="I:S">
<!-- -->
</a>
<h2 class="title">S</h2>
<dl>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html#seek(long)">seek(long)</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io">SuRandomAccessFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/CallbackList.html#set(int,E)">set(int, E)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/CallbackList.html" title="class in com.topjohnwu.superuser">CallbackList</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#setDefaultBuilder(com.topjohnwu.superuser.Shell.Builder)">setDefaultBuilder(Shell.Builder)</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Override the default <a href="com/topjohnwu/superuser/Shell.Builder.html" title="class in com.topjohnwu.superuser"><code>Shell.Builder</code></a>.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#setExecutable(boolean,boolean)">setExecutable(boolean, boolean)</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Sets the owner's or everybody's execute permission for this abstract
pathname.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Builder.html#setFlags(int)">setFlags(int)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a></dt>
<dd>
<div class="block">Set flags that controls how <code>Shell</code> works and how a new <code>Shell</code> will be
constructed.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Builder.html#setInitializers(java.lang.Class...)">setInitializers(Class&lt;? extends Shell.Initializer&gt;...)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a></dt>
<dd>
<div class="block">Set the desired <a href="com/topjohnwu/superuser/Shell.Initializer.html" title="class in com.topjohnwu.superuser"><code>Shell.Initializer</code></a>s.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#setLastModified(long)">setLastModified(long)</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Sets the last-modified time of the file or directory named by this abstract pathname.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html#setLength(long)">setLength(long)</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io">SuRandomAccessFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#setReadable(boolean,boolean)">setReadable(boolean, boolean)</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Sets the owner's or everybody's read permission for this abstract
pathname.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#setReadOnly()">setReadOnly()</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Marks the file or directory named by this abstract pathname so that
only read operations are allowed.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Builder.html#setTimeout(long)">setTimeout(long)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a></dt>
<dd>
<div class="block">Set the maximum time to wait for a new shell construction.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#setWritable(boolean,boolean)">setWritable(boolean, boolean)</a></span> - Method in class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>
<div class="block">Sets the owner's or everybody's write permission for this abstract
pathname.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#sh(java.io.InputStream)">sh(InputStream)</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Create a pending <a href="com/topjohnwu/superuser/Shell.Job.html" title="class in com.topjohnwu.superuser"><code>Shell.Job</code></a> with an <a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#sh(java.lang.String...)">sh(String...)</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Create a pending <a href="com/topjohnwu/superuser/Shell.Job.html" title="class in com.topjohnwu.superuser"><code>Shell.Job</code></a> with commands.</div>
</dd>
<dt><a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">Shell</span></a> - Class in <a href="com/topjohnwu/superuser/package-summary.html">com.topjohnwu.superuser</a></dt>
<dd>
<div class="block">A class providing APIs to an interactive (root) shell.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#%3Cinit%3E()">Shell()</a></span> - Constructor for class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>&nbsp;</dd>
<dt><a href="com/topjohnwu/superuser/Shell.Builder.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">Shell.Builder</span></a> - Class in <a href="com/topjohnwu/superuser/package-summary.html">com.topjohnwu.superuser</a></dt>
<dd>
<div class="block">Builder class for <a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser"><code>Shell</code></a> objects.</div>
</dd>
<dt><a href="com/topjohnwu/superuser/Shell.GetShellCallback.html" title="interface in com.topjohnwu.superuser"><span class="typeNameLink">Shell.GetShellCallback</span></a> - Interface in <a href="com/topjohnwu/superuser/package-summary.html">com.topjohnwu.superuser</a></dt>
<dd>
<div class="block">The callback used in <a href="com/topjohnwu/superuser/Shell.html#getShell(com.topjohnwu.superuser.Shell.GetShellCallback)"><code>Shell.getShell(GetShellCallback)</code></a>.</div>
</dd>
<dt><a href="com/topjohnwu/superuser/Shell.Initializer.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">Shell.Initializer</span></a> - Class in <a href="com/topjohnwu/superuser/package-summary.html">com.topjohnwu.superuser</a></dt>
<dd>
<div class="block">The initializer when a new <code>Shell</code> is constructed.</div>
</dd>
<dt><a href="com/topjohnwu/superuser/Shell.Job.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">Shell.Job</span></a> - Class in <a href="com/topjohnwu/superuser/package-summary.html">com.topjohnwu.superuser</a></dt>
<dd>
<div class="block">Represents a shell Job that could later be executed or submitted to background threads.</div>
</dd>
<dt><a href="com/topjohnwu/superuser/Shell.Result.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">Shell.Result</span></a> - Class in <a href="com/topjohnwu/superuser/package-summary.html">com.topjohnwu.superuser</a></dt>
<dd>
<div class="block">The result of a <a href="com/topjohnwu/superuser/Shell.Job.html" title="class in com.topjohnwu.superuser"><code>Shell.Job</code></a>.</div>
</dd>
<dt><a href="com/topjohnwu/superuser/Shell.ResultCallback.html" title="interface in com.topjohnwu.superuser"><span class="typeNameLink">Shell.ResultCallback</span></a> - Interface in <a href="com/topjohnwu/superuser/package-summary.html">com.topjohnwu.superuser</a></dt>
<dd>
<div class="block">The callback to receive a result in <a href="com/topjohnwu/superuser/Shell.Job.html#submit(com.topjohnwu.superuser.Shell.ResultCallback)"><code>Shell.Job.submit(Shell.ResultCallback)</code></a>.</div>
</dd>
<dt><a href="com/topjohnwu/superuser/Shell.Task.html" title="interface in com.topjohnwu.superuser"><span class="typeNameLink">Shell.Task</span></a> - Interface in <a href="com/topjohnwu/superuser/package-summary.html">com.topjohnwu.superuser</a></dt>
<dd>
<div class="block">A task that can be executed by a shell with the method <a href="com/topjohnwu/superuser/Shell.html#execTask(com.topjohnwu.superuser.Shell.Task)"><code>Shell.execTask(Task)</code></a>.</div>
</dd>
<dt><a href="com/topjohnwu/superuser/ShellUtils.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">ShellUtils</span></a> - Class in <a href="com/topjohnwu/superuser/package-summary.html">com.topjohnwu.superuser</a></dt>
<dd>
<div class="block">Some handy utility methods that are used in <code>libsu</code>.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/CallbackList.html#size()">size()</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/CallbackList.html" title="class in com.topjohnwu.superuser">CallbackList</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ipc/RootService.html#stop(android.content.Intent)">stop(Intent)</a></span> - Static method in class com.topjohnwu.superuser.ipc.<a href="com/topjohnwu/superuser/ipc/RootService.html" title="class in com.topjohnwu.superuser.ipc">RootService</a></dt>
<dd>
<div class="block">Force stop a root service.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ipc/RootService.html#stopSelf()">stopSelf()</a></span> - Method in class com.topjohnwu.superuser.ipc.<a href="com/topjohnwu/superuser/ipc/RootService.html" title="class in com.topjohnwu.superuser.ipc">RootService</a></dt>
<dd>
<div class="block">Force stop this root service process.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#su(java.io.InputStream)">su(InputStream)</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Equivalent to <a href="com/topjohnwu/superuser/Shell.html#sh(java.io.InputStream)"><code>Shell.sh(InputStream)</code></a>, with the only difference being in the case
when the main shell does not have root access, the returned Job will do nothing.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#su(java.lang.String...)">su(String...)</a></span> - Static method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Equivalent to <a href="com/topjohnwu/superuser/Shell.html#sh(java.lang.String...)"><code>Shell.sh(String...)</code></a>, with the only difference being in the case
when the main shell does not have root access, the returned Job will do nothing.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Job.html#submit()">submit()</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a></dt>
<dd>
<div class="block">Submit the job to an internal queue to run in the background.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Job.html#submit(com.topjohnwu.superuser.Shell.ResultCallback)">submit(Shell.ResultCallback)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a></dt>
<dd>
<div class="block">Submit the job to an internal queue to run in the background.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Job.html#submit(java.util.concurrent.Executor,com.topjohnwu.superuser.Shell.ResultCallback)">submit(Executor, Shell.ResultCallback)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a></dt>
<dd>
<div class="block">Submit the job to an internal queue to run in the background.</div>
</dd>
<dt><a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io"><span class="typeNameLink">SuFile</span></a> - Class in <a href="com/topjohnwu/superuser/io/package-summary.html">com.topjohnwu.superuser.io</a></dt>
<dd>
<div class="block">A <a href="https://developer.android.com/reference/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>File</code></a> implementation using root shell.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#%3Cinit%3E(java.io.File,java.lang.String)">SuFile(File, String)</a></span> - Constructor for class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#%3Cinit%3E(java.lang.String)">SuFile(String)</a></span> - Constructor for class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#%3Cinit%3E(java.lang.String,java.lang.String)">SuFile(String, String)</a></span> - Constructor for class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuFile.html#%3Cinit%3E(java.net.URI)">SuFile(URI)</a></span> - Constructor for class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">SuFile</a></dt>
<dd>&nbsp;</dd>
<dt><a href="com/topjohnwu/superuser/io/SuFileInputStream.html" title="class in com.topjohnwu.superuser.io"><span class="typeNameLink">SuFileInputStream</span></a> - Class in <a href="com/topjohnwu/superuser/io/package-summary.html">com.topjohnwu.superuser.io</a></dt>
<dd>
<div class="block">Open <a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>s that read files with root access.</div>
</dd>
<dt><a href="com/topjohnwu/superuser/io/SuFileOutputStream.html" title="class in com.topjohnwu.superuser.io"><span class="typeNameLink">SuFileOutputStream</span></a> - Class in <a href="com/topjohnwu/superuser/io/package-summary.html">com.topjohnwu.superuser.io</a></dt>
<dd>
<div class="block">Open <a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>OutputStream</code></a>s that read files with root access.</div>
</dd>
<dt><a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io"><span class="typeNameLink">SuRandomAccessFile</span></a> - Class in <a href="com/topjohnwu/superuser/io/package-summary.html">com.topjohnwu.superuser.io</a></dt>
<dd>
<div class="block">Access files using the main shell and mimics <a href="https://developer.android.com/reference/java/io/RandomAccessFile.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>RandomAccessFile</code></a>.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html#%3Cinit%3E()">SuRandomAccessFile()</a></span> - Constructor for class com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io">SuRandomAccessFile</a></dt>
<dd>&nbsp;</dd>
</dl>
<a id="I:T">
<!-- -->
</a>
<h2 class="title">T</h2>
<dl>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Builder.html#timeout">timeout</a></span> - Variable in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Builder.html" title="class in com.topjohnwu.superuser">Shell.Builder</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Job.html#to(java.util.List)">to(List&lt;String&gt;)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a></dt>
<dd>
<div class="block">Store output to a specific list.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.Job.html#to(java.util.List,java.util.List)">to(List&lt;String&gt;, List&lt;String&gt;)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Job.html" title="class in com.topjohnwu.superuser">Shell.Job</a></dt>
<dd>
<div class="block">Store output of STDOUT and STDERR to specific lists.</div>
</dd>
</dl>
<a id="I:U">
<!-- -->
</a>
<h2 class="title">U</h2>
<dl>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/ipc/RootService.html#unbind(android.content.ServiceConnection)">unbind(ServiceConnection)</a></span> - Static method in class com.topjohnwu.superuser.ipc.<a href="com/topjohnwu/superuser/ipc/RootService.html" title="class in com.topjohnwu.superuser.ipc">RootService</a></dt>
<dd>
<div class="block">Disconnect from a root service.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#UNKNOWN">UNKNOWN</a></span> - Static variable in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Shell status: Unknown.</div>
</dd>
</dl>
<a id="I:W">
<!-- -->
</a>
<h2 class="title">W</h2>
<dl>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#waitAndClose()">waitAndClose()</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Wait indefinitely for any current/pending tasks to finish before closing this shell
and release any system resources associated with the shell.</div>
</dd>
<dt><span class="memberNameLink"><a href="com/topjohnwu/superuser/Shell.html#waitAndClose(long,java.util.concurrent.TimeUnit)">waitAndClose(long, TimeUnit)</a></span> - Method in class com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser">Shell</a></dt>
<dd>
<div class="block">Wait for any current/pending tasks to finish before closing this shell
and release any system resources associated with the shell.</div>
</dd>
</dl>
<a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:W">W</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a>&nbsp;<a href="allpackages-index.html">All&nbsp;Packages</a></div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

165
index.html Normal file
View File

@ -0,0 +1,165 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Overview (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Overview (libsu API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "./";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li class="navBarCell1Rev">Overview</li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<div class="header">
<h1 class="title">libsu API</h1>
</div>
<main role="main">
<div class="contentContainer">
<table class="overviewSummary">
<caption><span>Packages</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Package</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor" id="i0">
<th class="colFirst" scope="row"><a href="com/topjohnwu/superuser/package-summary.html">com.topjohnwu.superuser</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i1">
<th class="colFirst" scope="row"><a href="com/topjohnwu/superuser/io/package-summary.html">com.topjohnwu.superuser.io</a></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i2">
<th class="colFirst" scope="row"><a href="com/topjohnwu/superuser/ipc/package-summary.html">com.topjohnwu.superuser.ipc</a></th>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li class="navBarCell1Rev">Overview</li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

10872
jquery/external/jquery/jquery.js vendored Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

10872
jquery/jquery-3.5.1.js vendored Normal file

File diff suppressed because it is too large Load Diff

582
jquery/jquery-ui.css vendored Normal file
View File

@ -0,0 +1,582 @@
/*! jQuery UI - v1.12.1 - 2018-12-06
* http://jqueryui.com
* Includes: core.css, autocomplete.css, menu.css, theme.css
* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=custom-theme&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgImgOpacityContent=75&bgImgOpacityHeader=75&cornerRadiusShadow=8px&offsetLeftShadow=-8px&offsetTopShadow=-8px&thicknessShadow=8px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=%23aaaaaa&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=%23aaaaaa&iconColorError=%23cd0a0a&fcError=%23cd0a0a&borderColorError=%23cd0a0a&bgTextureError=glass&bgColorError=%23fef1ec&iconColorHighlight=%232e83ff&fcHighlight=%23363636&borderColorHighlight=%23fcefa1&bgTextureHighlight=glass&bgColorHighlight=%23fbf9ee&iconColorActive=%23454545&fcActive=%23212121&borderColorActive=%23aaaaaa&bgTextureActive=glass&bgColorActive=%23dadada&iconColorHover=%23454545&fcHover=%23212121&borderColorHover=%23999999&bgTextureHover=glass&bgColorHover=%23dadada&iconColorDefault=%23888888&fcDefault=%23555555&borderColorDefault=%23d3d3d3&bgTextureDefault=glass&bgColorDefault=%23e6e6e6&iconColorContent=%23222222&fcContent=%23222222&borderColorContent=%23aaaaaa&bgTextureContent=flat&bgColorContent=%23ffffff&iconColorHeader=%23222222&fcHeader=%23222222&borderColorHeader=%23aaaaaa&bgTextureHeader=highlight_soft&bgColorHeader=%23cccccc&cornerRadius=4px&fwDefault=normal&fsDefault=1.1em&ffDefault=Verdana%2CArial%2Csans-serif
* Copyright jQuery Foundation and other contributors; Licensed MIT */
/* Layout helpers
----------------------------------*/
.ui-helper-hidden {
display: none;
}
.ui-helper-hidden-accessible {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
.ui-helper-reset {
margin: 0;
padding: 0;
border: 0;
outline: 0;
line-height: 1.3;
text-decoration: none;
font-size: 100%;
list-style: none;
}
.ui-helper-clearfix:before,
.ui-helper-clearfix:after {
content: "";
display: table;
border-collapse: collapse;
}
.ui-helper-clearfix:after {
clear: both;
}
.ui-helper-zfix {
width: 100%;
height: 100%;
top: 0;
left: 0;
position: absolute;
opacity: 0;
filter:Alpha(Opacity=0); /* support: IE8 */
}
.ui-front {
z-index: 100;
}
/* Interaction Cues
----------------------------------*/
.ui-state-disabled {
cursor: default !important;
pointer-events: none;
}
/* Icons
----------------------------------*/
.ui-icon {
display: inline-block;
vertical-align: middle;
margin-top: -.25em;
position: relative;
text-indent: -99999px;
overflow: hidden;
background-repeat: no-repeat;
}
.ui-widget-icon-block {
left: 50%;
margin-left: -8px;
display: block;
}
/* Misc visuals
----------------------------------*/
/* Overlays */
.ui-widget-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.ui-autocomplete {
position: absolute;
top: 0;
left: 0;
cursor: default;
}
.ui-menu {
list-style: none;
padding: 0;
margin: 0;
display: block;
outline: 0;
}
.ui-menu .ui-menu {
position: absolute;
}
.ui-menu .ui-menu-item {
margin: 0;
cursor: pointer;
/* support: IE10, see #8844 */
list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
}
.ui-menu .ui-menu-item-wrapper {
position: relative;
padding: 3px 1em 3px .4em;
}
.ui-menu .ui-menu-divider {
margin: 5px 0;
height: 0;
font-size: 0;
line-height: 0;
border-width: 1px 0 0 0;
}
.ui-menu .ui-state-focus,
.ui-menu .ui-state-active {
margin: -1px;
}
/* icon support */
.ui-menu-icons {
position: relative;
}
.ui-menu-icons .ui-menu-item-wrapper {
padding-left: 2em;
}
/* left-aligned */
.ui-menu .ui-icon {
position: absolute;
top: 0;
bottom: 0;
left: .2em;
margin: auto 0;
}
/* right-aligned */
.ui-menu .ui-menu-icon {
left: auto;
right: 0;
}
/* Component containers
----------------------------------*/
.ui-widget {
font-family: Verdana,Arial,sans-serif;
font-size: 1.1em;
}
.ui-widget .ui-widget {
font-size: 1em;
}
.ui-widget input,
.ui-widget select,
.ui-widget textarea,
.ui-widget button {
font-family: Verdana,Arial,sans-serif;
font-size: 1em;
}
.ui-widget.ui-widget-content {
border: 1px solid #d3d3d3;
}
.ui-widget-content {
border: 1px solid #aaaaaa;
background: #ffffff;
color: #222222;
}
.ui-widget-content a {
color: #222222;
}
.ui-widget-header {
border: 1px solid #aaaaaa;
background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;
color: #222222;
font-weight: bold;
}
.ui-widget-header a {
color: #222222;
}
/* Interaction states
----------------------------------*/
.ui-state-default,
.ui-widget-content .ui-state-default,
.ui-widget-header .ui-state-default,
.ui-button,
/* We use html here because we need a greater specificity to make sure disabled
works properly when clicked or hovered */
html .ui-button.ui-state-disabled:hover,
html .ui-button.ui-state-disabled:active {
border: 1px solid #d3d3d3;
background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;
font-weight: normal;
color: #555555;
}
.ui-state-default a,
.ui-state-default a:link,
.ui-state-default a:visited,
a.ui-button,
a:link.ui-button,
a:visited.ui-button,
.ui-button {
color: #555555;
text-decoration: none;
}
.ui-state-hover,
.ui-widget-content .ui-state-hover,
.ui-widget-header .ui-state-hover,
.ui-state-focus,
.ui-widget-content .ui-state-focus,
.ui-widget-header .ui-state-focus,
.ui-button:hover,
.ui-button:focus {
border: 1px solid #999999;
background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;
font-weight: normal;
color: #212121;
}
.ui-state-hover a,
.ui-state-hover a:hover,
.ui-state-hover a:link,
.ui-state-hover a:visited,
.ui-state-focus a,
.ui-state-focus a:hover,
.ui-state-focus a:link,
.ui-state-focus a:visited,
a.ui-button:hover,
a.ui-button:focus {
color: #212121;
text-decoration: none;
}
.ui-visual-focus {
box-shadow: 0 0 3px 1px rgb(94, 158, 214);
}
.ui-state-active,
.ui-widget-content .ui-state-active,
.ui-widget-header .ui-state-active,
a.ui-button:active,
.ui-button:active,
.ui-button.ui-state-active:hover {
border: 1px solid #aaaaaa;
background: #dadada url("images/ui-bg_glass_65_dadada_1x400.png") 50% 50% repeat-x;
font-weight: normal;
color: #212121;
}
.ui-icon-background,
.ui-state-active .ui-icon-background {
border: #aaaaaa;
background-color: #212121;
}
.ui-state-active a,
.ui-state-active a:link,
.ui-state-active a:visited {
color: #212121;
text-decoration: none;
}
/* Interaction Cues
----------------------------------*/
.ui-state-highlight,
.ui-widget-content .ui-state-highlight,
.ui-widget-header .ui-state-highlight {
border: 1px solid #fcefa1;
background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
color: #363636;
}
.ui-state-checked {
border: 1px solid #fcefa1;
background: #fbf9ee;
}
.ui-state-highlight a,
.ui-widget-content .ui-state-highlight a,
.ui-widget-header .ui-state-highlight a {
color: #363636;
}
.ui-state-error,
.ui-widget-content .ui-state-error,
.ui-widget-header .ui-state-error {
border: 1px solid #cd0a0a;
background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
color: #cd0a0a;
}
.ui-state-error a,
.ui-widget-content .ui-state-error a,
.ui-widget-header .ui-state-error a {
color: #cd0a0a;
}
.ui-state-error-text,
.ui-widget-content .ui-state-error-text,
.ui-widget-header .ui-state-error-text {
color: #cd0a0a;
}
.ui-priority-primary,
.ui-widget-content .ui-priority-primary,
.ui-widget-header .ui-priority-primary {
font-weight: bold;
}
.ui-priority-secondary,
.ui-widget-content .ui-priority-secondary,
.ui-widget-header .ui-priority-secondary {
opacity: .7;
filter:Alpha(Opacity=70); /* support: IE8 */
font-weight: normal;
}
.ui-state-disabled,
.ui-widget-content .ui-state-disabled,
.ui-widget-header .ui-state-disabled {
opacity: .35;
filter:Alpha(Opacity=35); /* support: IE8 */
background-image: none;
}
.ui-state-disabled .ui-icon {
filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
}
/* Icons
----------------------------------*/
/* states and images */
.ui-icon {
width: 16px;
height: 16px;
}
.ui-icon,
.ui-widget-content .ui-icon {
background-image: url("images/ui-icons_222222_256x240.png");
}
.ui-widget-header .ui-icon {
background-image: url("images/ui-icons_222222_256x240.png");
}
.ui-state-hover .ui-icon,
.ui-state-focus .ui-icon,
.ui-button:hover .ui-icon,
.ui-button:focus .ui-icon {
background-image: url("images/ui-icons_454545_256x240.png");
}
.ui-state-active .ui-icon,
.ui-button:active .ui-icon {
background-image: url("images/ui-icons_454545_256x240.png");
}
.ui-state-highlight .ui-icon,
.ui-button .ui-state-highlight.ui-icon {
background-image: url("images/ui-icons_2e83ff_256x240.png");
}
.ui-state-error .ui-icon,
.ui-state-error-text .ui-icon {
background-image: url("images/ui-icons_cd0a0a_256x240.png");
}
.ui-button .ui-icon {
background-image: url("images/ui-icons_888888_256x240.png");
}
/* positioning */
.ui-icon-blank { background-position: 16px 16px; }
.ui-icon-caret-1-n { background-position: 0 0; }
.ui-icon-caret-1-ne { background-position: -16px 0; }
.ui-icon-caret-1-e { background-position: -32px 0; }
.ui-icon-caret-1-se { background-position: -48px 0; }
.ui-icon-caret-1-s { background-position: -65px 0; }
.ui-icon-caret-1-sw { background-position: -80px 0; }
.ui-icon-caret-1-w { background-position: -96px 0; }
.ui-icon-caret-1-nw { background-position: -112px 0; }
.ui-icon-caret-2-n-s { background-position: -128px 0; }
.ui-icon-caret-2-e-w { background-position: -144px 0; }
.ui-icon-triangle-1-n { background-position: 0 -16px; }
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
.ui-icon-triangle-1-e { background-position: -32px -16px; }
.ui-icon-triangle-1-se { background-position: -48px -16px; }
.ui-icon-triangle-1-s { background-position: -65px -16px; }
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
.ui-icon-triangle-1-w { background-position: -96px -16px; }
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
.ui-icon-arrow-1-n { background-position: 0 -32px; }
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
.ui-icon-arrow-1-e { background-position: -32px -32px; }
.ui-icon-arrow-1-se { background-position: -48px -32px; }
.ui-icon-arrow-1-s { background-position: -65px -32px; }
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
.ui-icon-arrow-1-w { background-position: -96px -32px; }
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
.ui-icon-arrowthick-1-n { background-position: 1px -48px; }
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
.ui-icon-arrow-4 { background-position: 0 -80px; }
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
.ui-icon-extlink { background-position: -32px -80px; }
.ui-icon-newwin { background-position: -48px -80px; }
.ui-icon-refresh { background-position: -64px -80px; }
.ui-icon-shuffle { background-position: -80px -80px; }
.ui-icon-transfer-e-w { background-position: -96px -80px; }
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
.ui-icon-folder-collapsed { background-position: 0 -96px; }
.ui-icon-folder-open { background-position: -16px -96px; }
.ui-icon-document { background-position: -32px -96px; }
.ui-icon-document-b { background-position: -48px -96px; }
.ui-icon-note { background-position: -64px -96px; }
.ui-icon-mail-closed { background-position: -80px -96px; }
.ui-icon-mail-open { background-position: -96px -96px; }
.ui-icon-suitcase { background-position: -112px -96px; }
.ui-icon-comment { background-position: -128px -96px; }
.ui-icon-person { background-position: -144px -96px; }
.ui-icon-print { background-position: -160px -96px; }
.ui-icon-trash { background-position: -176px -96px; }
.ui-icon-locked { background-position: -192px -96px; }
.ui-icon-unlocked { background-position: -208px -96px; }
.ui-icon-bookmark { background-position: -224px -96px; }
.ui-icon-tag { background-position: -240px -96px; }
.ui-icon-home { background-position: 0 -112px; }
.ui-icon-flag { background-position: -16px -112px; }
.ui-icon-calendar { background-position: -32px -112px; }
.ui-icon-cart { background-position: -48px -112px; }
.ui-icon-pencil { background-position: -64px -112px; }
.ui-icon-clock { background-position: -80px -112px; }
.ui-icon-disk { background-position: -96px -112px; }
.ui-icon-calculator { background-position: -112px -112px; }
.ui-icon-zoomin { background-position: -128px -112px; }
.ui-icon-zoomout { background-position: -144px -112px; }
.ui-icon-search { background-position: -160px -112px; }
.ui-icon-wrench { background-position: -176px -112px; }
.ui-icon-gear { background-position: -192px -112px; }
.ui-icon-heart { background-position: -208px -112px; }
.ui-icon-star { background-position: -224px -112px; }
.ui-icon-link { background-position: -240px -112px; }
.ui-icon-cancel { background-position: 0 -128px; }
.ui-icon-plus { background-position: -16px -128px; }
.ui-icon-plusthick { background-position: -32px -128px; }
.ui-icon-minus { background-position: -48px -128px; }
.ui-icon-minusthick { background-position: -64px -128px; }
.ui-icon-close { background-position: -80px -128px; }
.ui-icon-closethick { background-position: -96px -128px; }
.ui-icon-key { background-position: -112px -128px; }
.ui-icon-lightbulb { background-position: -128px -128px; }
.ui-icon-scissors { background-position: -144px -128px; }
.ui-icon-clipboard { background-position: -160px -128px; }
.ui-icon-copy { background-position: -176px -128px; }
.ui-icon-contact { background-position: -192px -128px; }
.ui-icon-image { background-position: -208px -128px; }
.ui-icon-video { background-position: -224px -128px; }
.ui-icon-script { background-position: -240px -128px; }
.ui-icon-alert { background-position: 0 -144px; }
.ui-icon-info { background-position: -16px -144px; }
.ui-icon-notice { background-position: -32px -144px; }
.ui-icon-help { background-position: -48px -144px; }
.ui-icon-check { background-position: -64px -144px; }
.ui-icon-bullet { background-position: -80px -144px; }
.ui-icon-radio-on { background-position: -96px -144px; }
.ui-icon-radio-off { background-position: -112px -144px; }
.ui-icon-pin-w { background-position: -128px -144px; }
.ui-icon-pin-s { background-position: -144px -144px; }
.ui-icon-play { background-position: 0 -160px; }
.ui-icon-pause { background-position: -16px -160px; }
.ui-icon-seek-next { background-position: -32px -160px; }
.ui-icon-seek-prev { background-position: -48px -160px; }
.ui-icon-seek-end { background-position: -64px -160px; }
.ui-icon-seek-start { background-position: -80px -160px; }
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
.ui-icon-seek-first { background-position: -80px -160px; }
.ui-icon-stop { background-position: -96px -160px; }
.ui-icon-eject { background-position: -112px -160px; }
.ui-icon-volume-off { background-position: -128px -160px; }
.ui-icon-volume-on { background-position: -144px -160px; }
.ui-icon-power { background-position: 0 -176px; }
.ui-icon-signal-diag { background-position: -16px -176px; }
.ui-icon-signal { background-position: -32px -176px; }
.ui-icon-battery-0 { background-position: -48px -176px; }
.ui-icon-battery-1 { background-position: -64px -176px; }
.ui-icon-battery-2 { background-position: -80px -176px; }
.ui-icon-battery-3 { background-position: -96px -176px; }
.ui-icon-circle-plus { background-position: 0 -192px; }
.ui-icon-circle-minus { background-position: -16px -192px; }
.ui-icon-circle-close { background-position: -32px -192px; }
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
.ui-icon-circle-zoomin { background-position: -176px -192px; }
.ui-icon-circle-zoomout { background-position: -192px -192px; }
.ui-icon-circle-check { background-position: -208px -192px; }
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
.ui-icon-circlesmall-close { background-position: -32px -208px; }
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
.ui-icon-squaresmall-close { background-position: -80px -208px; }
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
/* Misc visuals
----------------------------------*/
/* Corner radius */
.ui-corner-all,
.ui-corner-top,
.ui-corner-left,
.ui-corner-tl {
border-top-left-radius: 4px;
}
.ui-corner-all,
.ui-corner-top,
.ui-corner-right,
.ui-corner-tr {
border-top-right-radius: 4px;
}
.ui-corner-all,
.ui-corner-bottom,
.ui-corner-left,
.ui-corner-bl {
border-bottom-left-radius: 4px;
}
.ui-corner-all,
.ui-corner-bottom,
.ui-corner-right,
.ui-corner-br {
border-bottom-right-radius: 4px;
}
/* Overlays */
.ui-widget-overlay {
background: #aaaaaa;
opacity: .3;
filter: Alpha(Opacity=30); /* support: IE8 */
}
.ui-widget-shadow {
-webkit-box-shadow: -8px -8px 8px #aaaaaa;
box-shadow: -8px -8px 8px #aaaaaa;
}

2659
jquery/jquery-ui.js vendored Normal file

File diff suppressed because it is too large Load Diff

7
jquery/jquery-ui.min.css vendored Normal file

File diff suppressed because one or more lines are too long

6
jquery/jquery-ui.min.js vendored Normal file

File diff suppressed because one or more lines are too long

156
jquery/jquery-ui.structure.css vendored Normal file
View File

@ -0,0 +1,156 @@
/*!
* jQuery UI CSS Framework 1.12.1
* http://jqueryui.com
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/category/theming/
*/
/* Layout helpers
----------------------------------*/
.ui-helper-hidden {
display: none;
}
.ui-helper-hidden-accessible {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
.ui-helper-reset {
margin: 0;
padding: 0;
border: 0;
outline: 0;
line-height: 1.3;
text-decoration: none;
font-size: 100%;
list-style: none;
}
.ui-helper-clearfix:before,
.ui-helper-clearfix:after {
content: "";
display: table;
border-collapse: collapse;
}
.ui-helper-clearfix:after {
clear: both;
}
.ui-helper-zfix {
width: 100%;
height: 100%;
top: 0;
left: 0;
position: absolute;
opacity: 0;
filter:Alpha(Opacity=0); /* support: IE8 */
}
.ui-front {
z-index: 100;
}
/* Interaction Cues
----------------------------------*/
.ui-state-disabled {
cursor: default !important;
pointer-events: none;
}
/* Icons
----------------------------------*/
.ui-icon {
display: inline-block;
vertical-align: middle;
margin-top: -.25em;
position: relative;
text-indent: -99999px;
overflow: hidden;
background-repeat: no-repeat;
}
.ui-widget-icon-block {
left: 50%;
margin-left: -8px;
display: block;
}
/* Misc visuals
----------------------------------*/
/* Overlays */
.ui-widget-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.ui-autocomplete {
position: absolute;
top: 0;
left: 0;
cursor: default;
}
.ui-menu {
list-style: none;
padding: 0;
margin: 0;
display: block;
outline: 0;
}
.ui-menu .ui-menu {
position: absolute;
}
.ui-menu .ui-menu-item {
margin: 0;
cursor: pointer;
/* support: IE10, see #8844 */
list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
}
.ui-menu .ui-menu-item-wrapper {
position: relative;
padding: 3px 1em 3px .4em;
}
.ui-menu .ui-menu-divider {
margin: 5px 0;
height: 0;
font-size: 0;
line-height: 0;
border-width: 1px 0 0 0;
}
.ui-menu .ui-state-focus,
.ui-menu .ui-state-active {
margin: -1px;
}
/* icon support */
.ui-menu-icons {
position: relative;
}
.ui-menu-icons .ui-menu-item-wrapper {
padding-left: 2em;
}
/* left-aligned */
.ui-menu .ui-icon {
position: absolute;
top: 0;
bottom: 0;
left: .2em;
margin: auto 0;
}
/* right-aligned */
.ui-menu .ui-menu-icon {
left: auto;
right: 0;
}

5
jquery/jquery-ui.structure.min.css vendored Normal file
View File

@ -0,0 +1,5 @@
/*! jQuery UI - v1.12.1 - 2018-12-06
* http://jqueryui.com
* Copyright jQuery Foundation and other contributors; Licensed MIT */
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}

View File

@ -0,0 +1,56 @@
/*!
JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
<http://stuk.github.io/jszip-utils>
(c) 2014 Stuart Knightley, David Duponchel
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
*/
;(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
var global=typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {};/* jshint evil: true, newcap: false */
/* global IEBinaryToArray_ByteStr, IEBinaryToArray_ByteStr_Last */
"use strict";
// Adapted from http://stackoverflow.com/questions/1095102/how-do-i-load-binary-image-data-using-javascript-and-xmlhttprequest
var IEBinaryToArray_ByteStr_Script =
"<!-- IEBinaryToArray_ByteStr -->\r\n"+
"<script type='text/vbscript'>\r\n"+
"Function IEBinaryToArray_ByteStr(Binary)\r\n"+
" IEBinaryToArray_ByteStr = CStr(Binary)\r\n"+
"End Function\r\n"+
"Function IEBinaryToArray_ByteStr_Last(Binary)\r\n"+
" Dim lastIndex\r\n"+
" lastIndex = LenB(Binary)\r\n"+
" if lastIndex mod 2 Then\r\n"+
" IEBinaryToArray_ByteStr_Last = Chr( AscB( MidB( Binary, lastIndex, 1 ) ) )\r\n"+
" Else\r\n"+
" IEBinaryToArray_ByteStr_Last = "+'""'+"\r\n"+
" End If\r\n"+
"End Function\r\n"+
"</script>\r\n";
// inject VBScript
document.write(IEBinaryToArray_ByteStr_Script);
global.JSZipUtils._getBinaryFromXHR = function (xhr) {
var binary = xhr.responseBody;
var byteMapping = {};
for ( var i = 0; i < 256; i++ ) {
for ( var j = 0; j < 256; j++ ) {
byteMapping[ String.fromCharCode( i + (j << 8) ) ] =
String.fromCharCode(i) + String.fromCharCode(j);
}
}
var rawBytes = IEBinaryToArray_ByteStr(binary);
var lastChr = IEBinaryToArray_ByteStr_Last(binary);
return rawBytes.replace(/[\s\S]/g, function( match ) {
return byteMapping[match];
}) + lastChr;
};
// enforcing Stuk's coding style
// vim: set shiftwidth=4 softtabstop=4:
},{}]},{},[1])
;

View File

@ -0,0 +1,10 @@
/*!
JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
<http://stuk.github.io/jszip-utils>
(c) 2014 Stuart Knightley, David Duponchel
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
*/
!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(){var a="undefined"!=typeof self?self:"undefined"!=typeof window?window:{},b="<!-- IEBinaryToArray_ByteStr -->\r\n<script type='text/vbscript'>\r\nFunction IEBinaryToArray_ByteStr(Binary)\r\n IEBinaryToArray_ByteStr = CStr(Binary)\r\nEnd Function\r\nFunction IEBinaryToArray_ByteStr_Last(Binary)\r\n Dim lastIndex\r\n lastIndex = LenB(Binary)\r\n if lastIndex mod 2 Then\r\n IEBinaryToArray_ByteStr_Last = Chr( AscB( MidB( Binary, lastIndex, 1 ) ) )\r\n Else\r\n IEBinaryToArray_ByteStr_Last = \"\"\r\n End If\r\nEnd Function\r\n</script>\r\n";document.write(b),a.JSZipUtils._getBinaryFromXHR=function(a){for(var b=a.responseBody,c={},d=0;256>d;d++)for(var e=0;256>e;e++)c[String.fromCharCode(d+(e<<8))]=String.fromCharCode(d)+String.fromCharCode(e);var f=IEBinaryToArray_ByteStr(b),g=IEBinaryToArray_ByteStr_Last(b);return f.replace(/[\s\S]/g,function(a){return c[a]})+g}},{}]},{},[1]);

118
jquery/jszip-utils/dist/jszip-utils.js vendored Normal file
View File

@ -0,0 +1,118 @@
/*!
JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
<http://stuk.github.io/jszip-utils>
(c) 2014 Stuart Knightley, David Duponchel
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
*/
!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.JSZipUtils=e():"undefined"!=typeof global?global.JSZipUtils=e():"undefined"!=typeof self&&(self.JSZipUtils=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
'use strict';
var JSZipUtils = {};
// just use the responseText with xhr1, response with xhr2.
// The transformation doesn't throw away high-order byte (with responseText)
// because JSZip handles that case. If not used with JSZip, you may need to
// do it, see https://developer.mozilla.org/En/Using_XMLHttpRequest#Handling_binary_data
JSZipUtils._getBinaryFromXHR = function (xhr) {
// for xhr.responseText, the 0xFF mask is applied by JSZip
return xhr.response || xhr.responseText;
};
// taken from jQuery
function createStandardXHR() {
try {
return new window.XMLHttpRequest();
} catch( e ) {}
}
function createActiveXHR() {
try {
return new window.ActiveXObject("Microsoft.XMLHTTP");
} catch( e ) {}
}
// Create the request object
var createXHR = window.ActiveXObject ?
/* Microsoft failed to properly
* implement the XMLHttpRequest in IE7 (can't request local files),
* so we use the ActiveXObject when it is available
* Additionally XMLHttpRequest can be disabled in IE7/IE8 so
* we need a fallback.
*/
function() {
return createStandardXHR() || createActiveXHR();
} :
// For all other browsers, use the standard XMLHttpRequest object
createStandardXHR;
JSZipUtils.getBinaryContent = function(path, callback) {
/*
* Here is the tricky part : getting the data.
* In firefox/chrome/opera/... setting the mimeType to 'text/plain; charset=x-user-defined'
* is enough, the result is in the standard xhr.responseText.
* cf https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest#Receiving_binary_data_in_older_browsers
* In IE <= 9, we must use (the IE only) attribute responseBody
* (for binary data, its content is different from responseText).
* In IE 10, the 'charset=x-user-defined' trick doesn't work, only the
* responseType will work :
* http://msdn.microsoft.com/en-us/library/ie/hh673569%28v=vs.85%29.aspx#Binary_Object_upload_and_download
*
* I'd like to use jQuery to avoid this XHR madness, but it doesn't support
* the responseType attribute : http://bugs.jquery.com/ticket/11461
*/
try {
var xhr = createXHR();
xhr.open('GET', path, true);
// recent browsers
if ("responseType" in xhr) {
xhr.responseType = "arraybuffer";
}
// older browser
if(xhr.overrideMimeType) {
xhr.overrideMimeType("text/plain; charset=x-user-defined");
}
xhr.onreadystatechange = function(evt) {
var file, err;
// use `xhr` and not `this`... thanks IE
if (xhr.readyState === 4) {
if (xhr.status === 200 || xhr.status === 0) {
file = null;
err = null;
try {
file = JSZipUtils._getBinaryFromXHR(xhr);
} catch(e) {
err = new Error(e);
}
callback(err, file);
} else {
callback(new Error("Ajax error for " + path + " : " + this.status + " " + this.statusText), null);
}
}
};
xhr.send();
} catch (e) {
callback(new Error(e), null);
}
};
// export
module.exports = JSZipUtils;
// enforcing Stuk's coding style
// vim: set shiftwidth=4 softtabstop=4:
},{}]},{},[1])
(1)
});
;

View File

@ -0,0 +1,10 @@
/*!
JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
<http://stuk.github.io/jszip-utils>
(c) 2014 Stuart Knightley, David Duponchel
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
*/
!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.JSZipUtils=a():"undefined"!=typeof global?global.JSZipUtils=a():"undefined"!=typeof self&&(self.JSZipUtils=a())}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b){"use strict";function c(){try{return new window.XMLHttpRequest}catch(a){}}function d(){try{return new window.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}}var e={};e._getBinaryFromXHR=function(a){return a.response||a.responseText};var f=window.ActiveXObject?function(){return c()||d()}:c;e.getBinaryContent=function(a,b){try{var c=f();c.open("GET",a,!0),"responseType"in c&&(c.responseType="arraybuffer"),c.overrideMimeType&&c.overrideMimeType("text/plain; charset=x-user-defined"),c.onreadystatechange=function(){var d,f;if(4===c.readyState)if(200===c.status||0===c.status){d=null,f=null;try{d=e._getBinaryFromXHR(c)}catch(g){f=new Error(g)}b(f,d)}else b(new Error("Ajax error for "+a+" : "+this.status+" "+this.statusText),null)},c.send()}catch(d){b(new Error(d),null)}},b.exports=e},{}]},{},[1])(1)});

11367
jquery/jszip/dist/jszip.js vendored Normal file

File diff suppressed because it is too large Load Diff

13
jquery/jszip/dist/jszip.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
member-search-index.js Normal file

File diff suppressed because one or more lines are too long

BIN
member-search-index.zip Normal file

Binary file not shown.

23
overview-summary.html Normal file
View File

@ -0,0 +1,23 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.10) on Thu Dec 09 23:13:43 PST 2021 -->
<title>libsu API</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">window.location.replace('index.html')</script>
<noscript>
<meta http-equiv="Refresh" content="0;index.html">
</noscript>
<link rel="canonical" href="index.html">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
</head>
<body>
<main role="main">
<noscript>
<p>JavaScript is disabled on your browser.</p>
</noscript>
<p><a href="index.html">index.html</a></p>
</main>
</body>
</html>

236
overview-tree.html Normal file
View File

@ -0,0 +1,236 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Class Hierarchy (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Class Hierarchy (libsu API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "./";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 class="title">Hierarchy For All Packages</h1>
<span class="packageHierarchyLabel">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="com/topjohnwu/superuser/package-tree.html">com.topjohnwu.superuser</a>, </li>
<li><a href="com/topjohnwu/superuser/io/package-tree.html">com.topjohnwu.superuser.io</a>, </li>
<li><a href="com/topjohnwu/superuser/ipc/package-tree.html">com.topjohnwu.superuser.ipc</a></li>
</ul>
</div>
<div class="contentContainer">
<section role="region">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li class="circle">java.lang.<a href="https://developer.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Object</span></a>
<ul>
<li class="circle">java.util.<a href="https://developer.android.com/reference/java/util/AbstractCollection.html?is-external=true" title="class or interface in java.util" class="externalLink"><span class="typeNameLink">AbstractCollection</span></a>&lt;E&gt; (implements java.util.<a href="https://developer.android.com/reference/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;E&gt;)
<ul>
<li class="circle">java.util.<a href="https://developer.android.com/reference/java/util/AbstractList.html?is-external=true" title="class or interface in java.util" class="externalLink"><span class="typeNameLink">AbstractList</span></a>&lt;E&gt; (implements java.util.<a href="https://developer.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;E&gt;)
<ul>
<li class="circle">com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/CallbackList.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">CallbackList</span></a>&lt;E&gt;</li>
</ul>
</li>
</ul>
</li>
<li class="circle">android.content.<a href="https://developer.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content" class="externalLink"><span class="typeNameLink">Context</span></a>
<ul>
<li class="circle">android.content.<a href="https://developer.android.com/reference/android/content/ContextWrapper.html?is-external=true" title="class or interface in android.content" class="externalLink"><span class="typeNameLink">ContextWrapper</span></a>
<ul>
<li class="circle">com.topjohnwu.superuser.ipc.<a href="com/topjohnwu/superuser/ipc/RootService.html" title="class in com.topjohnwu.superuser.ipc"><span class="typeNameLink">RootService</span></a></li>
</ul>
</li>
</ul>
</li>
<li class="circle">java.io.<a href="https://developer.android.com/reference/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink"><span class="typeNameLink">File</span></a> (implements java.lang.<a href="https://developer.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;T&gt;, java.io.<a href="https://developer.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
<ul>
<li class="circle">com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io"><span class="typeNameLink">SuFile</span></a></li>
</ul>
</li>
<li class="circle">java.io.<a href="https://developer.android.com/reference/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><span class="typeNameLink">InputStream</span></a> (implements java.io.<a href="https://developer.android.com/reference/java/io/Closeable.html?is-external=true" title="class or interface in java.io" class="externalLink">Closeable</a>)
<ul>
<li class="circle">java.io.<a href="https://developer.android.com/reference/java/io/FilterInputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><span class="typeNameLink">FilterInputStream</span></a>
<ul>
<li class="circle">com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFileInputStream.html" title="class in com.topjohnwu.superuser.io"><span class="typeNameLink">SuFileInputStream</span></a></li>
</ul>
</li>
</ul>
</li>
<li class="circle">java.io.<a href="https://developer.android.com/reference/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><span class="typeNameLink">OutputStream</span></a> (implements java.io.<a href="https://developer.android.com/reference/java/io/Closeable.html?is-external=true" title="class or interface in java.io" class="externalLink">Closeable</a>, java.io.<a href="https://developer.android.com/reference/java/io/Flushable.html?is-external=true" title="class or interface in java.io" class="externalLink">Flushable</a>)
<ul>
<li class="circle">java.io.<a href="https://developer.android.com/reference/java/io/FilterOutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><span class="typeNameLink">FilterOutputStream</span></a>
<ul>
<li class="circle">java.io.<a href="https://developer.android.com/reference/java/io/BufferedOutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><span class="typeNameLink">BufferedOutputStream</span></a>
<ul>
<li class="circle">com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuFileOutputStream.html" title="class in com.topjohnwu.superuser.io"><span class="typeNameLink">SuFileOutputStream</span></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="circle">com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">Shell</span></a> (implements java.io.<a href="https://developer.android.com/reference/java/io/Closeable.html?is-external=true" title="class or interface in java.io" class="externalLink">Closeable</a>)</li>
<li class="circle">com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Builder.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">Shell.Builder</span></a></li>
<li class="circle">com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Initializer.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">Shell.Initializer</span></a>
<ul>
<li class="circle">com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/BusyBoxInstaller.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">BusyBoxInstaller</span></a></li>
</ul>
</li>
<li class="circle">com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Job.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">Shell.Job</span></a></li>
<li class="circle">com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Result.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">Shell.Result</span></a></li>
<li class="circle">com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/ShellUtils.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">ShellUtils</span></a></li>
<li class="circle">com.topjohnwu.superuser.io.<a href="com/topjohnwu/superuser/io/SuRandomAccessFile.html" title="class in com.topjohnwu.superuser.io"><span class="typeNameLink">SuRandomAccessFile</span></a> (implements java.io.<a href="https://developer.android.com/reference/java/io/Closeable.html?is-external=true" title="class or interface in java.io" class="externalLink">Closeable</a>, java.io.<a href="https://developer.android.com/reference/java/io/DataInput.html?is-external=true" title="class or interface in java.io" class="externalLink">DataInput</a>, java.io.<a href="https://developer.android.com/reference/java/io/DataOutput.html?is-external=true" title="class or interface in java.io" class="externalLink">DataOutput</a>)</li>
<li class="circle">java.lang.<a href="https://developer.android.com/reference/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="https://developer.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
<ul>
<li class="circle">java.lang.<a href="https://developer.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Exception</span></a>
<ul>
<li class="circle">java.lang.<a href="https://developer.android.com/reference/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">RuntimeException</span></a>
<ul>
<li class="circle">com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/NoShellException.html" title="class in com.topjohnwu.superuser"><span class="typeNameLink">NoShellException</span></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</section>
<section role="region">
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
<ul>
<li class="circle">com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.GetShellCallback.html" title="interface in com.topjohnwu.superuser"><span class="typeNameLink">Shell.GetShellCallback</span></a></li>
<li class="circle">com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.ResultCallback.html" title="interface in com.topjohnwu.superuser"><span class="typeNameLink">Shell.ResultCallback</span></a></li>
<li class="circle">com.topjohnwu.superuser.<a href="com/topjohnwu/superuser/Shell.Task.html" title="interface in com.topjohnwu.superuser"><span class="typeNameLink">Shell.Task</span></a></li>
</ul>
</section>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

1
package-search-index.js Normal file
View File

@ -0,0 +1 @@
packageSearchIndex = [{"l":"All Packages","url":"allpackages-index.html"},{"l":"com.topjohnwu.superuser"},{"l":"com.topjohnwu.superuser.io"},{"l":"com.topjohnwu.superuser.ipc"}]

BIN
package-search-index.zip Normal file

Binary file not shown.

BIN
resources/glass.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

BIN
resources/x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 B

149
script.js Normal file
View File

@ -0,0 +1,149 @@
/*
* Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
var moduleSearchIndex;
var packageSearchIndex;
var typeSearchIndex;
var memberSearchIndex;
var tagSearchIndex;
function loadScripts(doc, tag) {
createElem(doc, tag, 'jquery/jszip/dist/jszip.js');
createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils.js');
if (window.navigator.userAgent.indexOf('MSIE ') > 0 || window.navigator.userAgent.indexOf('Trident/') > 0 ||
window.navigator.userAgent.indexOf('Edge/') > 0) {
createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils-ie.js');
}
createElem(doc, tag, 'search.js');
$.get(pathtoroot + "module-search-index.zip")
.done(function() {
JSZipUtils.getBinaryContent(pathtoroot + "module-search-index.zip", function(e, data) {
JSZip.loadAsync(data).then(function(zip){
zip.file("module-search-index.json").async("text").then(function(content){
moduleSearchIndex = JSON.parse(content);
});
});
});
});
$.get(pathtoroot + "package-search-index.zip")
.done(function() {
JSZipUtils.getBinaryContent(pathtoroot + "package-search-index.zip", function(e, data) {
JSZip.loadAsync(data).then(function(zip){
zip.file("package-search-index.json").async("text").then(function(content){
packageSearchIndex = JSON.parse(content);
});
});
});
});
$.get(pathtoroot + "type-search-index.zip")
.done(function() {
JSZipUtils.getBinaryContent(pathtoroot + "type-search-index.zip", function(e, data) {
JSZip.loadAsync(data).then(function(zip){
zip.file("type-search-index.json").async("text").then(function(content){
typeSearchIndex = JSON.parse(content);
});
});
});
});
$.get(pathtoroot + "member-search-index.zip")
.done(function() {
JSZipUtils.getBinaryContent(pathtoroot + "member-search-index.zip", function(e, data) {
JSZip.loadAsync(data).then(function(zip){
zip.file("member-search-index.json").async("text").then(function(content){
memberSearchIndex = JSON.parse(content);
});
});
});
});
$.get(pathtoroot + "tag-search-index.zip")
.done(function() {
JSZipUtils.getBinaryContent(pathtoroot + "tag-search-index.zip", function(e, data) {
JSZip.loadAsync(data).then(function(zip){
zip.file("tag-search-index.json").async("text").then(function(content){
tagSearchIndex = JSON.parse(content);
});
});
});
});
if (!moduleSearchIndex) {
createElem(doc, tag, 'module-search-index.js');
}
if (!packageSearchIndex) {
createElem(doc, tag, 'package-search-index.js');
}
if (!typeSearchIndex) {
createElem(doc, tag, 'type-search-index.js');
}
if (!memberSearchIndex) {
createElem(doc, tag, 'member-search-index.js');
}
if (!tagSearchIndex) {
createElem(doc, tag, 'tag-search-index.js');
}
$(window).resize(function() {
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
});
}
function createElem(doc, tag, path) {
var script = doc.createElement(tag);
var scriptElement = doc.getElementsByTagName(tag)[0];
script.src = pathtoroot + path;
scriptElement.parentNode.insertBefore(script, scriptElement);
}
function show(type) {
count = 0;
for (var key in data) {
var row = document.getElementById(key);
if ((data[key] & type) !== 0) {
row.style.display = '';
row.className = (count++ % 2) ? rowColor : altColor;
}
else
row.style.display = 'none';
}
updateTabs(type);
}
function updateTabs(type) {
for (var value in tabs) {
var sNode = document.getElementById(tabs[value][0]);
var spanNode = sNode.firstChild;
if (value == type) {
sNode.className = activeTableTab;
spanNode.innerHTML = tabs[value][1];
}
else {
sNode.className = tableTab;
spanNode.innerHTML = "<a href=\"javascript:show("+ value + ");\">" + tabs[value][1] + "</a>";
}
}
}
function updateModuleFrame(pFrame, cFrame) {
top.packageFrame.location = pFrame;
top.classFrame.location = cFrame;
}

326
search.js Normal file
View File

@ -0,0 +1,326 @@
/*
* Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
var noResult = {l: "No results found"};
var catModules = "Modules";
var catPackages = "Packages";
var catTypes = "Types";
var catMembers = "Members";
var catSearchTags = "SearchTags";
var highlight = "<span class=\"resultHighlight\">$&</span>";
var camelCaseRegexp = "";
var secondaryMatcher = "";
function getHighlightedText(item) {
var ccMatcher = new RegExp(camelCaseRegexp);
var label = item.replace(ccMatcher, highlight);
if (label === item) {
label = item.replace(secondaryMatcher, highlight);
}
return label;
}
function getURLPrefix(ui) {
var urlPrefix="";
if (useModuleDirectories) {
var slash = "/";
if (ui.item.category === catModules) {
return ui.item.l + slash;
} else if (ui.item.category === catPackages && ui.item.m) {
return ui.item.m + slash;
} else if ((ui.item.category === catTypes && ui.item.p) || ui.item.category === catMembers) {
$.each(packageSearchIndex, function(index, item) {
if (ui.item.p == item.l) {
urlPrefix = item.m + slash;
}
});
return urlPrefix;
} else {
return urlPrefix;
}
}
return urlPrefix;
}
var watermark = 'Search';
$(function() {
$("#search").val('');
$("#search").prop("disabled", false);
$("#reset").prop("disabled", false);
$("#search").val(watermark).addClass('watermark');
$("#search").blur(function() {
if ($(this).val().length == 0) {
$(this).val(watermark).addClass('watermark');
}
});
$("#search").on('click keydown', function() {
if ($(this).val() == watermark) {
$(this).val('').removeClass('watermark');
}
});
$("#reset").click(function() {
$("#search").val('');
$("#search").focus();
});
$("#search").focus();
$("#search")[0].setSelectionRange(0, 0);
});
$.widget("custom.catcomplete", $.ui.autocomplete, {
_create: function() {
this._super();
this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)");
},
_renderMenu: function(ul, items) {
var rMenu = this,
currentCategory = "";
rMenu.menu.bindings = $();
$.each(items, function(index, item) {
var li;
if (item.l !== noResult.l && item.category !== currentCategory) {
ul.append("<li class=\"ui-autocomplete-category\">" + item.category + "</li>");
currentCategory = item.category;
}
li = rMenu._renderItemData(ul, item);
if (item.category) {
li.attr("aria-label", item.category + " : " + item.l);
li.attr("class", "resultItem");
} else {
li.attr("aria-label", item.l);
li.attr("class", "resultItem");
}
});
},
_renderItem: function(ul, item) {
var label = "";
if (item.category === catModules) {
label = getHighlightedText(item.l);
} else if (item.category === catPackages) {
label = (item.m)
? getHighlightedText(item.m + "/" + item.l)
: getHighlightedText(item.l);
} else if (item.category === catTypes) {
label = (item.p)
? getHighlightedText(item.p + "." + item.l)
: getHighlightedText(item.l);
} else if (item.category === catMembers) {
label = getHighlightedText(item.p + "." + (item.c + "." + item.l));
} else if (item.category === catSearchTags) {
label = getHighlightedText(item.l);
} else {
label = item.l;
}
var li = $("<li/>").appendTo(ul);
var div = $("<div/>").appendTo(li);
if (item.category === catSearchTags) {
if (item.d) {
div.html(label + "<span class=\"searchTagHolderResult\"> (" + item.h + ")</span><br><span class=\"searchTagDescResult\">"
+ item.d + "</span><br>");
} else {
div.html(label + "<span class=\"searchTagHolderResult\"> (" + item.h + ")</span>");
}
} else {
div.html(label);
}
return li;
}
});
$(function() {
$("#search").catcomplete({
minLength: 1,
delay: 100,
source: function(request, response) {
var result = new Array();
var presult = new Array();
var tresult = new Array();
var mresult = new Array();
var tgresult = new Array();
var secondaryresult = new Array();
var displayCount = 0;
var exactMatcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(request.term) + "$", "i");
camelCaseRegexp = ($.ui.autocomplete.escapeRegex(request.term)).split(/(?=[A-Z])/).join("([a-z0-9_$]*?)");
var camelCaseMatcher = new RegExp("^" + camelCaseRegexp);
secondaryMatcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
// Return the nested innermost name from the specified object
function nestedName(e) {
return e.l.substring(e.l.lastIndexOf(".") + 1);
}
function concatResults(a1, a2) {
a1 = a1.concat(a2);
a2.length = 0;
return a1;
}
if (moduleSearchIndex) {
var mdleCount = 0;
$.each(moduleSearchIndex, function(index, item) {
item.category = catModules;
if (exactMatcher.test(item.l)) {
result.push(item);
mdleCount++;
} else if (camelCaseMatcher.test(item.l)) {
result.push(item);
} else if (secondaryMatcher.test(item.l)) {
secondaryresult.push(item);
}
});
displayCount = mdleCount;
result = concatResults(result, secondaryresult);
}
if (packageSearchIndex) {
var pCount = 0;
var pkg = "";
$.each(packageSearchIndex, function(index, item) {
item.category = catPackages;
pkg = (item.m)
? (item.m + "/" + item.l)
: item.l;
if (exactMatcher.test(item.l)) {
presult.push(item);
pCount++;
} else if (camelCaseMatcher.test(pkg)) {
presult.push(item);
} else if (secondaryMatcher.test(pkg)) {
secondaryresult.push(item);
}
});
result = result.concat(concatResults(presult, secondaryresult));
displayCount = (pCount > displayCount) ? pCount : displayCount;
}
if (typeSearchIndex) {
var tCount = 0;
$.each(typeSearchIndex, function(index, item) {
item.category = catTypes;
var s = nestedName(item);
if (exactMatcher.test(s)) {
tresult.push(item);
tCount++;
} else if (camelCaseMatcher.test(s)) {
tresult.push(item);
} else if (secondaryMatcher.test(item.p + "." + item.l)) {
secondaryresult.push(item);
}
});
result = result.concat(concatResults(tresult, secondaryresult));
displayCount = (tCount > displayCount) ? tCount : displayCount;
}
if (memberSearchIndex) {
var mCount = 0;
$.each(memberSearchIndex, function(index, item) {
item.category = catMembers;
var s = nestedName(item);
if (exactMatcher.test(s)) {
mresult.push(item);
mCount++;
} else if (camelCaseMatcher.test(s)) {
mresult.push(item);
} else if (secondaryMatcher.test(item.c + "." + item.l)) {
secondaryresult.push(item);
}
});
result = result.concat(concatResults(mresult, secondaryresult));
displayCount = (mCount > displayCount) ? mCount : displayCount;
}
if (tagSearchIndex) {
var tgCount = 0;
$.each(tagSearchIndex, function(index, item) {
item.category = catSearchTags;
if (exactMatcher.test(item.l)) {
tgresult.push(item);
tgCount++;
} else if (secondaryMatcher.test(item.l)) {
secondaryresult.push(item);
}
});
result = result.concat(concatResults(tgresult, secondaryresult));
displayCount = (tgCount > displayCount) ? tgCount : displayCount;
}
displayCount = (displayCount > 500) ? displayCount : 500;
var counter = function() {
var count = {Modules: 0, Packages: 0, Types: 0, Members: 0, SearchTags: 0};
var f = function(item) {
count[item.category] += 1;
return (count[item.category] <= displayCount);
};
return f;
}();
response(result.filter(counter));
},
response: function(event, ui) {
if (!ui.content.length) {
ui.content.push(noResult);
} else {
$("#search").empty();
}
},
autoFocus: true,
position: {
collision: "flip"
},
select: function(event, ui) {
if (ui.item.l !== noResult.l) {
var url = getURLPrefix(ui);
if (ui.item.category === catModules) {
if (useModuleDirectories) {
url += "module-summary.html";
} else {
url = ui.item.l + "-summary.html";
}
} else if (ui.item.category === catPackages) {
if (ui.item.url) {
url = ui.item.url;
} else {
url += ui.item.l.replace(/\./g, '/') + "/package-summary.html";
}
} else if (ui.item.category === catTypes) {
if (ui.item.url) {
url = ui.item.url;
} else if (ui.item.p === "<Unnamed>") {
url += ui.item.l + ".html";
} else {
url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html";
}
} else if (ui.item.category === catMembers) {
if (ui.item.p === "<Unnamed>") {
url += ui.item.c + ".html" + "#";
} else {
url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#";
}
if (ui.item.url) {
url += ui.item.url;
} else {
url += ui.item.l;
}
} else if (ui.item.category === catSearchTags) {
url += ui.item.u;
}
if (top !== window) {
parent.classFrame.location = pathtoroot + url;
} else {
window.location.href = pathtoroot + url;
}
$("#search").focus();
}
}
});
});

181
serialized-form.html Normal file
View File

@ -0,0 +1,181 @@
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Serialized Form (libsu API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Serialized Form (libsu API)";
}
}
catch(err) {
}
//-->
var pathtoroot = "./";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 title="Serialized Form" class="title">Serialized Form</h1>
</div>
<div class="serializedFormContainer">
<ul class="blockList">
<li class="blockList">
<section role="region">
<h2 title="Package">Package&nbsp;com.topjohnwu.superuser</h2>
<ul class="blockList">
<li class="blockList"><a id="com.topjohnwu.superuser.NoShellException">
<!-- -->
</a>
<h3>Class <a href="com/topjohnwu/superuser/NoShellException.html" title="class in com.topjohnwu.superuser">com.topjohnwu.superuser.NoShellException</a> extends <a href="https://developer.android.com/reference/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">RuntimeException</a> implements Serializable</h3>
</li>
</ul>
</section>
</li>
<li class="blockList">
<section role="region">
<h2 title="Package">Package&nbsp;com.topjohnwu.superuser.io</h2>
<ul class="blockList">
<li class="blockList"><a id="com.topjohnwu.superuser.io.SuFile">
<!-- -->
</a>
<h3>Class <a href="com/topjohnwu/superuser/io/SuFile.html" title="class in com.topjohnwu.superuser.io">com.topjohnwu.superuser.io.SuFile</a> extends <a href="https://developer.android.com/reference/java/io/File.html?is-external=true" title="class or interface in java.io" class="externalLink">File</a> implements Serializable</h3>
<ul class="blockList">
<li class="blockList">
<h3>Serialized Fields</h3>
<ul class="blockList">
<li class="blockListLast">
<h4>escapedPath</h4>
<pre><a href="https://developer.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> escapedPath</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="index.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>

906
stylesheet.css Normal file
View File

@ -0,0 +1,906 @@
/*
* Javadoc style sheet
*/
@import url('resources/fonts/dejavu.css');
/*
* Styles for individual HTML elements.
*
* These are styles that are specific to individual HTML elements. Changing them affects the style of a particular
* HTML element throughout the page.
*/
body {
background-color:#ffffff;
color:#353833;
font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
font-size:14px;
margin:0;
padding:0;
height:100%;
width:100%;
}
iframe {
margin:0;
padding:0;
height:100%;
width:100%;
overflow-y:scroll;
border:none;
}
a:link, a:visited {
text-decoration:none;
color:#4A6782;
}
a[href]:hover, a[href]:focus {
text-decoration:none;
color:#bb7a2a;
}
a[name] {
color:#353833;
}
a[name]:before, a[name]:target, a[id]:before, a[id]:target {
content:"";
display:inline-block;
position:relative;
padding-top:129px;
margin-top:-129px;
}
pre {
font-family:'DejaVu Sans Mono', monospace;
font-size:14px;
}
h1 {
font-size:20px;
}
h2 {
font-size:18px;
}
h3 {
font-size:16px;
font-style:italic;
}
h4 {
font-size:13px;
}
h5 {
font-size:12px;
}
h6 {
font-size:11px;
}
ul {
list-style-type:disc;
}
code, tt {
font-family:'DejaVu Sans Mono', monospace;
font-size:14px;
padding-top:4px;
margin-top:8px;
line-height:1.4em;
}
dt code {
font-family:'DejaVu Sans Mono', monospace;
font-size:14px;
padding-top:4px;
}
table tr td dt code {
font-family:'DejaVu Sans Mono', monospace;
font-size:14px;
vertical-align:top;
padding-top:4px;
}
sup {
font-size:8px;
}
/*
* Styles for HTML generated by javadoc.
*
* These are style classes that are used by the standard doclet to generate HTML documentation.
*/
/*
* Styles for document title and copyright.
*/
.clear {
clear:both;
height:0px;
overflow:hidden;
}
.aboutLanguage {
float:right;
padding:0px 21px;
font-size:11px;
z-index:200;
margin-top:-9px;
}
.legalCopy {
margin-left:.5em;
}
.bar a, .bar a:link, .bar a:visited, .bar a:active {
color:#FFFFFF;
text-decoration:none;
}
.bar a:hover, .bar a:focus {
color:#bb7a2a;
}
.tab {
background-color:#0066FF;
color:#ffffff;
padding:8px;
width:5em;
font-weight:bold;
}
/*
* Styles for navigation bar.
*/
.bar {
background-color:#4D7A97;
color:#FFFFFF;
padding:.8em .5em .4em .8em;
height:auto;/*height:1.8em;*/
font-size:11px;
margin:0;
}
.navPadding {
padding-top: 107px;
}
.fixedNav {
position:fixed;
width:100%;
z-index:999;
background-color:#ffffff;
}
.topNav {
background-color:#4D7A97;
color:#FFFFFF;
float:left;
padding:0;
width:100%;
clear:right;
height:2.8em;
padding-top:10px;
overflow:hidden;
font-size:12px;
}
.bottomNav {
margin-top:10px;
background-color:#4D7A97;
color:#FFFFFF;
float:left;
padding:0;
width:100%;
clear:right;
height:2.8em;
padding-top:10px;
overflow:hidden;
font-size:12px;
}
.subNav {
background-color:#dee3e9;
float:left;
width:100%;
overflow:hidden;
font-size:12px;
}
.subNav div {
clear:left;
float:left;
padding:0 0 5px 6px;
text-transform:uppercase;
}
ul.navList, ul.subNavList {
float:left;
margin:0 25px 0 0;
padding:0;
}
ul.navList li{
list-style:none;
float:left;
padding: 5px 6px;
text-transform:uppercase;
}
ul.navListSearch {
float:right;
margin:0 0 0 0;
padding:0;
}
ul.navListSearch li {
list-style:none;
float:right;
padding: 5px 6px;
text-transform:uppercase;
}
ul.navListSearch li label {
position:relative;
right:-16px;
}
ul.subNavList li {
list-style:none;
float:left;
}
.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
color:#FFFFFF;
text-decoration:none;
text-transform:uppercase;
}
.topNav a:hover, .bottomNav a:hover {
text-decoration:none;
color:#bb7a2a;
text-transform:uppercase;
}
.navBarCell1Rev {
background-color:#F8981D;
color:#253441;
margin: auto 5px;
}
.skipNav {
position:absolute;
top:auto;
left:-9999px;
overflow:hidden;
}
/*
* Styles for page header and footer.
*/
.header, .footer {
clear:both;
margin:0 20px;
padding:5px 0 0 0;
}
.indexNav {
position:relative;
font-size:12px;
background-color:#dee3e9;
}
.indexNav ul {
margin-top:0;
padding:5px;
}
.indexNav ul li {
display:inline;
list-style-type:none;
padding-right:10px;
text-transform:uppercase;
}
.indexNav h1 {
font-size:13px;
}
.title {
color:#2c4557;
margin:10px 0;
}
.subTitle {
margin:5px 0 0 0;
}
.header ul {
margin:0 0 15px 0;
padding:0;
}
.footer ul {
margin:20px 0 5px 0;
}
.header ul li, .footer ul li {
list-style:none;
font-size:13px;
}
/*
* Styles for headings.
*/
div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
background-color:#dee3e9;
border:1px solid #d0d9e0;
margin:0 0 6px -8px;
padding:7px 5px;
}
ul.blockList ul.blockList ul.blockList li.blockList h3 {
background-color:#dee3e9;
border:1px solid #d0d9e0;
margin:0 0 6px -8px;
padding:7px 5px;
}
ul.blockList ul.blockList li.blockList h3 {
padding:0;
margin:15px 0;
}
ul.blockList li.blockList h2 {
padding:0px 0 20px 0;
}
/*
* Styles for page layout containers.
*/
.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer,
.allClassesContainer, .allPackagesContainer {
clear:both;
padding:10px 20px;
position:relative;
}
.indexContainer {
margin:10px;
position:relative;
font-size:12px;
}
.indexContainer h2 {
font-size:13px;
padding:0 0 3px 0;
}
.indexContainer ul {
margin:0;
padding:0;
}
.indexContainer ul li {
list-style:none;
padding-top:2px;
}
.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
font-size:12px;
font-weight:bold;
margin:10px 0 0 0;
color:#4E4E4E;
}
.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
margin:5px 0 10px 0px;
font-size:14px;
font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
}
.serializedFormContainer dl.nameValue dt {
margin-left:1px;
font-size:1.1em;
display:inline;
font-weight:bold;
}
.serializedFormContainer dl.nameValue dd {
margin:0 0 0 1px;
font-size:1.1em;
display:inline;
}
/*
* Styles for lists.
*/
li.circle {
list-style:circle;
}
ul.horizontal li {
display:inline;
font-size:0.9em;
}
ul.inheritance {
margin:0;
padding:0;
}
ul.inheritance li {
display:inline;
list-style:none;
}
ul.inheritance li ul.inheritance {
margin-left:15px;
padding-left:15px;
padding-top:1px;
}
ul.blockList, ul.blockListLast {
margin:10px 0 10px 0;
padding:0;
}
ul.blockList li.blockList, ul.blockListLast li.blockList {
list-style:none;
margin-bottom:15px;
line-height:1.4;
}
ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
padding:0px 20px 5px 10px;
border:1px solid #ededed;
background-color:#f8f8f8;
}
ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
padding:0 0 5px 8px;
background-color:#ffffff;
border:none;
}
ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
margin-left:0;
padding-left:0;
padding-bottom:15px;
border:none;
}
ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
list-style:none;
border-bottom:none;
padding-bottom:0;
}
table tr td dl, table tr td dl dt, table tr td dl dd {
margin-top:0;
margin-bottom:1px;
}
/*
* Styles for tables.
*/
.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary,
.requiresSummary, .packagesSummary, .providesSummary, .usesSummary {
width:100%;
border-spacing:0;
border-left:1px solid #EEE;
border-right:1px solid #EEE;
border-bottom:1px solid #EEE;
}
.overviewSummary, .memberSummary, .requiresSummary, .packagesSummary, .providesSummary, .usesSummary {
padding:0px;
}
.overviewSummary caption, .memberSummary caption, .typeSummary caption,
.useSummary caption, .constantsSummary caption, .deprecatedSummary caption,
.requiresSummary caption, .packagesSummary caption, .providesSummary caption, .usesSummary caption {
position:relative;
text-align:left;
background-repeat:no-repeat;
color:#253441;
font-weight:bold;
clear:none;
overflow:hidden;
padding:0px;
padding-top:10px;
padding-left:1px;
margin:0px;
white-space:pre;
}
.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
.constantsSummary caption a:link, .deprecatedSummary caption a:link,
.requiresSummary caption a:link, .packagesSummary caption a:link, .providesSummary caption a:link,
.usesSummary caption a:link,
.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
.constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
.requiresSummary caption a:hover, .packagesSummary caption a:hover, .providesSummary caption a:hover,
.usesSummary caption a:hover,
.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
.constantsSummary caption a:active, .deprecatedSummary caption a:active,
.requiresSummary caption a:active, .packagesSummary caption a:active, .providesSummary caption a:active,
.usesSummary caption a:active,
.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
.constantsSummary caption a:visited, .deprecatedSummary caption a:visited,
.requiresSummary caption a:visited, .packagesSummary caption a:visited, .providesSummary caption a:visited,
.usesSummary caption a:visited {
color:#FFFFFF;
}
.useSummary caption a:link, .useSummary caption a:hover, .useSummary caption a:active,
.useSummary caption a:visited {
color:#1f389c;
}
.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span,
.requiresSummary caption span, .packagesSummary caption span, .providesSummary caption span,
.usesSummary caption span {
white-space:nowrap;
padding-top:5px;
padding-left:12px;
padding-right:12px;
padding-bottom:7px;
display:inline-block;
float:left;
background-color:#F8981D;
border: none;
height:16px;
}
.memberSummary caption span.activeTableTab span, .packagesSummary caption span.activeTableTab span,
.overviewSummary caption span.activeTableTab span, .typeSummary caption span.activeTableTab span {
white-space:nowrap;
padding-top:5px;
padding-left:12px;
padding-right:12px;
margin-right:3px;
display:inline-block;
float:left;
background-color:#F8981D;
height:16px;
}
.memberSummary caption span.tableTab span, .packagesSummary caption span.tableTab span,
.overviewSummary caption span.tableTab span, .typeSummary caption span.tableTab span {
white-space:nowrap;
padding-top:5px;
padding-left:12px;
padding-right:12px;
margin-right:3px;
display:inline-block;
float:left;
background-color:#4D7A97;
height:16px;
}
.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab,
.packagesSummary caption span.tableTab, .packagesSummary caption span.activeTableTab,
.overviewSummary caption span.tableTab, .overviewSummary caption span.activeTableTab,
.typeSummary caption span.tableTab, .typeSummary caption span.activeTableTab {
padding-top:0px;
padding-left:0px;
padding-right:0px;
background-image:none;
float:none;
display:inline;
}
.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd,
.requiresSummary .tabEnd, .packagesSummary .tabEnd, .providesSummary .tabEnd, .usesSummary .tabEnd {
display:none;
width:5px;
position:relative;
float:left;
background-color:#F8981D;
}
.memberSummary .activeTableTab .tabEnd, .packagesSummary .activeTableTab .tabEnd,
.overviewSummary .activeTableTab .tabEnd, .typeSummary .activeTableTab .tabEnd {
display:none;
width:5px;
margin-right:3px;
position:relative;
float:left;
background-color:#F8981D;
}
.memberSummary .tableTab .tabEnd, .packagesSummary .tableTab .tabEnd,
.overviewSummary .tableTab .tabEnd, .typeSummary .tableTab .tabEnd {
display:none;
width:5px;
margin-right:3px;
position:relative;
background-color:#4D7A97;
float:left;
}
.rowColor th, .altColor th {
font-weight:normal;
}
.overviewSummary td, .memberSummary td, .typeSummary td,
.useSummary td, .constantsSummary td, .deprecatedSummary td,
.requiresSummary td, .packagesSummary td, .providesSummary td, .usesSummary td {
text-align:left;
padding:0px 0px 12px 10px;
}
th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .useSummary th,
.constantsSummary th, .packagesSummary th, td.colFirst, td.colSecond, td.colLast, .useSummary td,
.constantsSummary td {
vertical-align:top;
padding-right:0px;
padding-top:8px;
padding-bottom:3px;
}
th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .constantsSummary th,
.packagesSummary th {
background:#dee3e9;
text-align:left;
padding:8px 3px 3px 7px;
}
td.colFirst, th.colFirst {
font-size:13px;
}
td.colSecond, th.colSecond, td.colLast, th.colConstructorName, th.colDeprecatedItemName, th.colLast {
font-size:13px;
}
.constantsSummary th, .packagesSummary th {
font-size:13px;
}
.providesSummary th.colFirst, .providesSummary th.colLast, .providesSummary td.colFirst,
.providesSummary td.colLast {
white-space:normal;
font-size:13px;
}
.overviewSummary td.colFirst, .overviewSummary th.colFirst,
.requiresSummary td.colFirst, .requiresSummary th.colFirst,
.packagesSummary td.colFirst, .packagesSummary td.colSecond, .packagesSummary th.colFirst, .packagesSummary th,
.usesSummary td.colFirst, .usesSummary th.colFirst,
.providesSummary td.colFirst, .providesSummary th.colFirst,
.memberSummary td.colFirst, .memberSummary th.colFirst,
.memberSummary td.colSecond, .memberSummary th.colSecond, .memberSummary th.colConstructorName,
.typeSummary td.colFirst, .typeSummary th.colFirst {
vertical-align:top;
}
.packagesSummary th.colLast, .packagesSummary td.colLast {
white-space:normal;
}
td.colFirst a:link, td.colFirst a:visited,
td.colSecond a:link, td.colSecond a:visited,
th.colFirst a:link, th.colFirst a:visited,
th.colSecond a:link, th.colSecond a:visited,
th.colConstructorName a:link, th.colConstructorName a:visited,
th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited,
.constantValuesContainer td a:link, .constantValuesContainer td a:visited,
.allClassesContainer td a:link, .allClassesContainer td a:visited,
.allPackagesContainer td a:link, .allPackagesContainer td a:visited {
font-weight:bold;
}
.tableSubHeadingColor {
background-color:#EEEEFF;
}
.altColor, .altColor th {
background-color:#FFFFFF;
}
.rowColor, .rowColor th {
background-color:#EEEEEF;
}
/*
* Styles for contents.
*/
.description pre {
margin-top:0;
}
.deprecatedContent {
margin:0;
padding:10px 0;
}
.docSummary {
padding:0;
}
ul.blockList ul.blockList ul.blockList li.blockList h3 {
font-style:normal;
}
div.block {
font-size:14px;
font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
}
td.colLast div {
padding-top:0px;
}
td.colLast a {
padding-bottom:3px;
}
/*
* Styles for formatting effect.
*/
.sourceLineNo {
color:green;
padding:0 30px 0 0;
}
h1.hidden {
visibility:hidden;
overflow:hidden;
font-size:10px;
}
.block {
display:block;
margin:3px 10px 2px 0px;
color:#474747;
}
.deprecatedLabel, .descfrmTypeLabel, .implementationLabel, .memberNameLabel, .memberNameLink,
.moduleLabelInPackage, .moduleLabelInType, .overrideSpecifyLabel, .packageLabelInType,
.packageHierarchyLabel, .paramLabel, .returnLabel, .seeLabel, .simpleTagLabel,
.throwsLabel, .typeNameLabel, .typeNameLink, .searchTagLink {
font-weight:bold;
}
.deprecationComment, .emphasizedPhrase, .interfaceName {
font-style:italic;
}
.deprecationBlock {
font-size:14px;
font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
border-style:solid;
border-width:thin;
border-radius:10px;
padding:10px;
margin-bottom:10px;
margin-right:10px;
display:inline-block;
}
div.block div.deprecationComment, div.block div.block span.emphasizedPhrase,
div.block div.block span.interfaceName {
font-style:normal;
}
div.contentContainer ul.blockList li.blockList h2 {
padding-bottom:0px;
}
/*
* Styles for IFRAME.
*/
.mainContainer {
margin:0 auto;
padding:0;
height:100%;
width:100%;
position:fixed;
top:0;
left:0;
}
.leftContainer {
height:100%;
position:fixed;
width:320px;
}
.leftTop {
position:relative;
float:left;
width:315px;
top:0;
left:0;
height:30%;
border-right:6px solid #ccc;
border-bottom:6px solid #ccc;
}
.leftBottom {
position:relative;
float:left;
width:315px;
bottom:0;
left:0;
height:70%;
border-right:6px solid #ccc;
border-top:1px solid #000;
}
.rightContainer {
position:absolute;
left:320px;
top:0;
bottom:0;
height:100%;
right:0;
border-left:1px solid #000;
}
.rightIframe {
margin:0;
padding:0;
height:100%;
right:30px;
width:100%;
overflow:visible;
margin-bottom:30px;
}
/*
* Styles specific to HTML5 elements.
*/
main, nav, header, footer, section {
display:block;
}
/*
* Styles for javadoc search.
*/
.ui-autocomplete-category {
font-weight:bold;
font-size:15px;
padding:7px 0 7px 3px;
background-color:#4D7A97;
color:#FFFFFF;
}
.resultItem {
font-size:13px;
}
.ui-autocomplete {
max-height:85%;
max-width:65%;
overflow-y:scroll;
overflow-x:scroll;
white-space:nowrap;
box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
}
ul.ui-autocomplete {
position:fixed;
z-index:999999;
}
ul.ui-autocomplete li {
float:left;
clear:both;
width:100%;
}
.resultHighlight {
font-weight:bold;
}
#search {
background-image:url('resources/glass.png');
background-size:13px;
background-repeat:no-repeat;
background-position:2px 3px;
padding-left:20px;
position:relative;
right:-18px;
}
#reset {
background-color: rgb(255,255,255);
background-image:url('resources/x.png');
background-position:center;
background-repeat:no-repeat;
background-size:12px;
border:0 none;
width:16px;
height:17px;
position:relative;
left:-4px;
top:-4px;
font-size:0px;
}
.watermark {
color:#545454;
}
.searchTagDescResult {
font-style:italic;
font-size:11px;
}
.searchTagHolderResult {
font-style:italic;
font-size:12px;
}
.searchTagResult:before, .searchTagResult:target {
color:red;
}
.moduleGraph span {
display:none;
position:absolute;
}
.moduleGraph:hover span {
display:block;
margin: -100px 0 0 100px;
z-index: 1;
}
.methodSignature {
white-space:normal;
}
/*
* Styles for user-provided tables.
*
* borderless:
* No borders, vertical margins, styled caption.
* This style is provided for use with existing doc comments.
* In general, borderless tables should not be used for layout purposes.
*
* plain:
* Plain borders around table and cells, vertical margins, styled caption.
* Best for small tables or for complex tables for tables with cells that span
* rows and columns, when the "striped" style does not work well.
*
* striped:
* Borders around the table and vertical borders between cells, striped rows,
* vertical margins, styled caption.
* Best for tables that have a header row, and a body containing a series of simple rows.
*/
table.borderless,
table.plain,
table.striped {
margin-top: 10px;
margin-bottom: 10px;
}
table.borderless > caption,
table.plain > caption,
table.striped > caption {
font-weight: bold;
font-size: smaller;
}
table.borderless th, table.borderless td,
table.plain th, table.plain td,
table.striped th, table.striped td {
padding: 2px 5px;
}
table.borderless,
table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th,
table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td {
border: none;
}
table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr {
background-color: transparent;
}
table.plain {
border-collapse: collapse;
border: 1px solid black;
}
table.plain > thead > tr, table.plain > tbody tr, table.plain > tr {
background-color: transparent;
}
table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th,
table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td {
border: 1px solid black;
}
table.striped {
border-collapse: collapse;
border: 1px solid black;
}
table.striped > thead {
background-color: #E3E3E3;
}
table.striped > thead > tr > th, table.striped > thead > tr > td {
border: 1px solid black;
}
table.striped > tbody > tr:nth-child(even) {
background-color: #EEE
}
table.striped > tbody > tr:nth-child(odd) {
background-color: #FFF
}
table.striped > tbody > tr > th, table.striped > tbody > tr > td {
border-left: 1px solid black;
border-right: 1px solid black;
}
table.striped > tbody > tr > th {
font-weight: normal;
}

1
type-search-index.js Normal file
View File

@ -0,0 +1 @@
typeSearchIndex = [{"l":"All Classes","url":"allclasses-index.html"},{"p":"com.topjohnwu.superuser","l":"Shell.Builder"},{"p":"com.topjohnwu.superuser","l":"BusyBoxInstaller"},{"p":"com.topjohnwu.superuser","l":"CallbackList"},{"p":"com.topjohnwu.superuser","l":"Shell.GetShellCallback"},{"p":"com.topjohnwu.superuser","l":"Shell.Initializer"},{"p":"com.topjohnwu.superuser","l":"Shell.Job"},{"p":"com.topjohnwu.superuser","l":"NoShellException"},{"p":"com.topjohnwu.superuser","l":"Shell.Result"},{"p":"com.topjohnwu.superuser","l":"Shell.ResultCallback"},{"p":"com.topjohnwu.superuser.ipc","l":"RootService"},{"p":"com.topjohnwu.superuser","l":"Shell"},{"p":"com.topjohnwu.superuser","l":"ShellUtils"},{"p":"com.topjohnwu.superuser.io","l":"SuFile"},{"p":"com.topjohnwu.superuser.io","l":"SuFileInputStream"},{"p":"com.topjohnwu.superuser.io","l":"SuFileOutputStream"},{"p":"com.topjohnwu.superuser.io","l":"SuRandomAccessFile"},{"p":"com.topjohnwu.superuser","l":"Shell.Task"}]

BIN
type-search-index.zip Normal file

Binary file not shown.