## topjohnwu/Magisk — v30.7…v31.0

_240+ commits._

### Features
- **app-legacy: add webview zygote to denylist** (3e6e432)
- **Add webview zygote as umount target** (b2d86c7)
- **app-ng: support horizontal scrolling in terminal** (a2affbb)
- **app: add scrollbar to screens in apk-ng** (599a572)
- **feat: improve/sync Arabic translation** (f31c724)
- **Update resetprop to support --compact** (2c98b6c)
- **Address new clippy warnings** (bffc910)
- **sepolicy: add unit tests for statement parsing** (9d4befe)
- **Port new download feature to apk-ng** (859ba80)
- **app: add local file supports for HttpFileChannel** (4ee1590)

### Fixes
- **app: fix scrollbar drag and list synchronization** (26dd8c1)
- **app: fix UI element shadow clipping** (4334c07)
- **app: fix touch effect and hitbox mismatches** (fed8488)
- **app: use ShortNavigationBar and fix insets** (482cde7)
- **app: fix touch handling in SuRequest dialog** (c2f8da6)
- **Fix wording in SuRequest dialog** (c603be1)
- **app: fix navigation when flashing modules** (7847ab6)
- **Fix legacy app launch** (faa5f85)
- **Fix slice copy range for 'want' in dtb.rs** (3c411ab)
- **Fix default channel shown in UI** (5262ecd)
- **fix(localization): Arabic translation** (9bd037a)
- **Fix clippy warnings across native codebase** (d046354)
- **Fix NG manager storage permission request** (0404e0c)
- **fix DataSourceChannel** (e0a7f41)
- **fix AI code** (7082518)
- **Fix API 37.0 CI** (e67be65)
- **Fix sepolicy parsing for hyphenated identifiers** (14ea5cf)
- **Fix compilation database generation when sccache is enabled** (87192bd)
- **app: support download image and patch 2/2** (b9d2107)
- **app: support download image and patch 1/2** (e70e808)
- **Fix gradlew path resolution in env.py** (4a1a069)

