Remove standalone stealth system, keep only driver spoof + boot timing

This commit is contained in:
sssnake
2026-03-31 12:05:49 -07:00
parent 90decee874
commit ad5f6d1804
17 changed files with 71684 additions and 281 deletions

View File

@@ -415,44 +415,6 @@
</div>
</div>
<!-- Stealth -->
<div class="card">
<div class="card-title"><span class="dot" id="stealthDot"></span> Stealth</div>
<div class="row">
<div>
<div class="row-label">Stealth Mode</div>
<div class="row-desc">Hide module, mask processes, clean traces</div>
</div>
<select class="sel" id="stealthMode" onchange="setStealthMode(this.value)">
<option value="off">Off</option>
<option value="hide_module">Hide Module</option>
<option value="mask_procs">Mask Processes</option>
<option value="hide_props">Hide Props</option>
<option value="mac_random">MAC Randomization</option>
<option value="hide_usb">Hide USB Devices</option>
<option value="clean_logs">Clean Logs</option>
<option value="full">Full Stealth</option>
</select>
</div>
<div class="row">
<div>
<div class="row-label">Stealth Status</div>
<div class="row-desc" id="stealthStatus">Inactive</div>
</div>
</div>
<div class="row">
<div>
<div class="row-label">MAC Randomization</div>
<div class="row-desc">WiFi + Bluetooth address randomization</div>
</div>
<div class="row-value" id="macStatus"></div>
</div>
<div class="btn-row">
<button class="btn" onclick="purgeTraces()">Purge All Traces</button>
<button class="btn btn-primary" onclick="applyStealthNow()">Apply Now</button>
</div>
</div>
<!-- Log -->
<div class="card">
<div class="card-title">Log</div>
@@ -585,74 +547,6 @@
}
}
async function setStealthMode(mode) {
log('Setting stealth: ' + mode);
await exec('echo "' + mode + '" > ' + MODDIR + '/config/stealth_mode');
log('Stealth mode set to: ' + mode + '. Apply or reboot to activate.');
await loadStealthStatus();
}
async function applyStealthNow() {
log('Applying stealth...');
await exec('sh ' + MODDIR + '/service.sh &');
setTimeout(async () => {
await loadStealthStatus();
log('Stealth applied');
}, 3000);
}
async function purgeTraces() {
log('Purging all traces...');
// Clear module logs
await exec('echo "" > ' + MODDIR + '/driver-manager.log');
// Clear logcat entries from our tags
await exec('logcat -b all -c 2>/dev/null');
// Remove stealth wrappers (recreated on next apply)
await exec('rm -rf ' + MODDIR + '/.wrappers');
// Clear run state
await exec('rm -f ' + MODDIR + '/run/*.pid');
// Clear stream data
await exec('rm -f ' + MODDIR + '/streams/*');
// Clear spectrum/adsb output
await exec('rm -f ' + MODDIR + '/spectrum_data.csv ' + MODDIR + '/adsb_output.txt');
document.getElementById('logArea').textContent = 'Traces purged.';
log('All traces purged');
await loadStealthStatus();
}
async function loadStealthStatus() {
const mode = (await exec('cat ' + MODDIR + '/config/stealth_mode 2>/dev/null')).stdout.trim();
if (mode) document.getElementById('stealthMode').value = mode;
const dot = document.getElementById('stealthDot');
const status = document.getElementById('stealthStatus');
if (mode === 'full') {
dot.className = 'dot';
status.textContent = 'Full stealth active — logs disabled, processes masked, props hidden';
} else if (mode && mode !== 'off') {
dot.className = 'dot warn';
status.textContent = 'Partial: ' + mode;
} else {
dot.className = 'dot off';
status.textContent = 'Inactive';
}
// MAC randomization status
const wifiMac = (await exec('settings get global wifi_connected_mac_randomization_enabled 2>/dev/null')).stdout.trim();
const btMac = (await exec('settings get global bluetooth_addr_randomization_enabled 2>/dev/null')).stdout.trim();
const macEl = document.getElementById('macStatus');
if (wifiMac === '1' && btMac === '1') {
macEl.textContent = 'WiFi + BT';
} else if (wifiMac === '1') {
macEl.textContent = 'WiFi only';
} else if (btMac === '1') {
macEl.textContent = 'BT only';
} else {
macEl.textContent = 'off';
}
}
async function setMode(file, value) {
log('Setting ' + file + ' = ' + value);
await exec('echo "' + value + '" > ' + MODDIR + '/config/' + file);
@@ -743,7 +637,6 @@
await loadRtlStatus();
await loadBootStatus();
await loadSpoofStatus();
await loadStealthStatus();
log('Done');
}