AUTARCH v1.9 — remote monitoring, SSH manager, daemon, vault, cleanup
- Add Remote Monitoring Station with PIAP device profile system - Add SSH/SSHD manager with fail2ban integration - Add privileged daemon architecture for safe root operations - Add encrypted vault, HAL memory, HAL auto-analyst - Add network security suite, module creator, codex training - Add start.sh launcher script and GTK3 desktop launcher - Remove Output/ build artifacts, installer files, loose docs - Update .gitignore for runtime data and build artifacts - Update README for v1.9 with new launch method, screenshots, and features Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -41,6 +41,9 @@
|
||||
<span style="font-weight:600;font-size:0.85rem;color:var(--text-secondary)">ADB Mode:</span>
|
||||
<button id="ap-mode-server" class="btn btn-sm active" onclick="apSetMode('server')">Server (Local ADB)</button>
|
||||
<button id="ap-mode-direct" class="btn btn-sm" onclick="apSetMode('direct')">Direct (WebUSB)</button>
|
||||
<button class="btn btn-sm btn-danger" onclick="apAdbKillServer()" title="Kill ADB server process">Kill ADB</button>
|
||||
<button class="btn btn-sm" onclick="apAdbStartServer()" title="Restart ADB server">Start ADB</button>
|
||||
<span id="ap-adb-status" style="font-size:0.78rem;color:var(--text-muted)"></span>
|
||||
<span id="ap-direct-bar" style="display:none;align-items:center;gap:0.5rem">
|
||||
<span id="ap-device-label" style="font-size:0.85rem;color:var(--text-secondary)">Not connected</span>
|
||||
<button class="btn btn-sm" onclick="apDirectConnect()">Connect</button>
|
||||
@@ -387,6 +390,24 @@ let apLastScan = null;
|
||||
let apMode = 'server';
|
||||
|
||||
/* ── Mode Switching ── */
|
||||
function apAdbKillServer() {
|
||||
var s = document.getElementById('ap-adb-status');
|
||||
if (s) s.textContent = 'Killing...';
|
||||
fetch('/hardware/adb/kill-server', {method: 'POST'}).then(function(r) { return r.json(); }).then(function(d) {
|
||||
if (s) s.textContent = d.ok ? 'Killed' : 'Error';
|
||||
setTimeout(function() { if (s) s.textContent = ''; }, 3000);
|
||||
});
|
||||
}
|
||||
|
||||
function apAdbStartServer() {
|
||||
var s = document.getElementById('ap-adb-status');
|
||||
if (s) s.textContent = 'Starting...';
|
||||
fetch('/hardware/adb/start-server', {method: 'POST'}).then(function(r) { return r.json(); }).then(function(d) {
|
||||
if (s) s.textContent = d.ok ? 'Started' : 'Error';
|
||||
setTimeout(function() { if (s) s.textContent = ''; }, 3000);
|
||||
});
|
||||
}
|
||||
|
||||
function apSetMode(mode) {
|
||||
apMode = mode;
|
||||
localStorage.setItem('ap_connection_mode', mode);
|
||||
@@ -542,6 +563,7 @@ function apScan(type) {
|
||||
apSetStatus('Done');
|
||||
apLastScan = data;
|
||||
box.innerHTML = apRenderScan(type, data);
|
||||
halAnalyze('Shield', JSON.stringify(data, null, 2), 'android protection', 'android');
|
||||
}).catch(e => {
|
||||
apSetStatus('Error');
|
||||
box.innerHTML = '<span style="color:#e74c3c">Error: ' + e.message + '</span>';
|
||||
@@ -733,6 +755,7 @@ function apExportReport() {
|
||||
} else {
|
||||
box.innerHTML = '<span style="color:#e74c3c">Error: ' + (data.error || 'Unknown') + '</span>';
|
||||
}
|
||||
halAnalyze('Shield', JSON.stringify(data, null, 2), 'android protection', 'android');
|
||||
});
|
||||
}
|
||||
|
||||
@@ -753,6 +776,7 @@ function apFindDangerous() {
|
||||
});
|
||||
} else h += '<p style="color:#27ae60">No apps with dangerous combos found.</p>';
|
||||
box.innerHTML = h;
|
||||
halAnalyze('Shield', JSON.stringify(data, null, 2), 'android protection', 'android');
|
||||
});
|
||||
}
|
||||
|
||||
@@ -779,6 +803,7 @@ function apAnalyzePerms() {
|
||||
(p.denied||[]).forEach(pm => h += '<li><code>' + pm + '</code></li>');
|
||||
h += '</ul>';
|
||||
box.innerHTML = h;
|
||||
halAnalyze('Shield', JSON.stringify(data, null, 2), 'android protection', 'android');
|
||||
});
|
||||
}
|
||||
|
||||
@@ -805,6 +830,7 @@ function apPermHeatmap() {
|
||||
h += '</tbody></table></div>';
|
||||
if (matrix.length > 50) h += '<p><small>Showing 50 of ' + matrix.length + ' apps</small></p>';
|
||||
box.innerHTML = h;
|
||||
halAnalyze('Shield', JSON.stringify(data, null, 2), 'android protection', 'android');
|
||||
});
|
||||
}
|
||||
|
||||
@@ -826,6 +852,7 @@ function apFix(action) {
|
||||
} else {
|
||||
box.innerHTML = '<span style="color:#e74c3c">Error: ' + (data.error || JSON.stringify(data)) + '</span>';
|
||||
}
|
||||
halAnalyze('Shield', JSON.stringify(data, null, 2), 'android protection', 'android');
|
||||
});
|
||||
}
|
||||
|
||||
@@ -839,6 +866,7 @@ function apFixProxy() {
|
||||
h += '<div>' + (r.ok ? '<span style="color:#27ae60">[OK]</span>' : '<span style="color:#e74c3c">[FAIL]</span>') + ' ' + r.setting + '</div>';
|
||||
});
|
||||
box.innerHTML = h;
|
||||
halAnalyze('Shield', JSON.stringify(data, null, 2), 'android protection', 'android');
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user