7638 Commits

Author SHA1 Message Date
LoveSy 7a6c8508ce Migrate Log screen to Jetpack Compose with miuix
Replace the Fragment data-binding UI with a Compose-based LogScreen
using miuix TabRow for switching between SU Log and Magisk Log tabs.
LogViewModel now uses StateFlow instead of @Bindable properties.
Remove old XML layouts, LogRvItem, and SuLogRvItem. Also clean up
stale tools:layout references in navigation graph.

Made-with: Cursor
2026-03-16 02:48:20 -07:00
LoveSy ffdb5cb511 Migrate DenyList screen to Jetpack Compose with miuix
Replace the DenyList screen's data-binding XML layouts and RecyclerView
system with a Compose UI using LazyColumn, Card, Checkbox, and Switch.

DenyListViewModel now uses StateFlow with combine for reactive filtering
instead of the custom filterList/ObservableHost pattern. App and process
state is tracked via Compose mutableStateOf for efficient recomposition.

Remove DenyListRvItem.kt and all associated XML layouts (fragment_deny_md2,
item_hide_md2, item_hide_process_md2).

Made-with: Cursor
2026-03-16 02:48:20 -07:00
LoveSy 47f1a33585 Move Settings to bottom navigation bar
Add Settings as a fifth tab in the bottom nav bar instead of a toolbar
icon in the Home screen. Add a global nav action for the settings
destination and remove the old Home-to-Settings fragment action.

Made-with: Cursor
2026-03-16 02:48:20 -07:00
LoveSy 20d6d70ff6 Fix Settings crash when update channel is default (-1)
Config.Value.DEFAULT_CHANNEL is -1, which is out of bounds for the
SuperDropdown items list. Coerce to valid range on initialization.

Made-with: Cursor
2026-03-16 02:48:20 -07:00
LoveSy 397a906905 Migrate Settings screen to Jetpack Compose with miuix
Replace the Settings screen's data-binding XML layouts and RecyclerView
item system with a declarative Compose UI using miuix components:
SuperSwitch for toggles, SuperDropdown for selectors, SuperArrow for
navigation items, and SuperDialog for text input dialogs.

SettingsViewModel now exposes DenyList state via StateFlow and provides
action methods instead of the old Handler/BaseSettingsItem pattern.

Remove BaseSettingsItem.kt, SettingsItems.kt, and all associated XML
layouts (fragment_settings_md2, item_settings, item_settings_section,
dialog_settings_app_name, dialog_settings_download_path,
dialog_settings_update_channel).

Made-with: Cursor
2026-03-16 02:48:20 -07:00
LoveSy a9ade79617 Fix HomeFragment to observe ViewModel events
Implement ViewModelHolder in HomeFragment so that ViewEvents
(navigation, permissions, snackbar) are properly dispatched.

Made-with: Cursor
2026-03-16 02:48:20 -07:00
LoveSy 70a0dafb21 Migrate Home screen to Jetpack Compose with miuix
Replace the Home screen's data-binding XML layouts with a Compose UI
using miuix components. HomeViewModel now uses StateFlow instead of
@Bindable/ObservableHost for UI state. HomeFragment hosts the new
HomeScreen composable via ComposeView.

Remove old XML layouts (fragment_home_md2, include_home_magisk,
include_home_manager, item_developer, item_icon_link) and the
DeveloperItem RvItem class that are no longer needed.

Made-with: Cursor
2026-03-16 02:48:20 -07:00
LoveSy e6c4268694 Add MagiskTheme composable wrapping MiuixTheme
Create MagiskTheme that wraps MiuixTheme with light/dark color scheme
based on the existing Config.darkTheme preference setting.

Made-with: Cursor
2026-03-16 02:48:20 -07:00
LoveSy 9107bb6af3 Add Compose and miuix dependencies
Add Jetpack Compose BOM, activity-compose, lifecycle-runtime-compose,
lifecycle-viewmodel-compose, and miuix library dependencies.
Enable the Compose compiler plugin alongside existing data binding.

Made-with: Cursor
2026-03-16 02:48:16 -07:00
topjohnwu 925ed577e7 Move plugins to its own section in version catalog 2026-03-16 02:46:57 -07:00
Neebe3289 1d4fbd9e75 Update Indonesian translation
Change-Id: I19f109e9cdfec643b33180a78b932f47b2030d7d
2026-03-11 00:45:08 -07:00
yashikada 7845da2943 Workaround for #9726 2026-03-11 00:44:18 -07:00
topjohnwu 6bb48df712 Go through rustup proxy if possible 2026-03-11 00:43:18 -07:00
topjohnwu e8a58776f1 Release Magisk v30.7
[skip ci]
v30.7
2026-02-23 00:02:33 -08:00
topjohnwu 07e92948c8 Add CI tests for Android 17 2026-02-22 23:26:10 -08:00
topjohnwu 74ead75ce8 Update cargo dependencies 2026-02-22 14:39:46 -08:00
topjohnwu bb082e703c Update app dependencies 2026-02-22 14:22:54 -08:00
Wang Han ee25db0627 Add jni hooks signature for nubia 2026-02-22 13:20:08 -08:00
topjohnwu 9ee6a6b3d7 Update to ONDK r29.5 2026-02-06 16:32:25 -08:00
Wang Han e872fafd8b Update getModuleDir() API doc 2026-02-05 13:12:34 -08:00
topjohnwu dd3798905f Update libsepol to upstream Android 16 QPR2 2026-02-05 12:51:21 -08:00
Roshabor c07eac118c Update ota.md
Hi there, appreciate you and your work.

