System-level KernelSU module: aapt2/aidl/zipalign (API 35), BusyBox, platform-tools, all as static arm64 binaries in the Android framework. Termux integration for Java/Kotlin/Gradle/Python via pkg. CLI tools: buildchain, bc-build, bc-sign. WebUI on :8089 for toolchain management. Turns any Android phone into a native compilation powerhouse.
137 lines
5.1 KiB
HTML
137 lines
5.1 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
|
|
<meta name="theme-color" content="#0a0e17">
|
|
<title>BuildChain</title>
|
|
<link rel="stylesheet" href="/css/style.css">
|
|
</head>
|
|
<body>
|
|
<div class="app">
|
|
<div class="header">
|
|
<h1>BuildChain</h1>
|
|
<p id="device-info">Detecting...</p>
|
|
</div>
|
|
|
|
<!-- DASHBOARD -->
|
|
<div class="page active" id="page-dash">
|
|
<div class="section">
|
|
<div class="section-title">Environment</div>
|
|
<div class="info-grid">
|
|
<div class="info-cell"><div class="info-label">Device</div><div class="info-value" id="env-device">-</div></div>
|
|
<div class="info-cell"><div class="info-label">Android / API</div><div class="info-value" id="env-api">-</div></div>
|
|
<div class="info-cell"><div class="info-label">Architecture</div><div class="info-value" id="env-arch">-</div></div>
|
|
<div class="info-cell"><div class="info-label">Build Tools</div><div class="info-value" id="env-bt">35.0.2</div></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="section">
|
|
<div class="section-title">Toolchain Status</div>
|
|
<div class="card">
|
|
<div id="status-grid" class="tool-grid"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="section">
|
|
<div class="section-title">Setup</div>
|
|
<div class="card">
|
|
<div class="card-row">
|
|
<div class="card-row-info">
|
|
<div class="card-row-label">Termux Packages</div>
|
|
<div class="card-row-desc" id="setup-status">Checking...</div>
|
|
</div>
|
|
<span class="badge" id="setup-badge">...</span>
|
|
</div>
|
|
<div class="card-row">
|
|
<div class="card-row-info">
|
|
<div class="card-row-desc">Run in Termux: <span class="prop-name">buildchain setup</span></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="actions">
|
|
<button class="btn btn-primary" onclick="loadDash()">Refresh</button>
|
|
<button class="btn" onclick="redetect()">Re-detect</button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- TOOLS -->
|
|
<div class="page" id="page-tools">
|
|
<div class="section">
|
|
<div class="section-title">Build Tools (API 35 — Static ARM64)</div>
|
|
<div class="card" id="build-tools-list"></div>
|
|
</div>
|
|
<div class="section">
|
|
<div class="section-title">Platform Tools</div>
|
|
<div class="card" id="platform-tools-list"></div>
|
|
</div>
|
|
<div class="section">
|
|
<div class="section-title">Termux Packages</div>
|
|
<div class="card" id="termux-tools-list"></div>
|
|
</div>
|
|
<div class="section">
|
|
<div class="section-title">BusyBox</div>
|
|
<div class="card" id="busybox-info"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- TEST -->
|
|
<div class="page" id="page-test">
|
|
<div class="section">
|
|
<div class="section-title">Tool Test Results</div>
|
|
<div class="card" style="padding:12px 16px">
|
|
<button class="btn btn-primary" onclick="runTest()" style="width:100%;margin-bottom:8px">Run All Tests</button>
|
|
<pre class="output" id="test-output">Tap "Run All Tests" to verify the toolchain.</pre>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<div class="section-title">Service Log</div>
|
|
<div class="card" style="padding:12px 16px">
|
|
<button class="btn" onclick="loadLog()" style="width:100%;margin-bottom:8px">Load Log</button>
|
|
<pre class="output" id="log-output">Tap to load.</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- PATHS -->
|
|
<div class="page" id="page-paths">
|
|
<div class="section">
|
|
<div class="section-title">System PATH</div>
|
|
<div class="card" id="path-list"></div>
|
|
</div>
|
|
<div class="section">
|
|
<div class="section-title">Environment Variables</div>
|
|
<div class="card" style="padding:12px 16px">
|
|
<pre class="output" id="env-output">Loading...</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="toast" id="toast"></div>
|
|
|
|
<div class="tab-bar">
|
|
<button class="tab-item active" data-tab="dash">
|
|
<svg viewBox="0 0 24 24"><path d="M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z"/></svg>
|
|
Status
|
|
</button>
|
|
<button class="tab-item" data-tab="tools">
|
|
<svg viewBox="0 0 24 24"><path d="M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z"/></svg>
|
|
Tools
|
|
</button>
|
|
<button class="tab-item" data-tab="test">
|
|
<svg viewBox="0 0 24 24"><path d="M20 8h-2.81c-.45-.78-1.07-1.45-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5s-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z"/></svg>
|
|
Test
|
|
</button>
|
|
<button class="tab-item" data-tab="paths">
|
|
<svg viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"/></svg>
|
|
Paths
|
|
</button>
|
|
</div>
|
|
|
|
<script src="/js/app.js"></script>
|
|
</body>
|
|
</html>
|