[MODULE/SYSTEM] NanoDroid 23.1.2.20210117 (microG, pseudo-debloat, F-Droid + apps) - Magisk

NanoDroid
NanoDroid is a installer for various OpenSource related things, most noticably microG and F-Droid. It supports direct /system installation, both devices with or without A/B partition scheme, aswell as Magisk Mode (module) installation. It also includes several tools (eg. GNU Bash, shell utilities, more), scripts, fonts, sounds and additional features (system debloating, init scripts, automatic logcat creation), aswell as a companion F-Droid Repository.
Furthermore it allows the user to do fine-graded installations using configuration files, which allow to choose what to install, or if several alternatives are available, which of them, see "Alter Installation" in the full documentation (link at the end of this post).
In order for full microG experience NanoDroid contains a modified Play Store which allows (in-)app-purchases with microG, which would normally not be possible. It also tries to remove all previously installed GApps on it's own. For ROMs without builtin signature spoofing support NanoDroid includes an on-device Patcher which tries to patch your ROM from TWRP.
Versions until 15.1 were called NanoMod, starting with 16.0 they're called NanoDroid.
NanoDroid does now have a companion F-Droid Repository for easy updates of Play Store (patched with (in-)app-purchase support) and MPV builds Repository Info-Page
Current Release
Stable: 23.1.1.20210117 "BusyCompat"
Beta: --- (---)
Nanolx: latest stable and beta releases
Snapshot: read the documentation in the git repository on how to create a snapshot build
Supported Android Versions
NanoDroid officially supports the following Android versions:
4.4 / SDK 19 (KitKat)
System Mode only (Magisk does not support KitKat)
5.0 / SDK 21 (Lollipop)
5.1 / SDK 22 (Lollipop)
6.0 / SDK 23 (Marshmallow)
7.0 / SDK 24 (Nougat)
7.1 / SDK 25 (Nougat)
8.0 / SDK 26 (Oreo)
8.1 / SDK 27 (Oreo)
9.0 / SDK 28 (Pie)
Patchers works, if you've previously manually deodexed services.jar
Deodex Instructions
10.0 / SDK 29
Patchers works, if you've previously manually deodexed services.jar
Deodex Instructions
11.0 / SDK 30 (R)
Patcher does not work from TWRP
Patcher works from Magisk if your ROM's services.jar already contains classes.dex
Deodex Instructions
earlier versions will never officially be supported (you may still report bugs, though).
Future versions will be officially supported, eventually.
Summary
NanoDroid can be installed as a Magisk Module or directly to /system, though a bit functionality is only available with Magisk. It must be installed from TWRP!
NanoDroid includes
microG and it's companions
on-device framework-patcher for microG support (signature spoofing)
F-Droid and it's privileged extension
modified Play Store to allow (in-)app-purchases with Magisk
alternatively Aurora Store can be installed instead
custom init scripts
pseudo-debloat feature
disables applications systemless-ly
pre-configured default settings
several Open Source applications
include replacements for the pseudo-debloated applications
full list of included applications
Packages
Magisk Modules
Module packages, flashing through TWRP recommended, flashing through Magisk Manager possible starting with version 22.6.91 (22.7-beta2).
NanoDroid: includes
everything mentioned in the Summary
NanoDroid-microG: includes
microG and it's companions
GNU Bash
pseudo-debloat feature
app stores
NanoDroid-fdroid: includes
F-Droid and it's privileged extension
NanoDroid-BromiteWebView: includes
Bromite WebView
NanoDroid-OsmAnd: includes
OpenStreetMap for Android (OsmAnd+)
Extras
Extra packages, flashing through TWRP recommended, flashing through Magisk Manager possible starting with version 22.6.91 (22.7-beta2).
NanoDroid-pacher: includes
on-device framework-patcher (signature spoofing support)
NanoDroid-systest: includes
System Test script which generates a log to aid issue reporting
NanoDroid-uninstaller: includes
uninstalls all NanoMod/NanoDroid Magisk Modules
uninstalls NanoMod/NanoDroid installed in System Mode
uninstalls NanoMod/NanoDroid-Patcher addon.d environment
The GitLab repository contains the full documentation with infos about
more detailed info what's included
detailed installation instructions
setup instructions for microG
list of known Issues (and fixes/workarounds)
more
>> Full Documentation

ChangeLog
https://gitlab.com/Nanolx/NanoDroid/blob/master/ChangeLog.md

List of known issues (and fixes)
https://gitlab.com/Nanolx/NanoDroid#issues

Can we pass safetynet with xposed. with microg?

purval6300 said:
Can we pass safetynet with xposed. with microg?
Click to expand...
Click to collapse
No difference between GApps and microG.

In the github repository you'll find the following changes for upcoming 5.1 (no ETA)
updated Magisk to beta.13.170405 (which fixes the issues I had with 12.0 on Moto X Play and Galaxy S6)
improved nanomod-overlay script
the script does now have better output for -l/--list parameter (which lists all pseudo-debloated system apps)
the script does now have -s/--show parameter which shows all non-pseudo-debloated system apps with both apkname and label (label = the name that shows up in launcher)
there's no 'column' command on android, so the output is not pretty aligned, but well
Screenshots attached.

Suggestion
Add this for microG set up
Disable Battery Optimization, if you use Android 6 (Marshmallow) or above. Ensure that it is disabled for microG Services Core in System Settings > Battery > Menu > Battery optimization. Note that this is the case for the original Play Services, as it is required to keep a stable background connection.

atendedor_de_boludos said:
Suggestion
Add this for microG set up
Disable Battery Optimization, if you use Android 6 (Marshmallow) or above. Ensure that it is disabled for microG Services Core in System Settings > Battery > Menu > Battery optimization. Note that this is the case for the original Play Services, as it is required to keep a stable background connection.
Click to expand...
Click to collapse
I mentioned to ensure everything is set in 'Self Check', but I consider will re-word that paragraph to be more clear.

Hi. I got "updater process ended with signal 4" when tried to flash this.
Using galaxy s3, with RR 5.8.2.

djedjy said:
Hi. I got "updater process ended with signal 4" when tried to flash this.
Using galaxy s3, with RR 5.8.2.
Click to expand...
Click to collapse
After flashing in TWRP connect your phone to pc and use adb to grab a log from recovery
Code:
adb pull /tmp/recovery.log
Then post recovery.log (rename to recovery.txt) file here.

Will this work on my Galaxy S7 using stock ROM? I'm interested in installing microG to satify apps dependant on Google Play Services, but I couldn't get it because it needs signature spoofing, and the mods it recommended needed a deodexed ROM, which mine is not.

CyanogenLover said:
Will this work on my Galaxy S7 using stock ROM? I'm interested in installing microG to satify apps dependant on Google Play Services, but I couldn't get it because it needs signature spoofing, and the mods it recommended needed a deodexed ROM, which mine is not.
Click to expand...
Click to collapse
If your ROM is not deodexed you can't patch services.jar, so microG won't work. Anything else in the package would work, though.

Setialpha said:
If your ROM is not deodexed you can't patch services.jar, so microG won't work.
Click to expand...
Click to collapse
Is there a way to deodex the stock ROM without bricking my S7? It sounds complicated, and I'm sure it is, but there must be a way! :fingers-crossed:

Setialpha said:
After flashing in TWRP connect your phone to pc and use adb to grab a log from recovery
Code:
adb pull /tmp/recovery.log
Then post recovery.log (rename to recovery.txt) file here.
Click to expand...
Click to collapse
Here:
Code:
I:operation_start: 'Flashing'
Installing zip file '/sdcard/NanoMod-5.0.20170405.zip'
Checking for MD5 file...
Skipping MD5 check: no MD5 file found
I:Zip does not contain SELinux file_contexts file in its root.
I:Legacy property environment initialized.
<>> <<>
<>> <<>< NanoMod 5.0.20170405 >
< NanoMod 5.0.20170405 > <<> <>>
<<> <>>Updater process ended with signal: 4
I:Legacy property environment disabled.
I:Install took 0 second(s).
Error installing zip file '/sdcard/NanoMod-5.0.20170405.zip'
Updating partition details...
I:Data backup size is 71MB, free: 4441MB.
I:Unable to mount '/usb-otg'
I:Actual block device: '', current file system: 'vfat'
...done
I:Set page: 'flash_done'
I:operation_end - status=1
I:Set page: 'clear_vars'
I:Set page: 'main2'
I:Set page: 'advanced'
I:Set page: 'filemanagerlist'
Truncating string cache entries.
I:Set page: 'filemanageroptions'
I:Set page: 'choosedestinationfolder'
I:Set page: 'filemanagerconfirm'
I:Set page: 'filemanageraction'
I:operation_start: 'Command'
I:Running command: 'cp "/tmp/recovery.log" "/sdcard"'

djedjy said:
...
Click to expand...
Click to collapse
You either have MD5/signature check for zip files active in TWRP, then disable it, or your TWRP is buggy,. Because it fails early, ar that stage the updater-script sets the progrssbar to 10% and mounts partitions.
Do you have the latest TWRP installed for your device?

FYI on AFH you can now find a microG only Magisk Module, too. framework-patcher.sh in github repo was updated to support both modules. You can also use 'mod.sh microg' to create the microG only zip from git repo.
Link: https://www.androidfilehost.com/?a=show&w=files&flid=150729
The microG only module does support
Code:
nanomod.reinstall
nanomod.play
configuration parameters, like the full package.

version 5.1.20170408 released
Version 5.1.20170408 released, with the following changes since 5.0.20170405:
Code:
5.1.20170408:
- Internal Changes
* only copy DroidGuard.apk to /sdcard if
'nanomod.microg' is '1' in 'nanomod-setup'
configuration file
* add new option 'nanomod.zelda' to 'nanomod-setup'
configuration file, allows to control whether to
install or not install Zelda ringtones and sounds
* 'nanomod.play=0' now actually works and does not
install any app store
- Variants
* full package: microG, F-Droid & apps, pseudo-debloat
feature, Zelda ringtones & sounds, GNU Bash, GNU Nano,
aapt utility
* microG package: microG only
* framework-patcher.sh updated to support both modules
- Removed files / features
* Effect_Tick Zelda sound
- I admit, that one was too annoying
* Magisk installation
* unsu Script
- Read: NanoMod is now only the Module, no longer
includes Magisk itself
- nanomod-overlay Script Changes
* parameter '-l', respectively '--list' now has
properly formatted output
* parameter '-r', respectively '--remove' now
only removed exact matches from config file
* parameter '-a', respectively '--add' now
properly formats config file
* new parameter '-s', respectively '--show' which
shows all non pseudo-debloated system applications
* new paramter '-d', respectively '--delete' which
will remove all overrides and thus re-enable all
applications, unlike '-r' / '--remove' this will
not change the config file, so you can re-debloat
using '-u' / '--update' again
- Updates
* Play Store (7.7.09.O)
* VLC (2.1.4~beta)
* GNU Nano (2.7.5)
* Substratum (631)
- Added applications
* F-Droid Privileged Extension (0.2.2)
- allows installation of apps using F-Droid
without enabling 'Unknown Sources' in the
security settings of your device
I also changed a few things in the README/first post here (for example paragraph "Installation" with download links is now almost at top, instead of bottom). Magisk is no longer installed, so this is now really a Magisk Module on it's own.

This work is exactly what the community needs to help move novices like me into an open-source-ONLY ecosystem. Thank you!!!

Setialpha said:
FYI on AFH you can now find a microG only Magisk Module, too. framework-patcher.sh in github repo was updated to support both modules. You can also use 'mod.sh microg' to create the microG only zip from git repo.
Link: https://www.androidfilehost.com/?a=show&w=files&flid=150729
The microG only module does support
Code:
nanomod.reinstall
nanomod.play
configuration parameters, like the full package.
Click to expand...
Click to collapse
I installed this version, but I cannot get Phonesky (play store) to have the correct signature. System is spoofing signature correctly, but somehow play store doesn't. Every tick in self check section is there, except the "Play Store (Phonesky) has correct signature" tick. The play store works fine signing in and downloading. However apps like gmail do not work. Maybe it needs to be put in priv-app?
Running Crdroid 7.1.1 (supports spoofing signature) oneplus one, latest nanomod package 0408, magisk v12

f41lbl0g said:
FYI on AFH you can now find a microG only Magisk Module, too. framework-patcher.sh in github repo was updated to support both modules. You can also use 'mod.sh microg' to create the microG only zip from git repo.
Link: https://www.androidfilehost.com/?a=show&w=files&flid=150729
The microG only module does support
I installed this version, but I cannot get Phonesky (play store) to have the correct signature. System is spoofing signature correctly, but somehow play store doesn't. Every tick in self check section is there, except the "Play Store (Phonesky) has correct signature" tick. The play store works fine signing in and downloading. However apps like gmail do not work. Maybe it needs to be put in priv-app?
Running Crdroid 7.1.1 (supports spoofing signature) oneplus one, latest nanomod package 0408, magisk v12
Click to expand...
Click to collapse
Phonesky ie play store works normally as a user app. I am using it that way (I am on normal gapps) and I have no problems.

Related