Proposing a small change to the A/B device update instructions, based on your changes within the Magisk app which made those instructions outdated/ invalid. 
Specifically, after installing Magisk to the new slot, apparently Magisk then instructs to go back to the system update and hit restart now, instead of the prior instructions which remain on this website of rebooting within the Magisk app. I just did testing, and rebooting within the Magisk app does not result in slot switch, which must be why you noe instruct to go back to system update for the restart now. 

Just thought I'd update the instructions for anyone who might be confused. 

Thx!
2026-02-05 11:13:49 -08:00
topjohnwu 4dd6e3c252 Minor changes for app 2026-02-05 00:56:10 -08:00
Ephemera42 0d39b10889 Optimize preinit finding and add klogdump partition
* Use major number check to filter out device-mapper devices while preserving virtio-blk compatibility.
* Introduce `klogdump` partition support for Smartisan devices as a valid preinit target.
2026-02-04 21:10:25 -08:00
vvb2060 628b4d4715 Allow reacquiring capabilities if not explicitly cleared
- Old behavior: Switching to a non-zero UID was implicitly interpreted as a request to drop capabilities, thereby preventing subsequent reacquisition  via `su`.
- New behavior: Switching to a non-zero UID now requires the `--drop-cap` argument to explicitly prevent the reacquisition of capabilities.
2026-02-04 11:35:24 -08:00
LoveSy be5246aef5 Reorder positional arguments in Backup and Remove 2026-02-04 11:35:12 -08:00
LoveSy b55f597ccf Skip loading magisk in charger mode 2026-02-03 15:55:53 -08:00
Wang Han e729eec636 Remove unnecessary file system permissions
Removed permissions for mounting loop devices, mirrors, and tmpfs.
2026-02-02 11:15:33 -08:00
Wang Han a657af5dc9 Refine useLocaleManager with intent check for locales
This fixes https://github.com/topjohnwu/Magisk/issues/9628.
2026-01-31 23:34:03 -08:00
Padraic Slattery 34137b112a chore: Update outdated GitHub Actions versions 2026-01-31 15:27:41 -08:00
LoveSy 5f13a8f8f7 support sony's init.real 2026-01-31 13:54:34 -08:00
osm0sis 8495a03947 Fix A-only addon.d retaining PREINITDEVICE on 30300+
- broken after https://github.com/topjohnwu/Magisk/commit/742913ebcb10cf819a54699497359535047874f7 so use get_flags to be more futureproof
2026-01-31 13:52:44 -08:00
canyie ac8d4200e1 Add nativeSpecializeAppProcess signature for XR devices running 14
Build fingerprint: google/gms_sdk_xr64_x86_64/emulator64_x86_64:14/UP1A.231005.007.A1/13953962:userdebug/test-keys
2026-01-31 13:51:41 -08:00
Wang Han e590ffbdcb Fix formatting and update comments in bootimg.cpp 2026-01-31 13:50:36 -08:00
Wang Han 97138f1e91 magiskboot: Fix tail offset calculation 2026-01-31 13:50:36 -08:00
LoveSy bea50fafba Fix magiskboot cpio ls -r 2026-01-31 13:50:13 -08:00
Pzqqt 0919db6b11 magiskboot: Avoid implicit type conversion
Fix #9607
2026-01-19 23:33:00 +08:00
topjohnwu 18c1347bd3 Update to AGP 9.0 2026-01-19 23:29:02 +08:00
topjohnwu 0bbc736051 Properly set abiList with config.prop for APK 2025-12-16 02:38:27 -08:00
topjohnwu 01cb75eaef Code cleanup 2025-12-13 22:12:30 -08:00
topjohnwu 33eaa7c5eb Update cargo dependencies 2025-12-12 11:42:45 -08:00
topjohnwu 8734423cb0 Update to ONDK r29.4 2025-12-12 11:42:45 -08:00
topjohnwu da9e72b2a2 Update gradle dependencies 2025-12-12 11:42:45 -08:00
topjohnwu ff4ca74cfe Ban all unwrap usage in codebase 2025-12-08 23:31:04 -08:00
topjohnwu 200665c48a Make jni_hooks.hpp a normal C++ header
[skip ci]
2025-12-07 02:44:19 -08:00
topjohnwu dd42aa99ea Refactor gen_jni_hooks.py
[skip ci]
2025-12-07 02:25:50 -08:00
Wang Han 0936cdb192 Update nativeForkAndSpecialize signature for A16 QPR2
https://android.googlesource.com/platform/frameworks/base.git/+/67a4b1b2fee385f798d75ad02d016b80fc79f075
2025-12-07 00:18:50 -08:00
topjohnwu 871643dce2 Enable CI for API 36.1 2025-12-07 00:18:50 -08:00
topjohnwu a510554b21 Disable Zygisk upon incomplete JNI hook
Do not enable Zygisk unless ALL replacements are hooked properly.
This allow Zygisk tests to fail when new signature is introduced.
2025-12-07 00:18:50 -08:00
Arbri çoçka 9cc830c565 Update strings.xml values_sq 2025-12-05 16:22:03 -08:00