Skip to content

Commit 0738435

Browse files
committed
fix(uninstall): restore description immediately on WebUI uninstall
The daemon's periodic tick was the only path to restore the original TrickyStore description, so it stayed stale if the daemon was stopped or the tick didn't fire before reboot. Now uninstall() restores it directly. Also fixed the backup path mismatch between Rust and shell.
1 parent 9fd5925 commit 0738435

3 files changed

Lines changed: 12 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@
22

33
## v5.24.0 (2026-03-11)
44

5+
### Features
6+
- **x86_64 and x86 ABI support** — module now ships binaries for all four Android ABIs (arm64-v8a, armeabi-v7a, x86_64, x86), enabling Waydroid and emulator installs
7+
58
### Bug Fixes
69
- **Bootloader detection by TrustAttestor**`check_reset_prop` was creating props on devices where they don't naturally exist (e.g. Realme/OnePlus-specific props on Xiaomi), giving attestor apps a clear tampering signal. Now skips non-existent props instead of blindly injecting them, matching stock behavior
710
- **AVB version mismatch**`ro.boot.vbmeta.avb_version` was set to `1.3` (non-standard) instead of `1.0`, creating a detectable inconsistency with the actual AVB stack
811
- **Extra props in Rust backend** — removed `ro.bootimage.build.tags`, `ro.boot.verifiedbooterror`, and `ro.boot.veritymode.managed` from the Rust prop list since they don't exist on most devices and would be created unnecessarily
912
- **Unconditional prop injection**`ro.oem_unlock_supported` and `ro.secureboot.devicelock` were set outside the ZeroMount guard, now properly gated
13+
- **Stale description on uninstall** — WebUI uninstall now immediately restores the original TrickyStore/TEESimulator description instead of relying on daemon timing; also fixed path mismatch between Rust (`description.bak`) and shell (`.original_description`) backup files
1014

1115
---
1216

rust/src/module/mod.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,10 @@ pub fn uninstall() -> Result<()> {
156156
let mod_dir = find_module_dir()
157157
.ok_or_else(|| anyhow::anyhow!("module directory not found"))?;
158158

159+
if let Err(e) = crate::status::restore_original_description() {
160+
debug!("could not restore description: {e}");
161+
}
162+
159163
let remove_flag = Path::new(&mod_dir).join("remove");
160164
std::fs::write(&remove_flag, "")
161165
.context("failed to write remove flag")?;

uninstall.sh

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,9 @@ rm -f "$SCRIPT_DIR/devconfig.toml"
7676
rm -rf "/data/adb/modules/TA_enhanced"
7777

7878
# Restore TrickyStore description
79-
if [ -f "$SCRIPT_DIR/.original_description" ] && [ -f "$TS/module.prop" ]; then
80-
orig=$(cat "$SCRIPT_DIR/.original_description" 2>/dev/null)
79+
DESC_BAK="$TA_DIR/description.bak"
80+
if [ -f "$DESC_BAK" ] && [ -f "$TS/module.prop" ]; then
81+
orig=$(cat "$DESC_BAK" 2>/dev/null)
8182
if [ -n "$orig" ]; then
8283
sed -i "s|^description=.*|description=${orig}|" "$TS/module.prop" 2>/dev/null
8384
_uninstall_log "Restored original description"
@@ -95,7 +96,7 @@ fi
9596

9697
# Clean status files
9798
rm -f "$SCRIPT_DIR/.health_state"
98-
rm -f "$SCRIPT_DIR/.original_description"
99+
rm -f "$TA_DIR/description.bak"
99100
rm -f "$SCRIPT_DIR/.status_installed"
100101
rm -f "$SCRIPT_DIR/.status_targets"
101102

0 commit comments

Comments
 (0)