Magisk - The Magic Mask for Android

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Welcome to the Magisk Release / Announcement thread!
For all up-to-date info and links, please directly check Magisk's GitHub Page​Installation
Download count of previously XDA hosted files: 25,490,945
v1: 8746 v2: 2251 v3: 3790 v4: 1220 v5: 2914
v6: 138838 v7: 119744 v8: 116796 v9: 203836 v10.2: 215176
v11.1: 573322 v11.6:438886 v12.0: 3263706
1300: 274438 1310: 1018692 1320: 403556 1330: 1844372
1350: 39188 1360: 69874 1400: 4456314
1410: 11512 1420: 112020 1437: 247988 1455: 30652
1456: 253042 1468: 85978 1500: 434572 1510: 460120
1520: 927436 1530: 218164 1531: 3143686 1540: 97368
1600: 6043710 1610: 87628 1620: 140382
Changelog
Magisk
v20.3
- [MagiskBoot] Fix lz4_legacy decompression
v20.2
- [MagiskSU] Properly handle communication between daemon and application (root request prompt)
- [MagiskInit] Fix logging in kmsg
- [MagiskBoot] Support patching dtb/dtbo partition formats
- [General] Support pre-init sepolicy patch in modules
- [Scripts] Update magisk stock image backup format
v20.1
- [MagiskSU] Support component name agnostic communication (for stub APK)
- [MagiskBoot] Set proper header_size in boot image headers (fix vbmeta error on Samsung devices)
- [MagiskHide] Scan zygote multiple times
- [MagiskInit] Support recovery images without /sbin/recovery binary. This will fix some A/B devices unable to boot to recovery after flashing Magisk
- [General] Move acct to prevent daemon being killed
- [General] Make sure "--remove-modules" will execute uninstall.sh after removal
v20.0
- [MagiskBoot] Support inject/modify mnt_point value in DTB fstab
- [MagiskBoot] Support patching QCDT
- [MagiskBoot] Support patching DTBH
- [MagiskBoot] Support patching PXA-DT
- [MagiskInit] [2SI] Support non A/B setup (Android 10)
- [MagiskHide] Fix bug that reject process names with ":"
- [MagicMount] Fix a bug that cause /product mirror not created
v19.4
- [MagiskInit] [SAR] Boot system-as-root devices with system mounted as /
- [MagiskInit] [2SI] Support 2-stage-init for A/B devices (Pixel 3 Android 10)
- [MagiskInit] [initramfs] Delay sbin overlay creation to post-fs-data
- [MagiskInit] [SARCompat] Old system-as-root implementation is deprecated, no more future changes
- [MagiskInit] Add overlay.d support for root directory overlay for new system-as-root implementation
- [MagiskSU] Unblock all signals in root shells (fix bash on Android)
- [MagicMount] Support replacing files in /product
- [MagiskHide] Support Android 10's Zygote blastula pool
- [MagiskHide] All random strings now also have random length
- [MagiskBoot] Allow no recompression for ramdisk.cpio
- [MagiskBoot] Support some weird Huawei boot images
- [General] Add new "--remove-modules" command to remove modules without root in ADB shell
- [General] Support Android 10 new APEX libraries (Project Mainline)
v19.3
- [MagiskHide] Hugely improve process monitor implementation, hopefully should no longer cause 100% CPU and daemon crashes
- [MagiskInit] Wait for partitions to be ready for early mount, should fix bootloops on a handful of devices
- [MagiskInit] Support EROFS used in EMUI 9.1
- [MagiskSU] Properly implement mount namespace isolation
- [MagiskBoot] Proper checksum calculation for header v2
v19.2
- [General] Fix uninstaller
- [General] Fix bootloops on some devices with tmpfs mounting to /data
- [MagiskInit] Add Kirin hi6250 support
- [MagiskSU] Stop claiming device focus for su logging/notify if feasible
This fix issues with users locking Magisk Manager with app lock, and prevent
video apps get messed up when an app is requesting root in the background.
v19.1
- [General] Support recovery based Magisk
- [General] Support Android Q Beta 2
- [MagiskInit] New sbin overlay setup process for better compatibility
- [MagiskInit] Allow long pressing volume up to boot to recovery in recovery mode
- [MagicMount] Use proper system_root mirror
- [MagicMount] Use self created device nodes for mirrors
- [MagicMount] Do not allow adding new files/folders in partition root folder (e.g. /system or /vendor)
v19.0
- [General] Remove usage of magisk.img
- [General] Add 64 bit magisk binary for native 64 bit support
- [General] Support A only system-as-root devices that released with Android 9.0
- [General] Support non EXT4 system and vendor partitions
- [MagiskHide] Use Zygote ptracing for monitoring new processes
- [MagiskHide] Targets are now per-application component
- [MagiskInit] Support Android Q (no logical partition support yet!)
- [MagiskPolicy] Support Android Q new split sepolicy setup
- [MagiskInit] Move sbin overlay creation from main daemon post-fs-data to early-init
- [General] Service scripts now run in parallel
- [MagiskInit] Directly inject magisk services to init.rc
- [General] Use lzma2 compressed ramdisk in extreme conditions
- [MagicMount] Clone attributes from original file if exists
- [MagiskSU] Use ACTION_REBOOT intent to workaround some OEM broadcast restrictions
- [General] Use skip_mount instead of auto_mount: from opt-in to opt-out
v18.1
- [General] Support EMUI 9.0
- [General] Support Kirin 960 devices
- [General] Support down to Android 4.2
- [General] Major code base modernization under-the-hood
v18.0
- [General] Migrate all code base to C++
- [General] Modify database natively instead of going through Magisk Manager
- [General] Deprecate path /sbin/.core, please start using /sbin/.magisk
- [General] Boot scripts are moved from <magisk_img>/.core/<stage>.d to /data/adb/<stage>.d
- [General] Remove native systemless hosts (Magisk Manager is updated with a built-in systemless hosts module)
- [General] Allow module post-fs-data.sh scripts to disable/remove modules
- [MagiskHide] Use component names instead of process names as targets
- [MagiskHide] Add procfs protection on SDK 24+ (Nougat)
- [MagiskHide] Remove the folder /.backup to prevent detection
- [MagiskHide] Hide list is now stored in database instead of raw textfile in images
- [MagiskHide] Add "--status" option to CLI
- [MagiskHide] Stop unmounting non-custom related mount points
- [MagiskSU] Add FLAG_INCLUDE_STOPPED_PACKAGES in broadcasts to force wake Magisk Manager
- [MagiskSU] Fix a bug causing SIGWINCH not properly detected
- [MagiskPolicy] Support new av rules: type_change, type_member
- [MagiskPolicy] Remove all AUDITDENY rules after patching sepolicy to log all denies for debugging
- [MagiskBoot] Properly support extra_cmdline in boot headers
- [MagiskBoot] Try to repair broken v1 boot image headers
- [MagiskBoot] Add new CPIO command: "exists"
v17.3
- [MagiskBoot] Support boot image header v1 (Pixel 3)
- [MagiskSU] No more linked lists for caching su_info
- [MagiskSU] Parse command-lines in client side and send only options to daemon
- [MagiskSU] Early ACK to prevent client freezes and early denies
- [Daemon] Prevent bootloops in situations where /data is mounted twice
- [Daemon] Prevent logcat failures when /system/bin is magic mounting, could cause MagiskHide to fail
- [Scripts] Switch hexpatch to remove Samsung Defex to a more general pattern
- [Scripts] Update data encryption detection for better custom recovery support
v17.2
- [ResetProp] Update to AOSP upstream to support serialized system properties
- [MagiskInit] Randomize Magisk service names to prevent detection (e.g. FGO)
- [MagiskSU] New communication scheme to communicate with Magisk Manager
v17.0/17.1
- [General] Bring back install to inactive slot for OTAs on A/B devices
- [Script] Remove system based root in addon.d
- [Script] Add proper addon.d-v2 for preserving Magisk on custom ROMs on A/B devices
- [Script] Enable KEEPVERITY when the device is using system_root_image
- [Script] Add hexpatch to remove Samsung defex in new Oreo kernels
- [Daemon] Support non ext4 filesystems for mirrors (system/vendor)
- [MagiskSU] Make pts sockets always run in dev_pts secontext, providing all terminal emulator root shell the same power as adb shells
- [MagiskHide] Kill all processes with same UID of the target to workaround OOS embryo optimization
- [MagiskInit] Move all sepolicy patches pre-init to prevent Pixel 2 (XL) boot service breakdown
v16.7
- [Scripts] Fix boot image patching errors on Android P (workaround the strengthened seccomp)
- [MagiskHide] Support hardlink based ns proc mnt (old kernel support)
- [Daemon] Fix permission of /dev/null after logcat commands, fix ADB on EMUI
- [Daemon] Log fatal errors only on debug builds
- [MagiskInit] Detect early mount partname from fstab in device tree
v16.6
- [General] Add wrapper script to overcome weird LD_XXX flags set in apps
- [General] Prevent bootloop when flashing Magisk after full wipe on FBE devices
- [Scripts] Support patching DTB placed in extra sections in boot images (Samsung S9/S9+)
- [Scripts] Add support for addon.d-v2 (untested)
- [Scripts] Fix custom recovery console output in addon.d
- [Scripts] Fallback to parsing sysfs for detecting block devices
- [Daemon] Check whether a valid Magisk Manager is installed on boot, if not, install stub APK embedded in magiskinit
- [Daemon] Check whether Magisk Manager is repackaged (hidden), and prevent malware from hijacking com.topjohnwu.magisk
- [Daemon] Introduce new daemon: magisklogd, a dedicated daemon to handle all logcat related monitoring
- [Daemon] Replace old invincible mode with handshake between magiskd and magisklogd, one will respwan the other if disconnected
- [Daemon] Support GSI adbd bind mounting
- [MagiskInit] Support detecting block names in upper case (Samsung)
- [MagiskBoot] Check DTB headers to prevent false detections within kernel binary
- [MagiskHide] Compare mount namespace with PPID to make sure the namespace is actually separated, fix root loss
- [MagiskSU] Simplify su_info caching system, should use less resources and computing power
- [MagiskSU] Reduce the amount of broadcasting to Magisk Manager
- [ImgTool] Separate all ext4 image related operations to a new applet called "imgtool"
- [ImgTool] Use precise free space calculation methods
- [ImgTool] Use our own set of loop devices hidden along side with sbin tmpfs overlay. This not only eliminates another possible detection method, but also fixes apps that mount OBB files as loop devices (huge thanks to dev of Pzizz for reporting this issue)
v16.4
- [Daemon] Directly check logcat command instead of detecting logd, should fix logging and MagiskHide on several Samsung devices
- [Daemon] Fix startup Magisk Manager APK installation on Android P
- [MagiskPolicy] Switch from AOSP u:r:su:s0 to u:r:magisk:s0 to prevent conflicts
- [MagiskPolicy] Remove unnecessary sepolicy rules to reduce security penalty
- [Daemon] Massive re-design /sbin tmpfs overlay and daemon start up
- [MagiskInit] Remove magiskinit_daemon, the actual magisk daemon (magiskd) shall handle everything itself
- [Daemon] Remove post-fs stage as it is very limited and also will not work on A/B devices; replaced with simple mount in post-fs-data, which will run ASAP even before the daemon is started
- [General] Remove all 64-bit binaries as there is no point in using them; all binaries are now 32-bit only.
Some weirdly implemented root apps might break (e.g. Tasker, already reported to the developer), but it is not my fault
- [resetprop] Add Protobuf encode/decode to support manipulating persist properties on Android P
- [MagiskHide] Include app sub-services as hiding targets. This might significantly increase the amount of apps that could be properly hidden
v16.3
- [General] Remove symlinks used for backwards compatibility
- [MagiskBoot] Fix a small size calculation bug
v16.2
- [General] Force use system binaries in handling ext4 images (fix module installation on Android P)
- [MagiskHide] Change property state to disable if logd is disabled
v16.1
- [MagiskBoot] Fix MTK boot image packaging
- [MagiskBoot] Add more Nook/Acclaim headers support
- [MagiskBoot] Support unpacking DTB with empty kernel image
- [MagiskBoot] Update high compression mode detection logic
- [Daemon] Support new mke2fs tool on Android P
- [resetprop] Support Android P new property context files
- [MagiskPolicy] Add new rules for Android P
v16.0
- [MagiskInit] Support non skip_initramfs devices with slot suffix (Huawei Treble)
- [MagiskPolicy] Add rules for Magisk Manager
- [Compiler] Workaround an NDK compiler bug that causes bootloops
v15.4
- [MagiskBoot] Support Samsung PXA, DHTB header images
- [MagiskBoot] Support ASUS blob images
- [MagiskBoot] Support Nook Green Loader images
- [MagiskBoot] Support pure ramdisk images
- [MagiskInit] Prevent OnePlus angela sepolicy_debug from loading
- [MagiskInit] Obfuscate Magisk socket entry to prevent detection and security
- [Daemon] Fix subfolders in /sbin shadowed by overlay
- [Daemon] Obfuscate binary names to prevent naive detections
- [Daemon] Check logd before force trying to start logcat in a loop
v15.3
- [Daemon] Fix the bug that only one script would be executed in post-fs-data.d/service.d
- [Daemon] Add MS_SILENT flag when mounting, should fix some devices that cannot mount magisk.img
- [MagiskBoot] Fix potential segmentation fault when patching ramdisk, should fix some installation failures
v15.2
- [MagiskBoot] Fix dtb verity patches, should fix dm-verity bootloops on newer devices placing fstabs in dtb
- [MagiskPolicy] Add new rules for proper Samsung support, should fix MagiskHide
- [MagiskInit] Support non skip_initramfs devices using split sepolicies (e.g. Zenfone 4 Oreo)
- [Daemon] Use specific logcat buffers, some devices does not support all log buffers
- [scripts] Update scripts to double check whether boot slot is available, some devices set a boot slot without A/B partitions
v15.1
- [MagiskBoot] Fix faulty code in ramdisk patches which causes bootloops in some config and fstab format combos
v15.0
- [Daemon] Fix the bug that Magisk cannot properly detect /data encryption state
- [Daemon] Add merging /cache/magisk.img and /data/adb/magisk_merge.img support
- [Daemon] Update to upstream libsepol to support cutting edge split policy custom ROM cil compilations
Magisk Manager
v7.5.1
- Fix toggling app components in MagiskHide screen
- Update translations
v7.5.0
- Support new MagiskSU communication method (ContentProvider)
- Fix several issues with hidden stub APK
- Support using BiometricPrompt (face unlock)
v7.4.0
- Hide Magisk Manager with stub APKs on Android 9.0+
- Allow customizing app name when hiding Magisk Manager
- Generate random keys to sign the hidden Magisk Manager to prevent signature detections
- Fix fingerprint UI infinite loop
v7.3.5
- Sort installed modules by name
- Better pre-5.0 support
- Fix potential issues when patching tar files
v7.3.4
- App is now fully written in Kotlin!
- New downloading system
- Add new "Recovery Mode" to Advanced Settings
v7.3.0/1/2
- HUGE code base modernization, thanks @diareuse!
- More sweet changes coming in the future!
- Reboot device using proper API (no more abrupt reboot)
- New floating button in Magisk logs to go to bottom
v7.2.0
- Huge UI overhaul
- More sweet changes coming in the future!
v7.1.2
- Support patching Samsung AP firmware
- Much better module downloading mechanism
v7.1.1
- Fix a bug that causes some modules using new format not showing up
v7.1.0
- Support the new module format
- Support per-application component granularity MagiskHide targets (only on v19+)
- Ask for fingerprint before deleting rules if enabled
- Fix the bug that causes repackaging to lose settings
- Several UI fixes
v7.0.0
- Major UI redesign!
- Render Markdown natively (no more buggy WebView!)
- Support down to Android 4.1 (native Magisk only support Android 4.2 though)
- Significantly improve Magisk log disply performance
- Fix post OTA scripts for A/B devices
- Reduce memory usages when verifying and signing boot image
- Drop support for Magisk lower than v18.0
v6.1.0
- Introduce new downloading methods: no longer uses buggy system Download Manager
- Introduce many new notifications for better user experience
- Add support for Magisk v18.0
- Change application name to "Manager" after hiding(repackaging) to prevent app name detection
- Add built-in systemless hosts module (access in settings)
- Auto launch the newly installed app after hiding(repackaging) and restoring Magisk Manager
- Fix bug causing incomplete module.prop in modules to have improper UI
v6.0.1
- Update to use new online module's organizing method
- When fingerprint authentication is enabled, toggling root permissions in "Superuser" section now requires fingerprint beforehand
- Fix crashes when entering MagiskHide section on some devices
- Remove support to Magisk version lower than v15.0
- Ask storage permissions before patching stock boot image
- Update dark theme CardView color
v6.0.0
- Update to latest AndroidX support library
- Fix crashes when online repos contain incomplete metadata
- Optimize BootSigner to use as little memory as possible, prevent OutOfMemoryError
- Support new communication scheme between Magisk v17.2 and Magisk Manager
- Enable excessive obfuscation to prevent APK analysis root detections (still not 100% obfuscated due to backwards compatibility with stable channel)
2016.10.04
Magisk-v7 is quite a significant update compared to v6. A lot has changed, new features are added, and improved compatibility a lot, especially in selinux issues.
Open Source!
My previous releases has some controversy due to the fact that I included closed source property with unexpected intentions. I had worked hard to create/improve open source tools, so that they can fit my own needs. Magisk is now 100% open source, including the binary it uses.
Brand New Magisk Manager
The Magisk Manager is completely a different application compared to the previous crappy app. It has now packed with features, and it is now part of the core experience of Magisk itself. New features and improvements are still planned, so stay tuned in this application's development!
Repo System, Module Management
We've been putting a lot of effort into constructing this repo system. This change is to make installing Magisk Modules a lot more easier. What I'm aiming is to make Magisk something like Xposed, an interface and a platform for developers to work on. Providing a repo system is a good step towards the goal, as it makes installing new stuffs and receiving updates super simple. I also drastically simplified the Magisk Module template. Right now, I believe anyone with basic knowledge can create their own Magisk Module easily. Changing a few values into a config file should make porting existing mods to Magisk much easier.
Safety Net
My decision to remove root management from Magisk seems to cause some debate. People might wonder why I would remove such feature that made Magisk so popular. Well, I have to emphasize again, Magisk is never meant for bypassing Safety Net. The Xposed and root bypasses are some fun projects that I'm messing with what Magisk is capable of. One of the two main reasons I dropped this feature in Magisk is
1. Xposed is no longer working with Safety Net enabled. I had tried to bypass it with some mounting tricks and process killing, but all of those are not able to fix the issue. Soon suhide is available and it is able to bypass Xposed had made me really frustrated, as I do not want to keep working on a "not complete solution".
2. On the open source side, phh is also developing his own "suhide". phh just released a test build for hiding root (link to his test build), I'm gonna take a look and include it into the Magisk version of phh root.
These two methods are much better than the one I was using. It doesn't need a toggle, it is per app basis, and many more. Also, I'm not creating a root solution, I'm creating an interface that root solutions can rely on. So I decide to give the hiding root "responsibility" to the root solutions, not managed by the interface, Magisk, itself.
Just to let all of you know, one of Magisk Manager's future feature will be a GUI to manage these two root hiding solutions. It will need some time to develop, and I also wanted to do some things in the core Magisk side to add this support natively. So please don't be pissed that I dropped the whole root management thing. It is for a bigger plan
Due to a bug in the template zip, there will be issues flashing the zip files if the path has spaces.
This commit in magisk-module-template should fix the issue.
All repos online is updated with this fix, developers please include this patch into your modules.
2016.10.19 Magisk v8
This release is aimed for bug fixes, and most importantly the ability to hide itself from Safety Net's detection.
Template Cache Module Fix
Due to a bug in the template script, if your module is a cache module, your scripts might not be executed correctly, also flashing in Magisk Manager will cause the UI to break.
This particular commit is the fix, only cache modules are needed to be updated, other modules are working fine.
Search Bar in Download Section
Magisk Manager 2.1 brings search bar to the "Downloads Section", so that it's easier to find a module once the list gets too long.
SuperSU Integration
In the previous release (v7), I decided to automatically convert SuperSU into a Magisk module while installing Magisk. In this release (v8), I make Magisk 100% compatible with SuperSU out of box, not needed to modify how SuperSU work in anyway. For v8 and future releases, Magisk will detect SuperSU patched boot image, and only add the required additional patches to the boot image.
Also, I created further integration for Magisk and SuperSU: Magisk will create a script placed in /data/custom_ramdisk_patch.sh when SuperSU detected. What this means is that the next time you upgrade SuperSU by flashing SuperSU zip in custom recovery, Magisk will automatically be injected. You can also apply OTA updates with FlashFire, and enable SuperSU injection, which will also inject Magisk on-the-go!
For users that was using v7 with SuperSU along with the Helper Module, please manually restore your boot image (should be stored in /data/stock_boot.img), and flash the latest SuperSU, then flash Magisk-v8.
Magisk Hide
This feature should've been released a few weeks ago, but university is killing me lately; overwhelming schoolwork prevents me to finalize the tool, so please pardon my absence and lack of support. But it's still better late than nothing .
In the weeks I have been inactive, Safety Net got a couple updates, each makes bypassing more of an hassle. Magisk v8 introduce "Magisk Hide", the tool to properly hide Magisk, preventing Magisk to break Safety Net features. What it can do is hide all Magisk modules' files and mounts from target processes (e.g. Safety Net), including Magisk compatible phh root maintained by myself.
It cannot hide SuperSU, it cannot hide Xposed. If you want to hide any of them, please use suhide developed by Chainfire.
It should not cause issues as I have been testing quite some while, but if you replace some files with Magisk (known: /system/etc/customize/ACC/default.xml), Google Play Service will constantly crash. Due to this fact, this feature is not enabled by default. You have to manually enable it in the settings of Magisk Manager v2.1 after you upgraded to Magisk v8, and reboot to apply the settings.
Right now, you can manage your own hide list with ways similar to suhide, no GUI:
Code:
(All commands should be run in a root shell)
# Show current list
/magisk/.core/magiskhide/list
# Add new process (the package name should work fine)
/magisk/.core/magiskhide/add <process name or package name>
# Remove a process (might need a reboot to make an effect)
/magisk/.core/magiskhide/rm <process name or package name>
The process com.google.android.gms.unstable (Safety Net) will always automatically be added to the list if Magisk Hide is enabled, so if you just want to bypass Safety Net, just enable in Magisk Manager and you're good to go.
Safety Net - The Already Lost Cat-And-Mouse Game
Keep in mind, in the latest update of Safety Net that just happened in a few hours, Google seems to step up the game, and it might got to the point that no modifications are allowed, and might be impossible to bypass.
Currently on my HTC 10, no matter what I did to the boot image, even just a repack of 100% stock boot image, Safety Net will not pass under any circumstances. On the other hand, my Nexus 9 running stock Nougat seems bypass without issues, with root and modules all enabled and working fine. The boot verification might vary from one OEM to another, HTC's implementation might just be one of the first included into Safety Net, but eventually all major OEMs' method will be included, and at that time I think any Android "mod", including custom kernels, will pretty much break Safety Net. These verification should be coded deep into the bootloader, which is not that easy to crack. So the conclusion is that I will not spend that much time bypassing Safety Net in the future.
The attachment is a screenshot about where to enable Magisk Hide in the app
Magisk MultiROM - POC
I spend some time playing with the possibility of Universal MultiROM by only using Magisk.
Surprisingly, it is not that difficult at all! Here is a small POC video demonstrating my HTC 10 dual booting stock rom and CM 13.
No other dependency is required (e.g. modified TWRP recovery, kext kernel patch etc.). You only need Magisk injected into the boot image, and along with proper settings, by swapping out the boot image, you can load any rom systemless-ly.
What this means is that all Magisk supported device can enjoy MultiROM features! What a great news for flashaholics LOL.
NOTE! The process showed in this video in far from what it will be eventually. I will make the process nice and smooth
2016.11.14 Magisk v9
This release comes with significant updates and changes, doing adjustments to pave the road for the next major update v10: the update with Multirom support!
Please spend some time reading this lengthy release note, the most important information are included in quotes, or bolded and colored in RED.
Also, many other fixes not mentioned here are listed in the changelog.
The End of Cache (post-fs) Modules
This shall be the biggest change for this update. One of Magisk's cool feature is that it can mount files before data and build.prop is loaded (post-fs). Most modules only uses this advantage to modify read-only props (e.g. DPI, fake device model etc.) without modifying build.prop, however with a new tool included in this release (will be introduced in the next section), dealing things in post-fs is not needed anymore.
Instead of having both "Cache Modules" and "Normal Modules" at the same time, confusing both developers and users, creating complexity in module management, the decision is made that "Cache Modules" are no longer supported after this update.
How about some features that require mounting in post-fs mode (known: Changing Boot Animation)? No worries, post-fs mode is still there (as Multirom will depend on this), I only removed the interface for modules.
Magisk no longer let you install cache modules, you have to manually add the files you want to replace, which is actually super easy.
You can place your new files into the corresponding location under /cache/magisk_mount, Magisk will automagiskally manage selinux contexts, permissions and the mounting for you.
For example, you want to replace /system/media/bootanimation.zip, copy your new boot animation zip to /cache/magisk_mount/system/media/bootanimation.zip with any root explorer, Magisk will mount your files in the next reboot.
Click to expand...
Click to collapse
Magisk v9 will remove all installed cache modules under /cache/magisk, which is the previous path where cache modules locate.
Further more, to push developers to upgrade their cache modules, the latest Magisk Manager (v2.5) will filter out cache modules, which means cache modules available in the Magisk repo are NOT shown under the "Download" section in Magisk Manager.
Cache Module developers please refer to the following instructions to update your current module:
Take a look at the changes in this commit (if you're famlier with git, you can just cherry pick this commit, and deal with some minor merge conflicts)
Check the "resetprop" section to understand how to change props without using a cache module, and update your modules accordingly. For example, if you want to replace the build.prop, you no longer need to enable "automount", or bind mount the file manually in your script, as nothing will load it again.; instead, you should enable post-fs-data script, and read your new build.prop file with proper commands. If you want to change certain prop values, just switch from post-fs script to post-fs-data script, and instead of calling "setprop", please call "/data/magisk/resetprop" to set your props.
Remember to remove the "cacheModule" entry or set to false in the module.prop file, or else your module will never show up in the Magisk Download section in the Magisk Manager!
New Badass Tool - resetprop
To be honest, this tool itself deserves a new thread on XDA, as it is super powerful and super cool.
"resetprop", originally named "xsetprop", was initially developed by @nkk71 to bypass the crazy tough detections for Safety Net. Developers found method to bypass the check by modifying the kernel source code, which served the need but the solution is far from perfect as it requires the source code to be available and kernel compiling.
The tool was originally made to directly modify the system prop database. With seeing the potential of this tool, I contacted @nkk71 and start collaborating together, which brings the original simple tool into a full-fledged, all-in-one prop management tool.
Here are some technical details:
System props are handled by "init", a binary located in the ramdisk which starts right after kernel is loaded. "props" are supposed to only have a single writer, and multiple reader, which means only the process "init" has the full control to the prop database. We modify the props (by calling setprop) through an interface called property_service, which will pass the request to init; property_service also handles the triggering of "events" that should be triggered by a prop change. What read-only props means is that property_service will block all requests for modifying props starting with "ro.", as those props are not allowed to be changed once set. To overcome this difficulty, we can mimic how init behaves by directly modifying the trie structured database. However we will not be able to trigger events, as we completely skipped the property_service part. This might be ideal for SN bypasses, but not applicable for Magisk, as I want to load any prop, which should trigger some events to make some changes. So we went a step further and added a feature to "delete" a system prop! As a result, by directly deleting the prop entry in the database, then send a request to property_service, property_service will accept the request and trigger events if needed.
The new tool - resetprop can modify/delete any system prop, including read-only props (prop names starting with "ro.")
You can also read a whole build.prop, overwriting all existing props. The binary will be installed to /data/magisk/resetprop.
Here are some examples for cache module developers to adapt to the new changes:
Code:
# Set any prop (with trigger)
/data/magisk/resetprop ro.sf.lcd_density 480
# Set any prop (without trigger)
/data/magisk/resetprop -n ro.crypto.state encrypted
# Delete any prop
/data/magisk/resetprop --delete magisk.version
# Read props from a prop file
/data/magisk/resetprop --file /magisk/somemod/new_build.prop
Click to expand...
Click to collapse
The tool is originally built with AOSP source, I spent some time to make it much more portable.
Here is the link to the NDK-buildable source of the resetprop used in Magisk: https://github.com/topjohnwu/resetprop
Magisk Hide - Greatly Improved
Another update to pass SN, please grab it before it expires lol
People started to panic when Google device to check boot loader / boot-verity etc. As stated in the previous section, resetprop fixes the issue easily with setting all detecting props to the valid values. However, more detection has been added. One of those is that simply adding Magisk directories into PATH will break Safety Net. Not sure if I should be glad because the word "magisk" is now officially on the tech giant's blacklist......
So in order to hide root (here I'm only referring Magisk phh superuser, as SuperSU users shall always rely on CF's suhide, not MagiskHide), I had to change the way things works.
For the new changes that are required to NOT modify PATH, the phh's superuser has to be upgraded.
Please make sure your phh superuser is upgraded to r266-2 (or any version higher).
Older version will NOT work with Magisk v9, please upgrade phh's su before upgrading.
Also, along with the new Magisk Manager v2.5, we finally had an GUI to add/remove apps from the MagiskHide list!
Click to expand...
Click to collapse
Development
I added build.sh into the main Magisk repo, you can call the script and it will guide you with help messages.
Custom version names are supported, both in Magisk and Magisk Manager (if using custom name, update will disable)
So feel free to clone the repo and develop Magisk yourself! Pull requests are appreciated!
For Magisk Manager, you can provide translations for the app, just translate the strings, create a pull request, and I'll merge it into the main app, many thanks!
Those Pixels
I stated before that the new Google Pixel devices are using a complete different partition structure, as the ramdisk is now stored along with the system partition, and a kernel modification is inevitable.
Without much surprise, our mighty developer Chainfire had released a systemless root for Pixel devices. What it does in a nutshell is bringing back the ramdisk to the boot image, and still do modifications in the ramdisk (rootfs). However it still requires 1. custom init binary 2. binary patch directly to the kernel. If I decide to use the provided closed source solution, it shall not be difficult to port Magisk to the Pixels and start all the systemless craziness, but still I need an device to test and debug. In addition, I would love to see if I can create an open source tool to achieve similar results to make Pixel (which means maybe all future devices) running Magisk.
But the huge issue is: I live in Taiwan, and there is no sign that the Pixels will be available for purchase here, well at least not possible in 2016.
I could ask my buddy studying in the US to bring me one when he comes back at the Christmas vacations (which is still quite some time from now, but still better late than nothing.....), however the problem is that Pixel XLs (the model I prefer) are currently out of stock on the online Google Store, and I will never know if ordering now will make the package show up in my friend's place in time before he comes back to Taiwan.
If anyone seeing this post has access/can purchase brand new Pixel XLs (anywhere should be OK), and possible to deliver them to Taiwan in a reasonable time and a reasonable shipping fee, please contact me and I'll be very happy.
Lastly, I just bought my new HTC 10 within a year. I'm just an university student, the money I earn from tuition could afford me the super expensive Pixel device, but any additional donation to support my open source development is highly appreciated . I'd be really happy that many people love my work!
Click to expand...
Click to collapse
Here are some news....
Lack of Support
School have been super busy lately (getting the last metro to home nearly every day...), I have little if any time to spend on Android development. Another big factor is that I'm still waiting for my laptop to be repaired.
Sorry for all the private messages sending to my inbox, I've got way too many PMs that I'm not in the mood to read through dozens and dozens of them, since a large fraction of them are simply just asking for instructions for installing Magisk on their device.
I prefer REAL issues to be opened on Github, as I check them from time to time, and I can keep track of which are not yet resolved.
Build Friendly
I added build script for Unix-like systems (Linux and macOS) and also for Windows. I tested on all three platforms and all of them are working as expected. For people interested in the latest feature added to Magisk but not included into an official release yet, feel free to build it yourself. I automated the process that even people with no experience in NDK or scripting can build it easily.
Also for people willing to report bugs, please test Magisk built against the latest commit before opening issues on Github, thanks a lot!
Magisk Module Repo?
It has been a while since I last updated the Magisk Module Repo. I know there are a few requests for adding their own modules to the repo. I'm gonna change the way for requests to be handled from the current "posting in a request thread on XDA", to most likely handled through Github. When the new way for requests is decided, I'll add the current requests at once, and close the current thread.
I really appreciate every person who is interested in making a Magisk Module and willing to share it with others, once the new method is decided, the requests should be addressed in a timely manner.
Multirom? Updates?
I've spend my extremely limited free time to fix current Magisk issues, and so far (the latest commit on Github) it has improved a lot compared with the current v9 release.
I haven't really spend much time in the multirom feature, however I found an interesting open source project: DualBootPatcher.
It exists for quite a while, and it is very impressive just like the Multirom Tasssadar created. I haven't looked into how DualBootPatcher works, so I'm not sure if it is using similar tactics method that I switch between systems in a super simple way through Magisk.
2017.1.2 Magisk V10
Happy New Year! What is a better way to celebrate 2017 than a Magisk update
Another massive update!
Official Icon
Instead of using the picture grabbed online, the official Icon for Magisk is now live!
Magisk Hide Back On Stage
This is the most awaited fix, isn't it?
The issue of losing root is haunting since day 1 of the release of Magisk Hide, although it can be temporary recovered with a reboot, it is still quite annoying. I spend a lot of time trying to identify the reason, and soon found out that the issue is caused by MagiskHide reacting "too fast". Most processes starts from Zygote, and it requires a small period of time to isolate the mount namespace apart from Zygote. When MagiskHide reacts too quickly, it will unmount all mounts in the Zygote namespace, which literally means that all processes will lose the mounts (including root).
After adding checks and retries before switching namespaces, it leads to another issue: MagiskHide reacting "too slow". When critical files like framework is Magic Mounted, and the unmounting doesn't happen in time, it will break the SafetyNet checking process (Google Play Service FC), and can never recover until a reboot (or full restart of Google Play Service). I added tons of safety precautions (I won't go into the details here, it will be another few hundred of words), and I can "almost" eliminate all possible breakages.
Due to the fact that Magisk Hide DOES NOT hijack app_process (Zygote), it can only react passively, so there is a limitation to the effectiveness.
The best practice is to NOT add a lot of apps in the blacklist of MagiskHide (managed in Magisk Manager), so that the MagiskHide daemon has the time to react.
Personally I only hide SafetyNet (the preset), and it passes all excessive tests without any issue. However my tester still managed to break it a few times when adding 6 additional apps, and having 10+ accounts syncing at the background all the time. So I guess it is good for most users lol
Magic Mount With No Limits
I'm glad to announce that starting from this update, Magic Mount can do ANYTHING! Thanks to the new mirror implementation and some workarounds in the algorithm, it can now handle adding files to /system root (and /vendor root if separate partition). Also thanks to the new MagiskHide, all mounting combinations can pass SafetyNet!
Magisk Powered Custom ROM: One Click to Custom ROM, Another Click You're Back to Stock
I am a member of an HTC custom ROM developer team - Team Venom, and without too much effort, The world's first Magisk Powered Custom ROMhttp://venomroms.com/worlds-first-100-percent-magisk-rom/ was born!
The advantage over traditional full packaged custom rom is that we ROM developers no longer need to port carrier features (Wi-Fi calling, VOLTE etc.) to our ROMs. Users can install Magisk on their stock devices, load the Custom ROM module, reboot and BOOM all done, along with 100% fully working carrier features. Also, it is just cool to load a custom ROM fully systemless, isn't it!
Developers in the HTC 10 community soon realized the "power of Magisk", and currently trying to push out more and more Magisk Custom ROM Modules.
I hope all developers feel the excitement, and port all stock modified custom ROM to be implemented with Magisk!
For ROM developers interested, please check the link and download the zip to get an idea how to create your own Magisk Custom ROM Module!
Magisk Can Now Root Your Device
I decided to fork the phh Superuser and start doing modifications. From Magisk v10 and after, Magisk will root your device with the bundled root if
a. No root installed b. Root that isn't Systemless SuperSU or older Magisk phh versions installed
Right now you still have to install the phh Superuser application, however the root management should move to Magisk Manager soon, please stay tuned.
Currently it is nearly the same as official phh root with only a few tweaks, but I might add more in the future.
Magisk Manager Now On Play Store
It seems that some already found out that Magisk Manager is now available on Play Store! All future updates will be pushed through Play Store.
Download links will still be posted here, since there are still places where Play Store isn't available.
Documentations Updated, Module Template Updated, New Repo Requests
The documentations here on XDA is pretty outdated, I updated them with more info to assist developers and users to create their own modules.
Module template is updated for an addition option to load a prop file.
Repo requests are also updated, please check out the new instructions!
Sorry guys, in v10 (and the v10.1 if you're fast), when updating within the Magisk Manager, my scripts didn't handle the phh upgrading correctly.
For those got stuck with no root, please flash the latest phh zip downloaded in this thread in custom recovery (or Magisk Manager, because it is the only app that have root access).
Sorry for the inconvenience, please forgive me lol, I'm only one man!
2017.1.11
Magisk Manager v3.1
I'm still dealing with my finals (got an exam tomorrow, and 3 more projects to do......), but the online repo is no longer accessible on Magisk Manager, which forces me to push out an update.
Apart from that critical bug fix, it also comes with a lot of updates and improvements, please check the changelog for further info.
Please update your Magisk Manager from Play Store. The direct link is also updated with the new v3.1 version
Magisk v11.0
2017.2.6 Magisk v11.0
Came back from Chinese New Year holiday with some significant updates!
Introducing MagiskSU
Magisk officially becomes its own rooting solution!
Initially I just want to add root management features into Magisk Manager, but ended up updating lots of code.
Since the changes are quite significant, and no longer compatible with older versions, I'll just name it MagiskSU instead of phh Superuser.
The code is based on phh's approach to update the CM Superuser. I spent quite some effort to achieve SuperSU standards, so far the functionality should be nearly equivalent, my only concern now is compatibility, which is what I will focus on in future releases.
Please note, Magisk is still fully compatible and functional with the latest SuperSU (tested against v2.79-SR3)
The Fully Re-factored sepolicy-inject tool
To accompany with the fresh new MagiskSU, I also spent a ton of effort re-factoring the tool sepolicy-inject.
The tool now accepts policy statements, you can get more info about it from from this section of @Chainfire 's wonderful How-To SU documentation.
Basically I aimed to follow the same syntax as SuperSU's supolicy tool, as it is straight forward and same as the .te policy sources. I added a few additional features in sepolicy-inject, you can directly execute the binary with no options to refer to the help info.
See all changes in the changelog
(I named it "sepolicy-inject" instead of "supolicy", since it still differs in many ways (e.g the built-in rules) even though the syntax is now nearly identical. Root app developers might want to handle this difference when live patching sepolicies)
Pseudo SELinux Enforce Mode
Thanks to the new sepolicy-tool, pseudo enforced mode is now possible (the status shows enforced, but actually is permissive).
In some versions of Google Play Services, setting SELinux to permissive causes Safety Net to fail; however some custom ROMs require the system to be in permissive to be fully functional (although it should be considered as a bad practice). This shall be the perfect solution.
This will not be as a switchable option within Magisk Manager, since Google has a history of pulling apps from the Play Store when related to SELinux (see the tragic example of developer @flar2 's awesome app, and there are still more incidents).
MagiskHide binary is now updated to detect the permissive state, patch the current sepolicy to pseudo enforced mode, then switch back to enforced.
ROM developers don't have to change anything, just simply set to permissive on boot with a bundled app or a boot script as usual. If a user decided to enable MagiskHide, it will handle everything itself.
General Purpose Boot Scripts
I removed this feature in Magisk v4 and favored the per-module scripts. Now I decided to bring it back again.
The scripts should be placed in /magisk/.core/post-fs-data.d and /magisk/.core/service.d. The directory name should be self-explanatory.
If you have no idea which to choose, the post-fs-data.d will be a nice bet.
So Magisk will now execute script named post-fs-data.sh in each module, and all files within post-fs-data.d. The same applies to service.
Future
Thank you for everyone providing translations to Magisk Manager, and huge thanks to all donated.
I appreciate all the support, and that is my motivation to continue pumping stuffs out!
I will be maintaining MagiskSU continually; support won't end, at least in the near future.
Magic Mount features and better Magisk Module support are also on my list.
I spent zero time on adding more support to devices in v11, all the effort were put in MagiskSU and MagiskManager and major bug fixes.
The whole project is now in the state I consider "feature-packed" enough, most users/developers haven't used the full potential of the features.
I'll stop adding major new features and instead focusing on bringing Magisk to more devices that currently isn't supported.
And yes, that means I will postpone the long planned but never worked on Multi-ROM feature (I barely spent time on it after the POC video)
Hope you all will enjoy the update
(P.S. It's 9 AM here and I haven't slept. I'll update documentations after some sleep)
Before I got the in-app guides done, here are some tips for you
Many people seems missing these details
2017.2.19 Magisk Manager v4.2
Magisk Manager v4.2 is now live on Play Store. OP direct links are also updated accordingly.
Tons of improvements to the app, check the changelog for more info
Where is the Magisk Update?
I'm aware there are issue in Magisk v11.1 (vendor mount issues, and MagiskSU system rw issue)
I already fixed the system rw MagiskSU issue (so TiBack now 100% functional), you can check the Superuser sources if you're interested into the solution
I'll push an update soon after I fixed all currently known issues, AND add compatibility to more devices.
Please note that I'm only one single man, and also got a real life to deal with, so I can only focus one thing at a time.
I decided to first improve the Magisk Manager application to a point I think it's acceptable. Android application development is quite tedious, I have to put quite some time and effort into it.
After this Magisk Manager update, I will put all my attention on the core Magisk part, so please stay tuned!
New Online Module Info Display
I updated the way Magisk Manager show the details of Online Magisk Modules in the repo.
Previously I let each module include a changelog.txt, donate link, and support link
However, I think it would be better to let module developers to write anything they want
And considering the text rendering needs to be nice and clean, I think Markdown is the best choice here!
You can include links to your thread, links to your donation link, download link for an app required, changelog.... anything!
All Repo Developers Aware!
In Magisk Manager v4.2, the app will read the README.md file within your repo, and render the file properly
The changelog.txt file, support and donate entry within module.prop are no longer read, they can be removed.
Please update your README.md file ASAP to let the new app properly display what your modules do.
Here is an example, I updated the Xposed module's README.md, you can see the results in attachments
This is also a screenshot of what the new UI looks like
Magisk Manager v4.2.5 is live!
Hot fix for Samsung crashes (theoretically, no device to test), also did several adjustments here and there
As usual, full changelog in 2nd post, direct links and Play Store (might need to wait a few hours) are also updated
Sorry for the inconvenience!
Magisk Manager v4.2.6
Finally got the Samsung crash fixed!! Thank you for everyone reporting giving feedback, really appreciate the community!
As a compensate for the frequent updates and inconvenience, I added another feature that was requested to Magisk Manager - add a setting to disable update notifications
Play Store might take a few hours to update, direct link in OP is updated
Finally, I can now focus on the core part, which IMO is much much more important
Device compatibility should be GREATLY improved once the work is done, stay tuned!
For Pixel support though, I'll need to borrow my friend's Pixel XL for a couple of weeks to develop, but this might not happen soon since school is quite busy.
2017.3.21 Magisk v11.5/v11.6
It's about time for some Magisk update!!
Magisk Binary Changes
The original tool sepolicy-inject is now renamed to magiskpolicy. However, for backward compatibility, a symlink named sepolicy-inject will be created, which simply just links to magiskpolicy
The original tool bootimgtools is now renamed to magiskboot, which is a complete rewrite of the existing boot image patching tool. More info later.
Starting from this release, magiskpolicy, sepolicy-inject, resetprop, and if MagiskSU is installed, su, and supolicy (this is NOT the SuperSU supolicy, it just links to magiskpolicy, exists for compatibility) are all added to the PATH, which means you can directly call these commands through shell (and apps) without explicitly calling "/data/magisk/XXXXX"
In a nutshell:
Code:
/sbin/su -> /data/magisk/su
/sbin/resetprop -> /data/magisk/resetprop
/sbin/magiskpolicy -> /data/magisk/magiskpolicy
/sbin/sepolicy-inject -> /data/magisk/magiskpolicy
/sbin/supolicy -> /data/magisk/magiskpolicy
/data/magisk/sepolicy-inject -> /data/magisk/magiskpolicy
New Boot Image Tool: MagiskBoot
I spent a lot of time rewriting the whole boot image patching tool. For now it shall GREATLY improve the compatibility of Magisk. Key features:
Complete rewrite boot image extracting process
Proper MTK header support
Sony ELF type boot image support
Native ramdisk compression method support : gzip, xz, lzma, bzip2, lz4
This means custom kernel developers can now use a different ramdisk compression method with their custom kernels!
Native cpio patching support: auto ramdisk backups, auto ramdisk restores, auto dm-verity patch, auto forencrypt patch, native cpio extract/mkdir/add
This means boot patching process itself does not require root access anymore (it usually does)
Native LG bump and Samsung SEANDROIDENFORCE flag detection
More Magisk installation methods shall come soon!
I believe some of the features above do not exist in any existing rooting methods, I hope this will bring more users on the Magisk bandwagon
MagiskSU Fixes
In all current open source root methods, a common issue is that some apps (most well-known: Titanium Backup) cannot properly mount /system to read-write. Here I'll only briefly explain the technical details.
After spending very many hours, the victims are narrowed down to programs that directly use the "mount" system calls instead of calling the "mount" command. Also, the issue does not only happens to /system, but instead any read-only partitions. The only way to remount them to rw is through the toybox implementation of the mount command, which should be the default of all devices. This means that any external mount command (e.g. busybox) cannot remount them to rw either. After digging through the AOSP toybox source code and some search through the commits, I finally found the culprit: this commit in AOSP. What that commit does in a nutshell is that all blocks mounted read-only will be locked to read-only.
So starting from this release of MagiskSU, all blocks will be unlocked when the daemon is started (this does NOT break your system integrity, meaning it does not break OTAs), everything should work fine.
Another subtle change is that the command "-cn" will not do anything starting from now. All root developers can call the "-cn" command on both SuperSU and MagiskSU, it shall work in both cases.
I had tried to add the "-cn" command in the previous release, which only exists in SuperSU, but it was not implemented correctly, and apps depending on it will not work correctly.
However, this "context switch" command is originally added to SuperSU due to the way it managed selinux back in the old days. The way I deal with selinux, starting from Magisk v7 (Chainfire switched to similar method in his latest beta) DOES NOT need any context change, as all root procedures and processes are running in a permissive domain (in Magisk's case it's a domain that allows everything, which is slightly different to permissive. This is because permissive does not work on Sammy)
Magic Mount Vendor Issues
In Magisk v11.1, devices with a separate vendor partition (newer Nexus devices) will fail to properly magic mount files in vendor, the most common issue is using the ViPER4Android Magisk module.
It is now fixed in v11.5
Module Template Update
The Magisk Module Template is now updated. All developers please adapt your modules to the newer version
An entry in module.prop called template now indicates the template version number.
In future Magisk Manager updates, it will only show the modules that are using the latest two versions of the template.
e.g. If the latest template version is v13, only v13 and v12 modules will be showed in the repo
This gives the time for developers to update their modules, but also enforcing them to adapt to newer scripts, so I don't need to support the old template formats.
I apologize that I was busy and didn't add the existing module requests, I'll add them once you have migrated your module to the latest template
Also please note that I will NOT add modules that ONLY change some props using resetprop, as this is a upcoming feature to Magisk Manager in the near future.
What's Next?
Magisk v11.1 got over 500K downloads! Thank you for all the support!
The next short term goal is to add more features into MagiskManager (including the mentioned prop management, and a new installation method)
The long term goal will be migrating the current script-based magic mount to C program, which shall be run as a daemon in the background, combining resetprop, magiskhide etc. all-in-one. This will take some time to finish though.
For the long awaited Pixel support, I think I'll start working on it, but the complexity of that device might take a very long time for me to understand, since I do not own the device. I can only borrow my friend's device for not that long of a period of time, so progress shall be really slow. I'll not get the Pixel device now, because I don't think it is worth the price and the hassle for me to import it into Taiwan, but I'll definitely get the Pixel 2 to replace my current daily driver lol.
Magisk v11.6 Hotfix
The issue turns out to be a veeeery minor issue, but causes the whole script unable to run correctly on Samsung devices.
Also, I fixed the incorrect value for selinux prop patching for MagiskHide, so people with selinux issues should now be settled.
I guarantee all future releases will go through serious beta testing, especially Samsung devices. This project is in a scale that these kind of mistakes cannot be tolerated.
I'm sorry for all the inconvenience the previous release gave you, and the mess and headaches for all broken devices.
The Module Template is again updated. This bug will also affect module templates, so please update accordingly, thanks!!
But still, I hope you will enjoy this new release
2017.3.31 Magisk V12.0
The major version bump should label this release as a stable release (at least this is what I hope)
This release is thoroughly tested by all my testers, especially focusing on Samsung devices
Unless major issues, the next release should be a complete new redesign, and requires more time, more info later
The FAQ in OP is updated, please check them out!!!
Samsung, Samsung, oh Samsung
My previous release was widely criticized for breaking tons of Samsung devices, the rating on Play Store also reflected this fact
Thanks to helpful testers and developers, we ironed out all the quirks of Sammy, and in addition added more Samsung specific features.
One is adding proper support for Samsung permissive kernels. Another is faking KNOX to 0x0 if MagiskHide enabled.
Is that good enough to compensate my mistakes in the last release?
Sepolicy Live Patch Moved
Another critical update is that the sepolicy live patching is now moved from the post-fs-data mode to the service mode.
This decision is done due to the fact that on some devices (e.g. Samsung), there are too much to patch, which greatly delays the bootup time if the live patching is done in a blocking stage. However, this will require some updates for the minimal sepolicy rules.
The minimal patch is now a little more complete, which requires 20-80KB of ramdisk size (previously 1-4KB). Still not large to be honest.
However, this makes post-fs-data mode NOT completely unrestricted. post-fs-data mode can still do any file related operations, setting system props etc., a lot more than normal users would use. However, service mode would be guaranteed to be executed AFTER the full sepolicy patch is done.
It is recommended to run most scripts in the service mode (service.d/service.sh), except a. mounting files; b. patching system props; c. time critical operations
Magisk Core Only Mode
People complain that Magisk has "too many features", they don't want to use such "complete" solution.
Here I introduce Core Only Mode. It can be enabled in the new Magisk Manager.
What will still be started: MagiskSU, post-fs-data.d, service.d, (if enabled: MagiskHide, systemless hosts, systemless busybox)
What will not be started: Cache (post-fs) mounts, magic mount (system mirror etc.), all modules, all module scripts
So it literally limits Magisk to root + boot scripts. MagiskHide is still there for those who want some Mario Run lol.
Say Goodbye to Outdated Modules
This day finally comes. All modules on the repo that aren't using the latest template (v3 for now) are now hidden.
This not only guarantees that the modules are using the latest scripts, but also a nice way to filter out modules that are no longer maintained by the uploader.
You have to add/update template=(ver) in your module.prop. Magisk Manager will not know if you only updated the scripts
Upcoming Features
Here are some planned features (sorted in priority)
Magisk Manager resetprop GUI
MagiskSU multiuser support
Unified Magisk daemon: As stated before, I'm planning to write Magic Mount in code to achieve more efficiency and features.
All current Magisk features (magiskpolicy, magiskhide, resetprop, superuser, magic mount) will be in a unified daemon
Pixel (XL): Some developers has done some progress, I'll contact them and sort things out
Android O: I bought a Nexus 5X now, finally got some O love
Some details are changed in v12.0, I'll update the documentation (wiki) soon.
Some Recent Updates
I wish I can be more vocal in the forums, so more information can be spread to the community, but being a university student in Taiwan, studying engineering specifically, is not easy.
It has been a while since the last release, I think I would shed some light regarding the next big update.
Unified Binary
First, the most obvious change is that Magisk no longer rely on the overly complicated scripts, but instead replaced with pure C/C++ programs. Along with Magisk's development, more and more features were added, and those cannot be done with scripts are added as binaries (magiskhide, magiskpolicy, resetprop etc.). As a result, in the last build (v12.0) there are tons of binaries scattered, loosely working together with poor communication.
So the first thing to do is to combine everything as a single program, something like busybox, which is a single binary that acts as multiple utilities. This took me quite some time to finish, especially merging the existing superuser with other parts that also requires daemon connection. Another tricky part is to port the spaghetti shell script into proper C code. The good news is that both of them are done (though, some small bugs might exist and I'm currently hunting them down)
No More Busybox!
Second is the decision to remove the bundled busybox. Initially I added busybox into Magisk due to lack of proper commandline tools in native Android environment (e.g. lack of losetup in Android 5.0), and also many selinux specific options for several utilities do not exist in official AOSP toolbox/toybox. The big problem is that the busybox causes more issues than I would ever expect. Many features in v12 are implemented to only work with that specific busybox bundled with Magisk. However due to the variety of configurations of custom roms, the assumption that the target busybox is always there, working as expected obviously isn't true, leading to numerous breakage and headaches. This is one of the reason why tons of issues submitted to Github are not addressed, because all pre-v13 are haunted with the same issue - the environment Magisk is running is a mess.
However, thanks to ditching shell scripts completely, currently I handle everything by natively calling system calls, or by implementing the functions directly into the binary (another tedious task...). So Magisk now works as a complete package itself, no more dependency and requirements in the environment. Due to this change, the Magisk Manager would need to include a busybox in order to provide the environment to install Magisk modules/Magisk updates, which I think many tracking the development on Github would already notice this change.
Those wondering how to add busybox if they want? I'll release a new module in the repo.
Android O
Finally, Android O support! As expected, Android O has quite some security changes, but since I'm gonna start everything from scratch anyway, things are all quickly sorted out. Also thanks to the arrival of my Nexus 5X, I can finally test things on an actual device, as a result Magisk is now 100% working on Android O DP1. The module template might need some slight updates regarding Android O changes, please stay tuned for the announcement!
Of course, tons of other improvements are also included, I won't list all of them here and will leave them for the release post and changelogs. Updates to Magisk Manager are also work in progress (application development is very tiresome...). There are still tons of features/support bugging in my mind and I would hope I can implement all, but the reality and school prevents me to do so, I am now aiming more towards a stable release rather than rushing out poorly designed features and making me regret in future maintenance lol.
I won't have time to publish lots of informative posts as this one, for those who are interested in the active development of Magisk/Magisk Manager, please keep track of the Github repos. I always keep the development work transparent, anyone curious can spend a little effort to build it themselves and have a sneak peak of what's currently going on. Just keep in mind that the cutting edge master branch does not always work properly

[MODULE] Smali Patcher 7.4

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Smali Patcher
​
WHAT THE HELL IS THIS THING? ::
To sum things up this is an application I developed that pulls the android framework from your device, applies what I (or other users) consider useful patches to the sourced files and then finally generates a magisk module applying the patches system-lessly.
The unique thing about Smali Patcher is it sources the framework files from your device, in an attempt to provide maximum compatibility across the entire android device family.
While I have your attention I wanted to throw out a massive thank you to all the people who have provided support to the project and the thread over the years, you guys are absolute champions. I can't thank you enough and couldn't have done it without you, here's to ya!
PATCHES ::
Mock locations - Hide mock locations status, allowing apps like Pokemon GO to treat them as genuine location updates.
Mock Providers: Allow creation of mock providers without mock permissions.
GNSS updates: Disable all GNSS (GPS) location updates.
Secure flag - Allow screenshots/screensharing in secure apps.
Signature verification (as-is, legacy support only) - Disable signature verification allowing modification/execution of signed system apps.
Signature spoofing (as-is) - Enable signature spoofing app permission.
Recovery reboot - Reboot directly back into recovery from powermenu.
Samsung Knox (as-is, legacy support only) - Bypass Samsung Knox trip protection, only confirmed working for secure folder.
High volume warning - Disable high volume popup dialog.
Any patches marked "as-is" are no longer maintained and only kept in for legacy device support only, not recommended to be used on newer android versions (10/11).. use at your own risk.
GPS SPOOFERS / FUSEDLOCATION / RUBBERBANDING NOTICE ::
FusedLocation API GPS spoofers are NOT compatible with the mock location patch.. your required to use a traditional GPS spoofer! Spoofed location updates will be fed into fusedlocation all the same, meaning you don't need to disable the service.. which means while your not spoofing you still gain the benefit of fusedlocation which is all around more accurate location updates!
REQUIREMENTS ::
PC with at least 3GB+ of RAM.
.NET Framework 4.7.1 or later installed
Java installed
Android device running 6.0 or above.
INSTRUCTIONS (ADB METHOD/AUTOMATED - RECOMMENDED):
COMPATIBLE WITH BOTH ODEX & DEODEXED ROMS! WILL AUTOMATICALLY DEODEX REQUIRED FILES IF NECESSARY.
Backup device.. safety first kids.
Enable USB debugging in developer settings on your device and connect via USB to your PC.
Authorise USB debugging connection on your phone.. example of popup.
Run "SmaliPatcher.exe", First startup will automatically download the latest necessary binary's.
Select your desired patches.
Hit "ADB PATCH" button (yes without browsing for a .jar file).
Once the process has completed, magisk module will be generated in the same directory as "SmaliPatcher.exe" named: "[email protected]".
Install the generated magisk module either in recovery mode or from the magisk app.
Enable smali patcher module in magisk.
INSTRUCTIONS (ALTERNATIVE METHOD - FOLLOW ONLY IF ADB METHOD FAILS) ::
Backup device.
Enable USB debugging in developer settings on your device and connect via USB to your PC.
Authorise USB debugging connection on your phone.. example of popup.
Run "SmaliPatcher.exe", First startup will download the latest necessary binary's.
Browse to your "/system/framework" directory. Easiest way to obtain these files is from your rom img/zip.
Select your desired patches.
Hit the "PATCH" button.
Once the process has completed, magisk module will be generated in the same directory as "SmaliPatcher.exe".
Install the generated magisk module either in recovery mode or from the magisk app.
Enable smali patcher module in magisk.
YOU ARE STILL REQUIRED TO HAVE A DEVICE CONNECTED TO YOUR PC IF YOU USE THIS METHOD.. THE PATCHER WILL NOT PROGRESS OTHERWISE.
A ADB DEVICE IS REQUIRED TO EXTRACT CDEX FILES.. IF YOU'RE PARANOID/SAVY ENOUGH, YOU CAN USE A ANDROID EMULATOR.
BEFORE REPORTING ANY ISSUES ::
You have tried running the patcher as administrator.
You have accepted the USB debugging connection & ticked "Always allow from this computer".
You have tried running the patcher with phone booted in recovery mode with /system mounted.
shoey63 said:
Adb method works flawlessly on android 8.1 for Sony AOSP roms on X and XZ premium. The trick is to run the program in recovery (with system mounted obviously), to avoid permission issues.
Awesome tool!
Click to expand...
Click to collapse
UPDATING MODULE INSTRUCTIONS:
Disable/uninstall any active smali patcher modules before generating a new one! If you generate a module with a older version active there's a chance the outdated patches will carry over to the new module.. I do my best efforts to prevent this, but it may still happen. Before reporting issues, make sure you have tried this.
CHANGELOG ::
7.4
Modified patch - GNSS updates: now correctly handles protected methods.
7.3
First pass of android 11 patch updates: mock provider, gnss update & secure flag patch updated.
7.2
Modified patch - Secure flag: revert a change I made, should solve issues on some devices.. hopefully.
7.1
New patch - GNSS updates: Disable all GNSS (GPS) location updates.
Modified patch - Secure flag: tested & working on Samsung devices running android 10.
7.0
New patch - Mock Providers: Allow creation of mock providers without mock permissions.
6.9
Allow devices booted in recovery mode through ADB check.
6.8
Made patches "compatible" with the latest android 11 beta (pixel).. none of which have been tested on android 11. BACKUP! BACKUP! BACKUP!
6.7
Removed "magisk-module-template" dependency.
6.6
Fixed patch - Magisk reboot: was not being applied when selected.
"Magisk reboot" patch renamed to "Recovery reboot".
6.5
Updated patch - Magisk reboot: now compatible with Samsung One UI 2.0 (android Q).
6.4
New patch - Samsung Knox: Bypass samsung knox trip protection, only confirmed working for secure folder.
6.3
ADB error checking: require a ADB device to be present even while patching "browsed" for framework dumps.
Framework error checking: display an error if no odex, vdex or oats are found.. incomplete framework dump.
Display hints for common mistakes made by users, hopefully reduces the amount of "error" reports by people that don't follow instructions.
6.2
ADB error checking: unauthorized ADB device check.
6.1
Error handling - Verify required files are found during deodex process.
6.0
Fixed index out of bounds crash.
Revert mock location patch to the original.
5.9
Mock location patch updated. Reverted patch back to the original, new patch failed.
Adapted back end functions to support multi-file patches.
Browse for .jar has now been changed to browse for "/system/framework" directory.. no longer requires a deodexed file to be targeted, will deodex necessary files if required.
5.8
Check if patcher is being ran with administrator privileges, otherwise display a warning.
Fixed a possible false positive error during cdex extraction.
5.7
Error handling - verify classes.dex is found during cdex extraction.
Added few more status updates to assist error checking.
5.6
Changed binary download percentage behaviour: avoid users reporting false "stuck on XYZ percent".
Updated mock location patch to support android 10/Q.
Updated reboot behaviour patch to support android 10/Q.
Save/restore selected patches when browsing for a JAR.
5.5
Fixed force close during vdex extraction.
5.4
Modified secure flag patch - need testing & feedback.
Modified java detection to allow more runtime environments.
5.3
Suppress false positive "magisk download failed" errors.
Verify patched APK's have been generated before creating module.
5.2
Modified secure flag patch.
Added paypal donation button.
5.1
Removed signature verification "class not found" error report, false positive on legacy android versions.
5.0
Adapted backend functions to support multi-file patches.
Require at least one patch to be enabled before proceeding.
Fix download percentage status updates.
Popup explorer window to output directory on completion.
Modified signature verification patch (android P).
When browsing for a JAR only display compatible patches (preparation for multi-file patches, services.jar must be named "services.jar" from this point onward for verification purposes.. otherwise no patches will be displayed).
New patch - disable high volume warning popup.. this has annoyed me so much recently! I was only able to test this on android P, if you find the patch does not work on your device please supply a deodexed services.jar so I can investigate further.
4.9
Fixed a crash when applying magisk reboot patch to a already patched target.
Improved magisk reboot patch, removed the potential to not reboot back into magisk.
Redirect output for certain binary functions with working status indicators.
Fix mock location patch that I broke in the most stupid way possible.. if you're updating from 4.8, make sure you disable/remove any installed smali patcher magisk modules before updating.
4.8
Display command line window until inbuilt patcher status updates are fixed to prevent user confusion.
4.7
Secure flag patch update (based off 9.0).
Signature verification patch update (based off 9.0).
4.6
Dynamically calculate base directory.
Modify output loop to ensure all output is displayed.
Magisk reboot patch (Galaxy S10 only).
4.5 [UNTESTED - I OWN A S10 WHICH CURRENTLY IS NOT MAGISK COMPATIBLE.. USE AT YOUR OWN RISK]
Force unix config formatting.
4.4 [UNTESTED - I OWN A S10 WHICH CURRENTLY IS NOT MAGISK COMPATIBLE.. USE AT YOUR OWN RISK]
Magisk "installation failed" fix.. (I shouldn't have been lazy and read all the module documentation.. probably could of avoided this).
4.3 [UNTESTED - I OWN A S10 WHICH CURRENTLY IS NOT MAGISK COMPATIBLE.. USE AT YOUR OWN RISK]
Magisk v19.0 compatible (magisk template download failed fix).
4.2 [TESTING]
Potential slowdown fix?
4.1
Allow the patcher to run without having any patches selected for testing purposes.
Force a single classes.dex to be generated when applying signature spoofing patch.. (potential slowdown fix?)
Remove irrelevant debug output.
4.0
Modified ADB error checking function to fix false error reports.
3.9 ::
ADB error checking: verify a single ADB device is connected before proceeding.
Added few more status updates to assist error checking.
Updated magisk template & URL.
3.8 [TESTING] ::
Potential slowdown fix?
3.7 ::
Modified java detection.
3.6 ::
Added some more error checking.
3.5 ::
Verify Java is installed & detected before proceeding.
3.4 ::
Amend legacy dummy file to generated magisk module config.sh.
3.3 ::
Create dummy file in magisk module (legacy devices).
3.2 ::
Fixed a issue calculating file paths on legacy devices.
3.1 ::
Added "/system/system" path to dumping functions.
Added output filter to avoid user confusion when spitting out harmless errors.
3.0 ::
Updated dependencies.
Reworked some core functions to attempt to fix unknown caused crash for certain users.
2.9 ::
Reworked some functions, made them dynamically detect file names to avoid potential issues.
2.8 ::
Verify dexpatcher patches are found, otherwise re-download.
Change patch button text to indicate patching mode.
Error handling - verify classes.dex is found before recompiling.
Error handling - verify services.jar is found before recompiling.
Error handling - verify input files are not dummy's.
Conditional dead end bug fix while patching multi-class jar's.
2.7 ::
Re-added signature spoofing patch.
Added dexpatcher as a dependency.
2.6 ::
Added support for Android P.
Modified binary download function to prevent crashes.
2.5 ::
Added support for multi-classes.dex.
2.4 ::
Improved binary download function - verify binary size, will attempt to re-download if necessary.
Improved binary URL grabber function - should now fetch correct address.
2.3 ::
Improved de/odex detection function - should now allow generating a module with no mods selected (debugging purposes)
Improved error checking & reports.
2.2 ::
Android 8.0-8.1 compatibility.
2.1 ::
Corrected missing variables in config.sh for magisk module (lollipop bootloop fix) - full credit to @Eng.Raman
2.0 ::
Prevent false "detected api" message.
Play's nice with android lollipop - full credit to @Eng.Raman
1.9 ::
Potential fix for random crash aka. dumping framework freeze/crash.
1.8 ::
Handle "permission denied" error when pulling build.prop.
1.7 ::
Improved framework base directory detection.
1.6 ::
Framework base directory detection.
1.5 ::
Improved error checking - added more debug info which hopefully will make diagnosing bugs a little easier.
Proper API detection using rom build.prop.
Improved a search function used for locating framework files.
1.4 ::
Improved error checking - verify's services.odex size detecting if module already active.
Potential fix for "magisk download failed" that certain user's are experiencing.
1.3 (BETA) ::
Added in ADB libary which allows us to now pull/push files to the device.
Added in smali & baksmali which allows us to now deodex.
One click function to pull all the required files from the device, deodex (if necessary), patch and finally generate a magisk module! (I plan to code in a function that pushes the module to the device upon completion in the future - fully automated baby woohoo)
If you would like to use the adb method of patching, make sure you have "USB debugging" enabled in developer options otherwise it simply won't work.. you obviously need to plug in your phone to the PC and authorize the USB connection on your device.
1.2 ::
Updated to Magisk v15.
Improved error checking & reports.
1.1 ::
Removed signature spoofing for the time being - causing bootloop for some users, need to rework the patch when I have time.
1.0 ::
Improved patching function: should now be compatible with even more unique service.jar's.
Improved patching function: now reports errors for each independent patch, should make diagnosing patch errors a little easier.
Fixed some debug code I left from previous release which may have prevented patch process from completing. (whoops.. sorry about that!)
0.9 ::
Added new patch: signature spoofing.
0.8 ::
Improved patching function.
0.7 ::
Merged projects together - Mock locations, secure flag & signature verification.
Assembly version used as module version and in generated module zip name.
Fixed minor bug when selecting a JAR named something other than "services.jar".
0.6 ::
Error handling for failed downloads of magisk module template.
Updated to Magisk v14.0.
0.4 / 0.5 ::
Potential spaces in file path error fix - unsure as I have been unable to reproduce this issue, so it's been very difficult to fix.
0.3 ::
Increased default Java memory heap size - fixes "out of memory" error on lowend PC's.
0.2 ::
Simplified patching process.
Fixed reboot issue with certain GPS spoofers.
Verify's target JAR is deodexed before proceeding with patch.
0.1 ::
Initial release
Cheers,
Honorable mention to @Eng.Raman & @A30NI_Y, who has been kind enough to patch service.jar's for tons of users who lack the knowledge to deodex (despite my best efforts of writing out clear instructions!)... the smali patcher user base thanks you for your service!
PRECAUTIONS / TERMS OF USE ::
You must backup your device prior to flashing the module, I am not responsible or providing support to recover any devices stuck in bootloops.. if for what ever reason you find yourself in this situation, simply uninstall magisk and reinstall.. doing this will reset your installed modules.
PLEASE READ FAQ IN POST 2 & SEARCH THE THREAD BEFORE ASKING QUESTIONS, CHANCES ARE THEY HAVE BEEN ANSWERED ALREADY AND YOU CAN FIND YOUR ANSWER IMMEDIATELY.
Rather then making mirrors of the download link, please redirect traffic to this thread to ensure they are always using the latest version! Oh hi reddit.
DOWNLOAD MIRRORS
Google drive
FAQ​
HELP! I'M STUCK IN A BOOTLOOP, HOW DO I UNINSTALL ::
Boot into TWRP
Advanced -> File Manager
Navigate to: data -> adb -> modules -> select the module directory (in this case "fomey.smalipatcher") -> Folder icon (bottom right of screen) -> Delete
Alternatively you can just uninstall/reinstall magisk to clear all your modules.
MAGISK TEMPLATE DOWNLOAD FAILED ::
Run the patcher as administrator, may not have read / write access to drive.
Verify you have a active internet connection.
Verify firewall is not blocking the patcher.
Verify your not running a outdated .NET framework.
MOCK LOCATION RUBBER BANDS TO REAL LOCATION ::
Set device only in location method settings (Settings -> Location -> Location method).
Disable improve location accuracy settings (Settings -> Location -> Improve accuracy).
If you are still experiencing rubber banding after trying everything above, try a different spoofer.
INVALID OR CORRUPT JAR FILE BIN ::
Delete the "bin" directory and restart the patcher to re-download the binary files.
Corruption is caused by a unreliable internet connection.
HOW DO I CLEAR A MOCK LOCATION WHILE USING A GPS SPOOFER ::
Exit the app by pressing the "back" key, you may have to press this a few times. Any good spoofer should clean up after itself, by removing any mock providers on exit.
MAGISK TEMPLATE FAILED TO DOWNLOAD ::
Make sure you're using the LATEST release of the patcher.
If you are using the latest version already.. a update will be available shortly to fix this issue.
UNSUPPORTED MAJOR.MINOR VERSION XX.X ::
Use the Java Uninstall Tool to clean up out-of-date java versions and reinstall the latest java release.
W: COULD NOT FIND RESOURCES ::
This is a harmless warning, you can safely ignore it.
!!! ERROR: BASE DIRECTORY NOT FOUND ::
You did not accept the USB debugging permission popup on your phone.. the patcher can't do anything without this permission (example of popup).
The permission popup should be displayed after hitting the "ADB PATCH" button.. or as soon as you connect your phone to your PC.
If you can't see the permission popup: go to settings -> developer options -> revoke usb debugging authorisations.. disconnect and reconnect your phone and try again.
Make sure you tick "always allow from this computer".. otherwise you may have to confirm the popup multiple times during a single patch.
!!! ERROR: XYZ CLASS NOT FOUND ::
The patch is most likely not compatible with your android version/device, if a patch is marked "as-is" no further support is provided.
If you are browsing for a services.jar - it's most likely not deodexed.. try the "ADB METHOD".
If you are using the "ADB METHOD" and you receive this error, post a reply to this thread including as much information as you can. Useful information: android version, patcher log and the directory named "adb" in the patcher folder (upload this directory to google drive).
Reserved 3
Thank you very much for your smali patcher. I am using your mock location for a while now. Will it be compatible with Android Oreo?
flyfire04 said:
Thank you very much for your smali patcher. I am using your mock location for a while now. Will it be compatible with Android Oreo?
Click to expand...
Click to collapse
I have not tried it with a oreo services.jar, test it out let me know how you go.. if you run into issues please upload your deodexed services.jar.
Hey, could you make it just a zip that would do all the patches? I don't have a windows machine but I really want the screenshot thing I... Also I can do any testing that you want on the Oreo.
Thank you mate!!!
Awesome! Thank you!
Hi devs, sorry for interrupt. I have some problems while patching it here. I choose all three patch and run the patcher, However it suddenly stops and saying jar is not deodexed. When im untick all 3 patch and run the patcher, it runs well until completed. The problems only happens when I choose all or either one of the patches.
Im using samsung note 4 with custom deodexed rom :crying:
TheBuduLord said:
Hi devs, sorry for interrupt. I have some problems while patching it here. I choose all three patch and run the patcher, However it suddenly stops and saying jar is not deodexed. When im untick all 3 patch and run the patcher, it runs well until completed. The problems only happens when I choose all or either one of the patches.
Im using samsung note 4 with custom deodexed rom :crying:
Click to expand...
Click to collapse
Has anyone tried this on the Google pixel XL? Also when I download it and try to open it it tells me it can not be open ed
@fOmey Sir, when Smali Patcher on Linux and Android devices?
um, is this tool still not compatible with nougat's services.jar?
The patch button doesn't do anything at all.
Edit: nvm, restarting the program fixed it
HI !
When I extract my zip rom, I don't see any "system" folder ... (It's pixel ROM for nexus 5)...
Any ideas ?
Thanks.
AvisAile said:
HI !
When I extract my zip rom, I don't see any "system" folder ... (It's pixel ROM for nexus 5)...
Any ideas ?
Thanks.
Click to expand...
Click to collapse
This thread will help you out: https://forum.xda-developers.com/an.../how-to-conver-lollipop-dat-files-to-t2978952
rawimagee said:
Hi, i took my "services.jar" from my framework folder (OnePlus 5) and it says it is not deodexed. I have tried programs that will make the jar file to work in your flasher but it still does not work. Can you like write a little tutorial to me? Thanks
Click to expand...
Click to collapse
Copy the systems folder from your smartphone. (I copy it to the download folder, zip it, copy it and unzip it on the computer).
use Fulmics Deodexer (xda), download smali and baksmali from here https://bitbucket.org/JesusFreke/smali/downloads/ point fulmics deodexer to those files in the settings. Look for your systems folder with fulmics deodexer and only tick the frameworks box (the other ones are unneccesary for this task). then proceed with the smali patcher
@fOmey
I can not start your program. Can you make this pacher for me on my services.jar file so that I can put it into the framework system? My file with S7 edge nougat 7.0 Stock.
https://files.fm/u/j388jjj5
Tested on Oreo and it works great
The app crashes after i hit the start making path button on windows 10.. any help ??? Got the bins downloaded and my services.jar loaded in youre app/program.
rawimagee said:
I did that and but it still seems to not work, it said that it processed the "services.jar" file but it still says the same in the patcher;(
edit: do i pick the normal "services.jar" file from the normal folder or do the "edited" file get placed somewhere else?
Click to expand...
Click to collapse
OP5 is on Nougat, so I don't think this will work.
Sent from my OnePlus3 using XDA Labs

Magisk Module Systemless Debloater

Magisk Module Systemless Debloater
Download:
GitHub - zgfg/SystemlessDebloater: Select and systemlessly debloat preinstalled system apps. Supporting up to System As Root (SAR), Dynamic partitions and Android 13. Module must be installed through Magisk app, not TWRP
Select and systemlessly debloat preinstalled system apps. Supporting up to System As Root (SAR), Dynamic partitions and Android 13. Module must be installed through Magisk app, not TWRP - GitHub - ...
github.com
GitHub - Magisk-Modules-Alt-Repo/SystemlessDebloater: Select and systemlessly debloat preinstalled system apps. Supporting up to System As Root (SAR), Dynamic partitions and Android 13. Module must be installed through Magisk app, not TWRP
Select and systemlessly debloat preinstalled system apps. Supporting up to System As Root (SAR), Dynamic partitions and Android 13. Module must be installed through Magisk app, not TWRP - GitHub - ...
github.com
Wiki pages by @ipdev:
ConfigScript
Guide for the Systemless Debloater Module. Contribute to mModule/guide_sDebloater development by creating an account on GitHub.
github.com
with his examples of apps that can be debloated (Android, Google, Oppo, Samsung, Xiaomi, LineageOS):
CommunityList
Guide for the Systemless Debloater Module. Contribute to mModule/guide_sDebloater development by creating an account on GitHub.
github.com
*** Yet another System(less) debloater, how and why?
- Systemless means that all changes made are active only when Magisk is loaded and module is enabled.
For OTA or anything, just disable the module (or boot without Magisk) and your system partitions are no more affected
- For Android up to 9 and/or 10 (depending on devices), system partitions were read-write, hence hard-debloating by use of eg TWRP, Titanium, etc (to delete the pre-installed system apps) was possible
This is no more possible for the phones released with Android 10 and higher.
System (System As Root, Dynamical partitions) becomes read-only on the file-system level and stock apps could be debloated (the same holds for any changes on the system partitions) only by the systemless approach - by use of Magisk to dynamically overlay the required changes at boot time
Hence, this module also uses the Magisk REPLACE mechanism and dynamical mounting through the module's service.sh script
- The module debloates only (stock) apps pre-installed to the system partitions, traditionally named as /system, /system-ext, /product, /vendor and /apex; plus additionally on A12 and A13 devices, variably named system partitions like /india, /my_bigball, etc
Hence sorry, to debloat user apps installed to /data, please use the other methods (first of all, just simply uninstall them or at least uninstall their updates)
- Originally I started development with Xiaomi Mi 9T (MIUI 10-12.5, Android 10-12) and later continued with Xiaomi 11 Lite 5G NE (MIUI 12-13, Android 11-12). However, the module relies on the common Magisk overlay mechanism and the list of apps to be 'debloated' is configurable hence there are many users who successfully use this module on the various other devices (like Pixel, Samsung, One Plus, etc.), with the stock or custom ROMs, and with up to Android 13
- Original, default list coming when the module is installed will be empty - user must define then himself which apps should be debloated, depending on his device, ROM and preferences
To (re)configure the list of apps for debloating, simply edit the (textual) /Download/SystemlessDebloater.cfg config file on Internal memory.
Module automatically installs the config file with instructions inside but with the empty list
(Re)configure your list of system apps you want to debloat, reinstall the module (always through the Magisk Manager, not TWRP) and reboot - to take your changes in effect
You only need to provide the proper names (not package names) for the preinstalled system apps, the module will find their exact System paths
- However, the user bears the risks and responsibility himself (device may no more boot when certain system apps are removed/debloated) but the Troubleshooting section below provides instructions how to recover, even from the bootloop cases
Nevertheless, whenever you want to 'debloat' some service or app you are not familiar with, please google first to find what that app is really about and is it generally safe to be debloated (on your but also on the other phones and even by other methods, it doesn't matter)
Don't be afraid of the module and debloating, but be cautious what are you going to debloat
*** Installation
- Download the latest module from GitHub - scroll down, open Assets and find the latest v1.5.3 zip:
https://github.com/zgfg/SystemlessDebloater/releases/tag/153
- In Magisk app (manage), open Modules tab and take Install from storage, navigate to the downloaded SystemlessDebloater.zip (as is, do not unzip)
Read what Magisk prints while installing and find the module's log in /Download/SystemlessDebloater.log file on Internal memory
To finish the installation (it applies to all Magisk modules), reboot the phone
- First time the module will not debloat anything - it will just create the input/config file /Download/SystemlessDebloater.cfg on Internal memory
Open that config file, read the instructions in the file and fill your own list of app names for debloating - look at the commented examples you will find in that config file
- Save the config file, reinstall the module and reboot.
Inspect the log and consult the Troubleshooting section below if needed
- To find what system apps you have on your phone and what are their exact names, scroll down through the SystemlessDebloater.log to the "System apps, not debloated" section
Find e.g. a line:
/system/app/Email (com.android.email)
Then copy/add just the Email name (supposed that you want to debloat the built-in Email app) into the SystemlessDebloater.cfg config file
Repeat for the other apps you want to debloat. Then reinstall the module (only on the reinstallation, module processes the config file) and reboot
Fine tune your list of apps for debloating but every time reinstall the module and reboot
- Last but not the least: Once debloated, apps can no more be found (until you reconfigure, disable or uninstall the debloater) under the Settings / Apps
Hence, if you want to delete their cache or data, do Clear cache/data before debloating the apps
Moreover, before trying to debloat any app, look first if you could simply Uninstall that app (ie, if it was a user and not the system app) from Settings / Apps
If Uninstall is not available for that app, try to Uninstall updates: updates are also installed to Data while SystemlessDebloater 'debloats' only from the System - hence the app's update on Data may still remain there
*** Troubleshooting
- What if I eg have configured the app EMail to debloat, but the app is still present?
Check if you have missed to perform Uninstall / Uninstall updates from Settings, Apps - perform, reboot and test again
Check if you have miss-spelled the application name - correct in the config file SystemlessDebloater.cfg, save, reinstall the module and reboot
App names are cases sensitive - eg, the correct name might be Email, not EMail
- To help yourself, use eg Package Manager app (from Playstore) where you can search for all the apps/services, find their exact names and installation paths (to see are them System or User apps)
- What if I change my mind and I want to un-debloat and use Email, but to debloat now eg, Chrome browser?
No problem, reconfigure the list in SystemlessDebloater.cfg, save, reinstall the module and reboot
- What if after a week or so, I realize that some functionalities on the phone were affected?
Sorry, you had decided to debloat the 'wrong' apps/services
Google about which app(s) are safe to debloat or not, reconfigure your list in the config file, reinstall the module and reboot
Or disable the module and reboot, to figure out was the problem really due to debloating
- Oops, what if I have a bootloop (phone does no more boot since the 'wrong' apps were debloated)?
If you have TWRP with the read/write access to Data, navigate to /data/adb/modules/SystemlessDebloater and by using Advanced / File explorer from TWRP, create a dummy file named disable (without extension) in that folder
Reboot and Magisk will boot but with the debloater disabled - hence, all the previously debloated apps will be un-debloated now (to see if debloating was really responsible for the bootloop)
Instead of dummy file named disable, put the remove dummy file to trigger Magisk to uninstall that module on the next reboot (all that applies to any module possibly causing your bootloops)
If the proper TWRP is not available for your device and ROM, boot to the Android Safe Mode - google for a key-combo to boot in, for my Xiaomi it takes (re)booting with Vol+ and Vol+ pressed simultaneously
Don't do anything in Android Safe mode but reboot then to 'normal' mode - Magisk will boot now with all the modules disabled (this method does not work for Magisk v20.4 or earlier)
You will have to re-enable MagiskHide/DenyList (don't worry, your list of apps to hide the Magisk from was not lost), re-enable the other modules, correct SystemlessDebloater.cfg, reinstall debloater and reboot
There is also a third method (adb wait-for-device shell magisk --remove-modules), but search yourself and read about from the Wiki Documentation on the Magisk GitHub page
*** Enough for the theory, install now and practice debloating
IMPORTANT
Since the version v1.5.1, SystemlessDebloater module supports a new SystemlessDebloater.cfg config file - thanks to @ipdev
Update will create the new config file and transfer your DebloatList
Please delete then your old SystemlessDebloaterList.sh input file and read and use the new config file instead
---
For more info about the SystemlessDebloater.cfg config file, please see: Wiki pages from @ipdev:
ConfigScript
Guide for the Systemless Debloater Module. Contribute to mModule/guide_sDebloater development by creating an account on GitHub.
github.com
and his examples what apps can be debloated (Android, Google, Oppo, Samsung, Xiaomi, LineageOS):
CommunityList
Guide for the Systemless Debloater Module. Contribute to mModule/guide_sDebloater development by creating an account on GitHub.
github.com
On my Xiaomi Mi 9T, eea Stable QFJEUXM 12.0.2 I safely debloat the following apps:
Code:
DebloatList="
AnalyticsCore
AntHalService
BasicDreams
BookmarkProvider
CatchLog
Chrome
CneApp
EasterEgg
facebook-appmanager
facebook-installer
facebook-services
FileExplorer_old
GlobalFashiongallery
GlobalMinusScreen
Gmail2
GoogleFeedback
GooglePartnerSetup
HybridAccessory
HybridPlatform
IdMipay
InMipay
Joyose
MiBrowserGlobal
MiBrowserGlobalVendor
MiCreditInStub
MiDrop
MiLinkService2
MiPicks
MiPlayClient
MiRcs
MiRecycle
MiService
MiuiBrowserGlobal
MiuiBugReport
MiuiDaemon
MSA-Global
Netflix_activation
Notes
PartnerBookmarksProvider
PaymentService
PhotoTable
Stk
TouchAssistant
Traceur
Turbo
uceShimService
Velvet
VsimCore
wps_lite
YellowPage
Zman"
E.g., I debloat YouTube and install Vanced YT root.
Similarly, I debloat GMail, Wellbeing, Netflix, Facebook, Turbo, etc - inspect and exclude from the list those apps you want to keep
Also, DebloatList I used for Mi 9T but Xiaomi.eu weekly 20.9.17 (MIUI 12, Android 10):
Code:
DebloatList="
AndroidAutoStub
AntHalService
BookmarkProvider
Browser
BTProductionLineTool
Calculator
CatchLog
CneApp
EasterEgg
Email
GoogleFeedback
GooglePartnerSetup
Health
Joyose
Lens
MiMover
MiPlayClient
MiRecycle
MiService
MiuiBugReport
MiuiDaemon
Notes
PaymentService
Stk
TouchAssistant
Traceur
uceShimService
Velvet
VsimCore
WebViewGoogle
wps_lite"
and for Xiaomi.eu Stable 12.0.6:
Code:
DebloatList="
AndroidAutoStub
AntHalService
BookmarkProvider
Browser
BTProductionLineTool
Calculator
CatchLog
CneApp
EasterEgg
Email
GoogleFeedback
GooglePartnerSetup
Health
Joyose
Lens
MiMover
MiPlayClient
MiRecycle
MiService
MiuiBugReport
MiuiDaemon
Notes
PaymentService
Stk
TouchAssistant
Traceur
uceShimService
Velvet
VsimCore
WebViewGoogle
wps-lite"
You may exclude e.g., Calculator,Email, Health or Lens, if you want to use them.
You can expect most of these apps also on the other MIUI firmwares. Installation folders on System may vary, but module will find their paths
EDIT:
SystemDebloaterList.sh and DebloatList were used in the module versions v1.5.0 and earlier, since v1.5.1 the module uses SystemDebloater.cfg
Thanks a lot to @ipdev for discussing and sharing ideas, encouraging and for successful testing on Xiaomi Poco F2 (debloater found most of the same MIUI apps as above) and OnePlus 5T
Also, thanks for your successful test on Pixel 3aXL with Android 11:
ipdev said:
Works on Pixel 3aXL. (Stock Android 11. Magisk canary.)
Attached the SystemlessDebloater.log from 3aXL.
And the SystemlessDebloaterList.sh I use for testing. (remove the .txt)
Click to expand...
Click to collapse
Reserved
Over the weekend when I have time to fix any potential bricking or boot loops, I'm going to try this on my A/B device (One Plus 7Pro, GM1917, OOS 10.3.5) ... unless before then anyone indicates that this is not even likely to work on my phone.
If I end up doing this, I'll report my results.
.​
HippoMan said:
Over the weekend when I have time to fix any potential bricking or boot loops, I'm going to try this on my A/B device (One Plus 7Pro, GM1917, OOS 10.3.5) ... unless before then anyone indicates that this is not even likely to work on my phone.
If I end up doing this, I'll report my results.
.​
Click to expand...
Click to collapse
It does not matter if it system-as-root or a slot device.
By time modules are run, system paths are set.
The active slot partition is running, and (if needed) switch root has happened.
Root directory is set to / and system directory is set to /system
curious about OxygenOS, do not run it very much so I am not sure what should/could be removed.
Cheers.
PS.
Works on Pixel 3aXL. (Stock Android 11. Magisk canary.)
Attached the SystemlessDebloater.log from 3aXL.
And the SystemlessDebloaterList.sh I use for testing. (remove the .txt)
Quick edit.
Since the back-side move for xda is still going, there are some errors while in transition.
Since attachment is not working at the moment. GoogleDrive - Link
ipdev said:
It does not matter if it system-as-root or a slot device.
By time modules are run, system paths are set.
The active slot partition is running, and (if needed) switch root has happened.
Root directory is set to / and system directory is set to /system
curious about OxygenOS, do not run it very much so I am not sure what should/could be removed.
Cheers.
PS.
Works on Pixel 3aXL. (Stock Android 11. Magisk canary.)
Attached the SystemlessDebloater.log from 3aXL.
And the SystemlessDebloaterList.sh I use for testing. (remove the .txt)
Click to expand...
Click to collapse
OxygenOS isn't as bad, bloat-wise, as some other OS's, such as what comes with Samsung. But there are still things that I don't want, such as the OnePlus camera and a few other items.
I'll report back here after I try this.
.​
ipdev said:
It does not matter if it system-as-root or a slot device.
By time modules are run, system paths are set.
The active slot partition is running, and (if needed) switch root has happened.
Root directory is set to / and system directory is set to /system
curious about OxygenOS, do not run it very much so I am not sure what should/could be removed.
Cheers.
PS.
Works on Pixel 3aXL. (Stock Android 11. Magisk canary.)
Attached the SystemlessDebloater.log from 3aXL.
And the SystemlessDebloaterList.sh I use for testing. (remove the .txt)
Click to expand...
Click to collapse
Thank you for testing on A11.
Log cannot be downloaded, 404?
zgfg said:
Thank you for testing on A11.
Log cannot be downloaded, 404?
Click to expand...
Click to collapse
Looks like some more hiccups on xda back-side again.
Will be nice once the transition is complete, xda will be fast and stable again. :fingers-crossed:
Updated my prior post with a gDrive Link.
If you look at the log, you will notice chrome is not debloated.
The stub is debloated, Chrome (Think it is in product/app) is a gzip version of the Chrome apk.
Chrome is automatically installed into /data/app/HashStringOrSomething/com.android.chrome-HashStringOrSomething/Chome.apk
I have not taken time to look into that change.
Cheers.
ipdev said:
Looks like some more hiccups on xda back-side again.
Will be nice once the transition is complete, xda will be fast and stable again. :fingers-crossed:
Updated my prior post with a gDrive Link.
If you look at the log, you will notice chrome is not debloated.
The stub is debloated, Chrome (Think it is in product/app) is a gzip version of the Chrome apk.
Chrome is automatically installed into /data/app/HashStringOrSomething/com.android.chrome-HashStringOrSomething/Chome.apk
I have not taken time to look into that change.
Cheers.
Click to expand...
Click to collapse
Interesting - what happens when you debloat Chrome-Stub from Product and leave Chrome on Data, does it still run?
Btw, I do use Chrome (because of the integrated translator, making me easy to sometimes read worldwide forums if needed) and I didn't want to debloat originally. However, my preinstalled version on Product was not the latest, and Google Play was offering me to update, but updating Chrome was always failing.
I downloaded the apk from ApkMirror but installation had also failed
Then I debloated (at that time, prior to this debloater I used to manually create my system folder given to Magisk to overlay, and with dummy apk instead of with .replace file) and only then I was able to install Chrome apk (ofc to Data) and since then, to regularly update it through Playstore
One more thing. I've found some people claiming that Chrome breaks to run if Playstore shows Device is not certified.
But back in the spring when Google started to play with enforcing CTS Profile Hardware attest, and prior than @Displax invented ro.product.model spoofing (to force Basic attest and to pass CTS/SafetyNet, to get Device certified), my CTS was failing and Device was not Certified but I had no problems using Chrome on daily basis
---
Also, you have PrebuiltGmail and Music2, I had Gmail2 and FileExplorer_old (I had to use Package Manager to find that Gmail was installed as Gmail2/Gmail2.apk and similarly the Android FileExplore as FileExplorer_old.apk)
Btw all Mi* and Miui* stuff apply only for debloating Xiaomi
In your input list you have lite and wps (both are not found in the log), mine was wps_lite (WPS preinstalled to Vendor) - please check
zgfg said:
Interesting - what happens when you debloat Chrome-Stub from Product and leave Chrome on Data, does it still run?
Btw, I do use Chrome (because of the integrated translator, making me easy to sometimes read worldwide forums if needed) and I didn't want to debloat originally. However, my preinstalled version on Product was not the latest, and Google Play was offering me to update, but updating Chrome was always failing.
I downloaded the apk from ApkMirror but installation had also failed
Then I debloated (at that time, prior to this debloater I used to manually create my system folder given to Magisk to overlay, and with dummy apk instead of with .replace file) and only then I was able to install Chrome apk (ofc to Data) and since then, to regularly update it through Playstore
One more thing. I've found some people claiming that Chrome breaks to run if Playstore shows Device is not certified.
But back in the spring when Google started to play with enforcing CTS Profile Hardware attest, and prior than @Displax invented ro.product.model spoofing (to force Basic attest and to pass CTS/SafetyNet, to get Device certified), my CTS was failing and Device was not Certified but I had no problems using Chrome on daily basis.
Click to expand...
Click to collapse
PlayStore issues are weird at best.
Hit or miss, depends on the device and/or setup.
Certificataion does not seem to play a big part over all.
If it does then Google's has more issues than fixing SafetyNet to worry about.
Sometimes it is just a Google being Google.
I will look into Chrome tomorrow.
I normally use Chrome Dev PlayStore - Link.
More so now, Brave Browser PlayStore - Link.
zgfg said:
Also, you have PrebuiltGmail and Music2, I had Gmail2 and FileExplorer_old (I had to use Package Manager to find that Gmail was installed as Gmail2/Gmail2.apk and similarly the Android FileExplore as FileExplorer_old.apk)
Btw all Mi* and Miui* stuff apply only for debloating Xiaomi
In your input list you have lite and wps (both are not found in the log), mine was wps_lite (WPS preinstalled to Vendor) - please check
Click to expand...
Click to collapse
No harm checking for apps that do not exist on the device.
It may cause extra lines in the log file and one or two seconds of install time.
My bad.
Must have split wps_lite when I was adjusting the list. Then when sorting, it just put lite and wps in the correct order.
---
I re-flashed and/or reverted a few phones tonight and added them to the gDrive Link.
The files listed as _pfile.list (preinstalle files) are a list of files located in app and/or priv-app of system, product and vendor.
I use a shell scripts for this kind of stuff, [ because I am lazy ] primarily with adb shell.
I adjusted the one I use to make the pfile list.
list_pfiles.sh - Still needs to be run as root.
list_pfiles.sh needs to be located in a writable directory. (sdcard/Download | data/local/tmp | ...)
It still uses a static NAME= variable that you will want to change.
I added a few things to make it run from a root file manager like fx or mix.
With the addition (work from a file manager app/or called from a diferent directory), if you rename the script file, you will also have to adjust the SCRIPT= variable to match.
Cheers.
Edit:
2021.Aug.21
I updated the list_pfiles script.
To Use:
Copy this script to the device.
Recommended to use the /sdcard/Download/ directory.
Run from adb shell (or a terminal app) using the sh command.
sh list_pfiles.sh
Run from a file manager that is able to execute a script file.
Note: May or may not work depending on file manager..
ipdev said:
PlayStore issues are weird at best.
Hit or miss, depends on the device and/or setup.
Certificataion does not seem to play a big part over all.
If it does then Google's has more issues than fixing SafetyNet to worry about.
Sometimes it is just a Google being Google.
I will look into Chrome tomorrow.
I normally use Chrome Dev PlayStore - Link.
More so now, Brave Browser PlayStore - Link.
No harm checking for apps that do not exist on the device.
It may cause extra lines in the log file and one or two seconds of install time.
My bad.
Must have split wps_lite when I was adjusting the list. Then when sorting, it just put lite and wps in the correct order.
---
I re-flashed and/or reverted a few phones tonight and added them to the gDrive Link.
The files listed as _pfile.list (preinstalle files) are a list of files located in app and/or priv-app of system, product and vendor.
I use a shell scripts for this kind of stuff, [ because I am lazy ] primarily with adb shell.
I adjusted the one I use to make the pfile list.
list_pfiles.sh - Still needs to be run as root.
list_pfiles.sh needs to be located in a writable directory. (sdcard/Download | data/local/tmp | ...)
It still uses a static NAME= variable that you will want to change.
I added a few things to make it run from a root file manager like fx or mix.
With the addition (work from a file manager app/or called from a diferent directory), if you rename the script file, you will also have to adjust the SCRIPT= variable to match.
Cheers.
Click to expand...
Click to collapse
Pixel comes with only G stuff but interestingly, without Wellbeing
Velvet.apk, what is the package name (you should still be able to find the name on /data/data)?
When you have Velvet (Poco F1, F2 and One+ 5T), do they also have Google.apk = com.google.android.googlequicksearchbox?
Btw, if you use MiXPlorer and choose Tools, App Remnants, you can see /data/data folders for debloated apps (and you can remove them)
HippoMan said:
Over the weekend when I have time to fix any potential bricking or boot loops, I'm going to try this on my A/B device (One Plus 7Pro, GM1917, OOS 10.3.5) ... unless before then anyone indicates that this is not even likely to work on my phone.
If I end up doing this, I'll report my results.
Click to expand...
Click to collapse
I did it just now, and it worked wth no problems on my device! For my initial test, I used SystemlessDebloater to remove GooglePartnerSetup, and it was indeed removed. No bootloops, no problems.
Good work on this module!
zgfg said:
...
Btw, if you use MiXPlorer and choose Tools, App Remnants, you can see /data/data folders for debloated apps (and you can remove them)
Click to expand...
Click to collapse
Well, in my case, GooglePartnerSetup doesn't appear anywhere among MiXPlorer's "App Remnants", even though other /data/data items are indeed being displayed there. But this is not causing any kind of issue on my device, so I am not concerned.
.​
zgfg said:
Pixel comes with only G stuff but interestingly, without Wellbeing
Click to expand...
Click to collapse
Don't worry, Google would not forget to bundle it.
Digital wellbeing is named WellbeingPrebuilt.
package: name='com.google.android.apps.wellbeing'
I just did not add it to the debloat list.
zgfg said:
Velvet.apk, what is the package name (you should still be able to find the name on /data/data)?
When you have Velvet (Poco F1, F2 and One+ 5T), do they also have Google.apk = com.google.android.googlequicksearchbox?
Click to expand...
Click to collapse
Velvet is Google.
package: name='com.google.android.googlequicksearchbox'
As far as I know, Velvet is the bundled and/or GApps name used.
Cheers.
HippoMan said:
I did it just now, and it worked wth no problems on my device! For my initial test, I used SystemlessDebloater to remove GooglePartnerSetup, and it was indeed removed. No bootloops, no problems..​
Click to expand...
Click to collapse
Just a short question - you have A11 on your OnePlus 7Pro?
zgfg said:
Just a short question - you have A11 on your OnePlus 7Pro?
Click to expand...
Click to collapse
One Plus 7Pro, GM1917, OOS 10.3.5 ... as I mentioned above OOS 10.x is A10.
.​
zgfg said:
Interesting - what happens when you debloat Chrome-Stub from Product and leave Chrome on Data, does it still run?
Btw, I do use Chrome (because of the integrated translator, making me easy to sometimes read worldwide forums if needed) and I didn't want to debloat originally. However, my preinstalled version on Product was not the latest, and Google Play was offering me to update, but updating Chrome was always failing.
I downloaded the apk from ApkMirror but installation had also failed
Then I debloated (at that time, prior to this debloater I used to manually create my system folder given to Magisk to overlay, and with dummy apk instead of with .replace file) and only then I was able to install Chrome apk (ofc to Data) and since then, to regularly update it through Playstore
Click to expand...
Click to collapse
Still have to test some more.
So far only on my Pixel aOS 11.
This is a little tricky to explain my testing/findings.
- Long post, truncated it for now. -
Not logged into Google. (PlayStore)
With Chrome stub active, Chrome is treated as a system app.
Even though the full version is in data it can not be uninstalled only disabled.
PlayStore shows an available update for Chrome.
If stub is removed (debloated), Chrome is treated as a user app.
You have the option to uninstall.
PlayStore does NOT show an update for Chrome.
Did not matter if I cleared cache and/or data on PlayStore or re-scan with with PlayProtect.
This is odd, since Google should still want to update even if it is just a user app.
I'll have to dig though the user agreement again.
Might be automatic update only when Google apps are included (system app) when not logged in.
--
As soon as I logged in, Google immediately updated some back-end.
Chrome is now available for an update and it updated fine.
This is also where some oddities came in.
--
<TRUNCATE>
--
Still have to double check everything.
Seems to be an issue distinguishing between system and user apps.
Should have time this weekend to redo and verify every step I used for testing.
As of now, I would suggest the same as you did it.
Debloat Chrome (stub)
Uninstall Chrome (should be considered a user app after the debloate.)
Install from another source (if need be then update from PlayStore.) or just install from PlayStore.
Cheers.
Btw, released v1.3.5 through the OP post #1 - just to log to the logfile the Android version, is it SAR and is it A/B - would be nice if you can test does it log correctly when you have time and A/B device.
Unfortunately, still unable to resolve a miss-communication with the bot to successfully submit to Repo
Can somebody dhare his debloat app list? Or the best, .sh file? İt would be great

[MODULE] fakestore2playstore - microG with License Verification + In-App-Purchases

microG works great until a paid app tries to verify the license or when it comes to in app purchases. Using existing tools like NanoDroid and microG Installer Revived has disadvantages (see Readme below). That's why I created a Magisk module that replaces FakeStore with a patched version of the PlayStore. After installing the module, licenses can be verified and even in-app-purchases are possible with microG.
Visit on Github or download v0.1 directly.
Readme:
FakeStore 2 PlayStore​This is a Magisk module that replaces FakeStore with the patched Play Store by Nanolx and is mainly intended to be used with LineageOS for microG, which already ships with microG and FakeStore. I only tested it on LineageOS 18.1 for microG. Use at your own risk, if you are on a different ROM.
The module uses fixed permissions settings from nift4's microG Installer Revived. Additionally it adds the Nanolx's NanoDroid companion F-Droid repository to F-Droid for automatic updates of the patched Play Store.
Why you want to use it​You want to have License Verification and In-App-Purchases with microG and already have a system with microG + FakeStore (like LineageOS for microG)
Installation​
Install LineageOS for microG
Install Magisk
Install the module through the Magisk Manager App
Important: Do NOT flash in TWRP, you need to use the Magisk app and have an active internet connection for downloading the patched PlayStore.
NanoDroid or microG Installer Revived already do the job, don't they?​Yes and no. After several tries with combinations of LineageOS 18.1, Lineage OS 18.1 for microG, NanoDroid and microG Installer Revived, I always ended up with either an unbootable system or with configurations that don't survive OTA upates or that would render microG upgrades useless or install too much.
NanoDroid's patcher (currently?) isn't able to successfully patch signature spoofing into LOS 18.1 and I didn't want to fiddle around with deodexing. My intention was to have a ready-to-use solution for LineageOS that survives OTAs. So I had to use LOS for microG, which already has the signature spoofing patch. However installing the patched PlayStore in LOS 18.1 for microG using NanoDroid always resulted in an unbootable system - even when disabling every other feature in .nanodroid-setup and hiding FakeStore with .nanodroid-overlay.
Though microG Installer Revived does a better job (the system was bootable after installing the patched PlayStore , it isn't able to hide FakeStore on it's own. So I had to still hide FakeStore somehow. Additionally microG Installer Revived installs DroidGuard as a system app, which is not what I wanted. Furthermore, it overwrites GmsCore with it's own version and therefor any OTA updates by LineageOS for microG would've been overwritten by the Installer's version.
That said, it's possible to use NanoDroid's .nanodroid-overlay feature to hide FakeStore in combination with microG Installer Revived to install the patched PlayStore and live with the DroidGuard and OTA issues. But I decided to make a Magisk module that does no more than replacing FakeStore with a patched version of PlayStore. Here it is.
Build​Linux, BSD, macOS, Android​Requires wget.
wget -O META-INF/com/google/android/update-binary https://raw.githubusercontent.com/topjohnwu/Magisk/master/scripts/module_installer.sh && zip fakestore2playstore.zip -9r *
Other​Download this and put it into META-INF/com/google/android/update-binary. And ZIP it.
Credits​
Nanolx for the PlayStore patch.
nift4 for microG Installer Revived
wait does this still use the google play in-app purchase dialogue or are in-app purchases just free now?
MirageSteezyBoi said:
wait does this still use the google play in-app purchase dialogue or are in-app purchases just free now?
Click to expand...
Click to collapse
Negative, nothing is for free! Otherwise it'd be considered warez! This means, this modificated Google Play Store allows you to make the same purchases like the "normal" play store despite the lack of Google Play Services and the use of µG.
Oswald Boelcke said:
Negative, nothing is for free! Otherwise it'd be considered warez! This means, this modificated Google Play Store allows you to make the same purchases like the "normal" play store despite the lack of Google Play Services and the use of µG.
Click to expand...
Click to collapse
cool. works great. vouch
now this is helpful - thank you for releasing this!
for me only worked the one to download directly (1.0). generating or updating the zip like described led to "unzipping failed" message in magisk. i don't know, where the pitfall could be, just mentioning this here.
klaasklever said:
now this is helpful - thank you for releasing this!
for me only worked the one to download directly (1.0). generating or updating the zip like described led to "unzipping failed" message in magisk. i don't know, where the pitfall could be, just mentioning this here.
Click to expand...
Click to collapse
Thanks for reporting. However, I double checked the build steps and ended up with the same file as the released one. I guess it doesn't have to do anything with fakestore2playstore, but may be due to your "zip" executable. In fact, Magisk also complains about the unzipping progress itself. Anyway, I'm happy you find this module helpful!
You should check out https://github.com/FriendlyNeighborhoodShane/MinMicroG_releases they already include the same PatchedPhonesky along with a minimal microG setup similar to the revived version from the Magisk repo, all in one package.
As for signature spoofing and all that if your ROM doesn't support it the easiest way is to use f0mey's Smali Patcher:
[MODULE] Smali Patcher 7.4
Smali Patcher WHAT THE HELL IS THIS THING? :: To sum things up this is an application I developed that pulls the android framework from your device, applies what I (or other users) consider useful patches to the sourced files and then...
forum.xda-developers.com
Thank you a big bunch. Very easy to install, and works pretty good. Some paid apps can't be installed for some reaaon, but you can install them with means, and the licence verification later works! Which is the main point.
I've been using this on 3 phones running gappless + microG. All with different custom ROMs and it appears to work wonderfully for license verification on the few apps I have paid for - except one (titanium backup). FWIW 2 are running A10 and one A11.
Thank's to the developer for this useful app!
It used to work for me, but after I reset my phone a few days ago and tried to install the module again I get error message "download failed and installation failed". I use /e/os (a fork of Lineage OS 18.1) on a Galaxy S10+ and Magisk 24.3. Any ideas?
thegreekfreak said:
It used to work for me, but after I reset my phone a few days ago and tried to install the module again I get error message "download failed and installation failed". I use /e/os (a fork of Lineage OS 18.1) on a Galaxy S10+ and Magisk 24.3. Any ideas?
Click to expand...
Click to collapse
Fixed in fakestore2playstore-0.2.zip
The wget version that ships with the busybox provided by Magisk 24 somehow can't download the patched playstore from Nanolx's repository. The server closes the connection because of a tls error. Now the patched playstore is included in this module and a download isn't required any more.
By the way: I'm on Android 12 now, but the Playstore doesn't work properly. Seems like some permissions/settings are missing. Unfortunately I'm quite busy currently and can't look into this deeper right now. Hope to find some sparetime soon.
sn00x said:
Fixed in fakestore2playstore-0.2.zip
The wget version that ships with the busybox provided by Magisk 24 somehow can't download the patched playstore from Nanolx's repository. The server closes the connection because of a tls error. Now the patched playstore is included in this module and a download isn't required any more.
By the way: I'm on Android 12 now, but the Playstore doesn't work properly. Seems like some permissions/settings are missing. Unfortunately I'm quite busy currently and can't look into this deeper right now. Hope to find some sparetime soon.
Click to expand...
Click to collapse
Please fix Android 12 issue! Please!
Hello, your module is running perfetcly on my device. Thanks!
But I'm still have some questions. Is it possible to install the Original PlayStore with microG installed?
I might have the exact case described here (LOS 18.1 for MicroG), but this does work perfectly. Thanks a lot
Well, doesn't work on Android 12+... Any chance for an update ? This was really a neat module :/
lPolarisl said:
Well, doesn't work on Android 12+... Any chance for an update ? This was really a neat module :/
Click to expand...
Click to collapse
I made it work again, but can't really remember how... first thing is enable network access for playstore in app-setting, it was disabled by default. also, try microG_Installer_Revived-Revived_3.0.0. and mess around with it, somehow it turns out ok ...
Jackson Karloff said:
I made it work again, but can't really remember how... first thing is enable network access for playstore in app-setting, it was disabled by default. also, try microG_Installer_Revived-Revived_3.0.0. and mess around with it, somehow it turns out ok ...
Click to expand...
Click to collapse
It works... Can't believe I missed that, that was all, network access was disabled x(
Thanks a lot, I had completely given up on this !
@sn00x In case you're still around... I now have trouble with your module, for some reason, it installs fine and the Play Store's there on the first reboot, but after the second reboot, it still shows up as active in the Magisk module list, but no Play Store app to be found, only FakeStore...
IodéOS, Android 12

How To Guide How to install a more recent version of the Playstore in the OmniROM

In this forum entry
https://forum.xda-developers.com/t/...h-a-patched-playstore-from-nanodroid.4456421/
I described how to replace the fake store in the OmniROM with MicroG with a patched Playstore.
The Playstore version contained in the Magisk module PlaySore_for_MicroG.zip mentioned in that forum entry is quite old: 20.9.20-all. It works (at least for my purpose...) but for others it might be to old.
To install a newer version of the Playstore the Magisk module microG-GApps can be used:
The version of the Playstore in this Magisk module is 35.2.19-21.
The Magisk module microG-GApps also contains the necessary MicroG apks for using the Playstore so it can be installed in the OmniROM image without MicroG. in this case be sure to configure the MicroG settings manually before starting the Playstore.
Note that the customizing script in this Magisk module downloads the MicroG packages from the MicroG website so a working internet connection is necessary to install the module
It's also possible to install the Magisk module microG-GApps in the OmniROM with MicroG:
To use the Magisk module microg-GApps in the OmniROM with MicroG it's necessary to disable the fake store from the OmniROM:
This can be done with the Magisk module disable_fake_store.zip.
After installing that module install the Magisk module microG-GApps and reboot the phone to activate both Magisk modules.
The Magisk module microG-GApps will also install additional Google packages and a new version of the MicroG packages (as of 04.06.2023 this is the version 0.2.28.231657) . To remove these optional files either remove them from the ZIP with the Magisk module microG-GApps (and correct the script customize.sh in te ZIP file) or delete the files installed on the phone for these components after installing the module:
The optional files that can be deleted on the phone running the OmniROM with MicroG are:
To remove the additional Google packages delete these files in /data/adb/modules/microG-GApps/system:
./priv-app/GoogleCalendarSyncAdapter
./priv-app/GoogleCalendarSyncAdapter/base.apk
./priv-app/GoogleContactsSyncAdapter
./priv-app/GoogleContactsSyncAdapter/base.apk
./etc/permissions/com.google.android.syncadapters.contacts.xml
./etc/permissions/com.google.android.syncadapters.calendar.xml
To remove the MicroG packages delete these files in /data/adb/modules/microG-GApps/system:
./priv-app/microGServicesCore
./priv-app/microGServicesCore/base.apk
./priv-app/microGServicesFrameworkProxy
./priv-app/microGServicesFrameworkProxy/base.apk
./framework/com.google.android.maps.jar
./etc/permissions/com.google.android.syncadapters.contacts.xml
./etc/permissions/com.google.android.syncadapters.calendar.xml
Before using the Playstore check the output in the Self Check in the MicroG app to make sure everything is still okay. In addition, the "Google Device registration" must be enabled in the MicroG settings.
Trouble Shooting
In case you get the error DF-DFERH-01 after the Google sign in double check the settings in MicroG. If everyhing is ok in the MicroG settings stop the Playstore using "Force stop" in the System application and delete the storage for the Playstore using "Clear storage" in the System application. When done reopen the Playstore.
Update 08.06.2023
If the Playstore does not work after upgrading from the old Magisk Module (e.g. there is no Playstore icon in the menu) execute these commands as user root to fix it:
Bash:
PHONESKY_APK="/system/priv-app/Phonesky/Phonesky.apk"
PKG_SIZE=$( ls -l ${PHONESKY_APK} | awk ' { print $5 }' )
cat "${PHONESKY_APK}" | echo pm install -S ${PKG_SIZE}
So, if I have MicroG already installed, I just need to flash disable_fake_store.zip, that's all ?
lPolarisl said:
So, if I have MicroG already installed, I just need to flash disable_fake_store.zip, that's all ?
Click to expand...
Click to collapse
Hi
both moduls are Magisk modules -- so nothing has to be flashed.
if the installed MicroG contains a fake store you install both Magisk modules
disable_fake_store.zip
microG-GApps
and reboot.
regards
Bernd

Categories

Resources