### Backend
- **Release Magisk v31.0** (96221b6)
- **Update release date** (bc1128c)
- **Update cargo dependencies** (584ba32)
- **Update AGP** (da382dc)
- **app: always use TerminalScreen in FlashScreen** (cc08282)
- **app: prevent SuRequest dismiss on touch outside** (b36c60a)
- **app: polish home screen actions and reboot menu** (aafda83)
- **app: modernize settings layout and choice dialogs** (7064cdf)
- **app: modernize logs screen cards and typography scale** (87a3ca3)
- **app: modernize superuser policy items with M3 ListItem** (5127a6d)
- **app: normalize TopAppBar insets across screens** (c8c214a)
- **app: dynamically generate themes from seed color** (b9ee06b)
- **app: sync system bar icon colors with theme** (38cfe2f)
- **scripts: improve release.sh build and upload flow** (42272cc)
- **scripts: verify APK signatures in release.sh** (4b0a2d5)
- **Update v31.0 changes** (29af800)
- **Remove PreviewActivity in release builds** (df50d1f)
- **app: prevent jarring item jumps in denylist UI** (3c8b9a0)
- **app: unify LogScreen header scroll background** (c98966c)
- **app: improve Material 3 component conformance** (b7ec312)
- **app: migrate to Material 3 NavigationBar** (bc3efc0)
- **app: configure link color for MarkdownText** (3612faf)
- **app: improve scrollbar drag handling and inertia** (81342a5)
- **app: use full-screen dialog for install screen** (cbfd2a7)
- **app: use MagiskDialog in SuRequestScreen** (eb1ae60)
- **app: adjust MagiskDialog width and margins** (b80d2b7)
- **app: consolidate dialogs into MagiskDialog** (c6fddfb)
- **Never import android.R** (ec3b0b8)
- **app: use pager for tabs in logs screen** (d3d5698)
- **app: update zh-rCN translation** (4e44848)
- **app: Update Indonesian translations** (93d2bab)
- **Prepare for v31.0 release** (8c4341e)
- **Promote next-gen app to production, and demote existing app to legacy** (a5c8861)
- **app-ng: improve uninstalled state on home screen** (74df51f)
- **app-ng: align app card icon and title with magisk** (e9fd6b5)
- **app-ng: move uninstall button to top app bar** (64be5dc)
- **app-ng: improve su request dialog layout** (99039b7)
- **Don't kill webview zygote on denylist change** (6833e56)
- **Update links, icons, and developer** (a6ea7ce)
- **Bump MIN_NON_EMPTY_DTB_SIZE to 0x84** (4145e52)
- **su: Enable logging and notify by default** (f38e0c8)
- **app-ng: center align empty state placeholder text** (b8b140f)
- **app-ng: improve Magisk log parsing and UI** (cbe497e)
- **Update lsposed for testing** (227e3ce)
- **Update gradle dependencies** (ce404d1)
- **zygisk: make built-in Zygisk work on Meta Quest (lazy per-trust partition zygotes)** (8903cf7)
- **Backup original sepolicy db for LD_PRELOAD strategy** (5a28d2f)
- **app: inject prebuilt bootctl into jniLibs** (5480fc4)
- **avd.sh: improve boot waiting and error handling** (2fc7a6d)
- **Update avd.sh to accept ABI** (e7e5469)
- **Convert subproject AGENTS.md into skills** (4623f54)
- **Update .gitignore** (b910c7d)
- **magiskboot: allow free zImage piggy payload size** (1506297)
- **magiskboot: port find_dtb_offset to Rust** (de60431)
- **magiskboot: migrate check_fmt to Rust** (c02705d)
- **magiskboot: Lower the compression presets for XZ & LZMA** (a19666d)
- **app: default to Monet theme and filter pre-Android S** (7600d36)
- **apk-ng: refine M3 theme color schemes** (8297807)
- **Update AGENTS.md** (cc76a4e)
- **app: modernize architecture and state in apk-ng** (99a6e27)
- **app: improve Compose idiomaticity in apk-ng** (3aaf180)
- **app: reload tabs when selected in apk-ng** (c578a96)
- **init: check charger mode before force_normal_boot** (0675a18)
- **app: reset install method when file picker or download dialog is cancelled** (a5bca88)
- **app: adopt Material 3 Expressive UI in apk-ng** (999bda3)
- **app: improve Material 3 colors in apk-ng** (6177c7c)
- **Remove unused resources** (fa6867b)
- **Update gradle dependencies** (47a112e)
- **app: resize LogLevelBadge using Material 3 Badge** (d04ab3f)
- **Update live_setup.sh** (f6af844)
- **Generate shorty in comments and reorder jni_hooks** (3bdffe6)
- **Update avd.sh** (4395497)
- **Update jni hook signatures for A17 QPR2** (65aa825)
- **Handle empty matrix.type correctly** (290200b)
- **Update build-logic** (a65e492)
- **Reduce the amount of tests to run** (ede844b)
- **Update condition to check for newline and comma** (72dfc7b)
- **Update AVB hash header image_size to match unpacked original_image_size.** (d9a9b02)
- **Update Ukraine(app/core/src/main/res/values-uk/strings.xml)** (92d88d9)
- **Update Ukraine(app/stub-res/src/main/res/values-uk/strings.xml)** (afda362)
- **Update Indonesian translations** (38e8398)
- **Update Czech translations in strings.xml for improved clarity and consistency** (a0394bb)
- **Update Italian translations (strings.xml)** (1f46593)
- **Update Italian translations for Magisk core strings.xml** (8bf3426)
- **Update libcxx** (0b0ee56)
- **Cargo fmt** (fd0cb66)
- **Update cargo dependencies** (a581038)
- **Update ONDK to r30.1** (b32ff20)
- **sepolicy: use pure token-based xperm parsing** (05099cc)
- **sepolicy: parse statements into PolicyStatement enum** (896b78c)
- **faster gradle sync** (3a9374b)
- **clean code** (ff85242)
- **do not use HEAD** (dcb15e2)
- **remove unused code** (fbcafdf)
- **clean strings** (71d29f3)
- **Disable cuttlefish test** (5c82406)
- **Setup userspace Magisk tests** (0f59f1f)
- **Update gradle dependencies** (ffadcfd)
- **Update CI versions** (f5907f2)
- **Update zygisk sepolicy for A17 QPR1 Beta 4** (1b9f69b)
- **Update to ONDK r30.0** (9d0b529)
- **Run CI on API 37.0** (36511c6)
- **Update avd.sh** (75f60d6)
- **Build against API 37** (ee3ce37)
- **Address several lint issues** (42fa348)
- **Move InstallBottomSheet into its own file** (80e2849)
- **Update gradle dependencies** (77ea982)
- **Update Serbian translations (Cyrillic & Latin)** (be7a4b4)
- **Update Samsung download mode documentation** (63b20ce)
- **Switch over to use Wire** (7976897)
- **app: delete unused files** (bdcd938)
- **app: update zh-rCN translation** (2768812)
- **app: use userspace copy** (483901f)
- **app: auto measure width** (069bbc4)
- **Remove unused code** (7d5942a)
- **Remove hardcoded strings in apk-ng** (81413b0)

### Docs
- **docs: update AGENTS.md in subdirectories** (8cc4d3a)
- **docs: update native AGENTS.md guidelines** (dfd9fe0)
- **docs: update AGENTS.md guidelines for AI models** (cfd195b)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/topjohnwu/Magisk?utm_source=github-action)._