topjohnwu
0e5a113a0c
Support patching mnt_point in fstab in dtb
2019-09-22 04:17:15 -04:00
topjohnwu
a1ccd44013
Change MagiskBoot patch behavior
...
Use environment variables to toggle configurations for patching ramdisk
2019-09-21 05:55:23 -04:00
topjohnwu
4d91e50d6d
Update dtb patch to not use in-place modification
2019-09-21 05:30:04 -04:00
topjohnwu
86481c74ff
Allow user to select recovery mode
...
Close #1674
2019-09-08 00:44:26 -04:00
topjohnwu
ee39616a8b
Update emulator.sh to support all AVD images
2019-09-04 11:12:09 -04:00
topjohnwu
8cf475f708
Add scripts to setup Magisk in AVD
2019-09-03 17:06:14 -04:00
Chris Renshaw
1283590eeb
scripts: prepare addon.d for recovery addon.d-v2 support
...
- naturally there's no `su` in recovery
- major refactor for common actions and simplicity
2019-09-01 02:19:59 +08:00
osm0sis
dca3fe396f
scripts: hide expected x86 busybox error on arm
...
- Magisk Manager installs have busybox in the $PATH before extracting busybox from update-binary so an error from busybox ash (as sh) attempting to parse the x86 busybox like a shell script would be shown:
./bin/busybox: line 1: syntax error: unexpected "("
- this will only occur when ash tries to run a binary it can't handle, so basically only with x86 binary on an arm* device
2019-09-01 02:19:59 +08:00
topjohnwu
1f8df419c4
Extract x86 busybox first
...
Fix #1600
2019-07-16 01:16:29 -07:00
topjohnwu
f1112fdf37
Logical Resizable Android Partitions support
...
The way how logical partition, or "Logical Resizable Android Partitions"
as they say in AOSP source code, is setup makes it impossible to early
mount the partitions from the shared super partition with just
a few lines of code; in fact, AOSP has a whole "fs_mgr" folder which
consist of multiple complex libraries, with 15K lines of code just
to deal with the device mapper shenanigans.
In order to keep the already overly complicated MagiskInit more
managable, I chose NOT to go the route of including fs_mgr directly
into MagiskInit. Luckily, starting from Android Q, Google decided to
split init startup into 3 stages, with the first stage doing _only_
early mount. This is great news, because we can simply let the stock
init do its own thing for us, and we intercept the bootup sequence.
So the workflow can be visualized roughly below:
Magisk First Stage --> First Stage Mount --> Magisk Second Stage --+
(MagiskInit) (Original Init) (MagiskInit) +
+
+
...Rest of the boot... <-- Second Stage <-- Selinux Setup <--+
(__________________ Original Init ____________________)
The catch here is that after doing all the first stage mounting, /init
will pivot /system as root directory (/), leaving us impossible to
regain control after we hand it over. So the solution here is to patch
fstab in /first_stage_ramdisk on-the-fly to redirect /system to
/system_root, making the original init do all the hard work for
us and mount required early mount partitions, but skips the step of
switching root directory. It will also conveniently hand over execution
back to MagiskInit, which we will reuse the routine for patching
root directory in normal system-as-root situations.
2019-06-29 01:25:54 -07:00
topjohnwu
e29b712108
Start Magisk in SAR
2019-06-25 23:31:59 -07:00
osm0sis
ac28e6e5ca
Fix uninstaller missing recent changes
...
- group unsupported formats into the same code (86f778c0aa (diff-93690a8d9f50c177ef97416af3be8726)
)
- support A only system-as-root devices (e72c6685ed (diff-93690a8d9f50c177ef97416af3be8726)
)
- remove unnecessary '--' from magiskboot actions (7f08c06943 (diff-93690a8d9f50c177ef97416af3be8726)
)
- get_flags need to be before find_boot_image (a4f5d47e72
)
closes #1371 , closes #1431 , closes #1439
2019-05-09 20:28:48 -07:00
topjohnwu
fb40e96917
Update outputs
2019-05-01 01:22:37 -04:00
topjohnwu
4ca25f74c6
More robust mounting scripts
...
Close #1376
2019-04-30 17:35:58 -04:00
osm0sis
7fda917b86
Fix addon.d error OUTFD derp
2019-04-30 17:09:25 -04:00
osm0sis
e6bd5f2c40
Display error if actual Magisk addon.d script cannot be run
...
- this would likely occur on an FDE device with block map OTAs (a la LineageOS) since they do not require/request decrypt
- for reference all other addon.d "v1" cases should work fine:
1) FDE with openrecovery script works fine since it requests decrypt
2) FBE with openrecovery script OR block map work fine since /data/adb remains accessible
2019-04-30 10:27:29 -04:00
topjohnwu
c5758b3f2d
Update scripts
2019-04-06 13:04:17 -04:00
topjohnwu
7af7910e78
Revert "Revert to old find boot order"
...
This reverts commit 5203886f0bc535e913b17fe2adbc83beb85df6b9.
2019-04-05 15:18:39 -04:00
vvb2060
a4f5d47e72
get_flags need before find_boot_image
2019-04-05 15:18:28 -04:00
topjohnwu
5203886f0b
Revert to old find boot order
2019-04-04 20:01:59 -04:00
topjohnwu
91da1cf817
Make on_install happen earlier to allow more customization
2019-03-31 15:37:12 -04:00
topjohnwu
1cd45b53b1
Support recovery based Magisk
...
Some devices (mainly new Samsung phones we're talking here...) using
A only system-as-root refuse to load ramdisk when booted with boot
no matter what we do. With many A only system-as-root devices, even
though their boot image is kernel only, we can still be able to add
a ramdisk section into the image and force the kernel to use it as
rootfs. However the bootloader on devices like the S10 simply does
not load anything within boot image into memory other than the kernel.
This gives as the only option is to install Magisk on the recovery
partition. This commits adds proper support for these kind of scenarios.
2019-03-30 00:49:48 -04:00
topjohnwu
1c09b3642f
Properly setup update flag in module installer
2019-03-27 22:20:39 -04:00
topjohnwu
a199b0ace1
Use ZIPFILE instead of ZIP
...
The tool zip reads , we don't want it
2019-03-23 20:49:16 -04:00
topjohnwu
2f2108e4e8
Fix typo in module installer
2019-03-23 05:28:43 -04:00
topjohnwu
f9ae4ab475
Add base Magisk module installer script
2019-03-23 04:27:36 -04:00
topjohnwu
b7e2e972c7
Support boot_img_hdr_v2
2019-03-13 16:51:22 -04:00
topjohnwu
7f08c06943
Remove unnecessary '--' from magiskboot actions
2019-03-07 18:07:23 -05:00
topjohnwu
14ae29d907
Support Android Q new init setup
2019-03-03 06:35:25 -05:00
topjohnwu
e72c6685ed
Support A only System-as-root Devices
...
Most Chinese devices (and supposedly Galaxy S10) running Android Pie
is using system-as-root without A/B partition.
https://source.android.com/devices/bootloader/system-as-root#about-system-as-root
According to the docs above, these devices will have a ramdisk block
with size 0 in their boot images. Since magiskinit can run independently
on system-as-root devices, we simply just create an empty ramdisk with
magiskinit added as init.
Huge thanks to @vvb2060 for the heads up and original PR.
Close #980 , close #1102
2019-02-28 05:46:36 -05:00
topjohnwu
63b18246d8
Add compressed ramdisk support
2019-02-24 20:39:01 -05:00
topjohnwu
6ca8db2f0c
Welcome to the 64 bit world!
...
Close #854
2019-02-24 08:13:27 -05:00
topjohnwu
3356d7b6ff
More friendly to obscure/outdated custom recoveries
...
Close #1049
2019-02-24 04:45:47 -05:00
topjohnwu
86f778c0aa
Group unsupported formats into the same code
2019-02-24 02:30:04 -05:00
topjohnwu
defbbdfe21
Update scripts
2019-02-24 02:11:11 -05:00
HemanthJabalpuri
10613686ed
Fix bootloop when removing system SuperSU in <5.0
2019-02-18 03:31:16 -05:00
topjohnwu
1321f097b8
Remove usage of magisk.img
...
Mounting ext4 images causes tons of issues, such as unmountable with broken F2FS drivers.
Resizing is also very complicated and does not work properly on all devices.
Each step in either measuring free space, resizing, and shrinking the image is a
point of failure, and either step's failure could cause the module system completely broken.
The new method is to directly store modules into /data/adb/modules, and for module installation
on boot /data/adb/modules_update. Several compatibility layers has been done: the new path is
bind mounted to the old path (/sbin/.magisk/img), and the helper functions in util_functions.sh
will now transparently make existing modules install to the new location without any changes.
MagiskHide is also updated to unmount module files stored in this new location.
2019-02-12 02:14:57 -05:00
topjohnwu
ab47b717b1
Reorganize scripts
2019-02-11 17:14:07 -05:00
vvb2060
e05cdc83f3
fix extract_bb
2019-02-11 02:35:04 -05:00
Erfan Abdi
6698c189fc
Support non-ext4 filesystem for vendor and system
...
Signed-off-by: Erfan Abdi <erfangplus@gmail.com>
2019-02-07 00:45:30 -05:00
topjohnwu
6ee08b6717
Temporary remove API 16 support
2019-02-03 16:42:16 -05:00
topjohnwu
c7301a5161
Better support for low API levels
2019-02-03 09:50:49 -05:00
topjohnwu
62acc17e42
Support API 16 (Android 4.1)
...
Because why not
2019-02-02 05:06:13 -05:00
topjohnwu
858216796a
Allow API 17 installation
2019-01-20 18:17:24 -05:00
Ivan Kutepov
6ea42a35a9
Fix reqSizeM check in mount_magisk_img function
2019-01-17 10:19:59 -05:00
topjohnwu
23e5188422
Update scripts
...
1. Update build.py to use f-strings
2. Directly append busybox binaries to update-binary
3. Remove b64xz
2019-01-15 08:32:18 -05:00
Zackptg5
0a64a7e5d4
Update util_functions.sh
...
Eliminates `cat: write error`
2019-01-13 13:17:45 -05:00
topjohnwu
0be158afa1
Official KitKat support
2018-12-28 16:03:23 +08:00
topjohnwu
8d210b5e37
Enhance EMUI 9 user experience
2018-12-25 01:08:46 +08:00
topjohnwu
3c6c0e6700
Support EMUI 9.0
2018-12-24 21:36:37 +08:00
topjohnwu
8b4008798f
Add backward compat paths
2018-12-05 20:10:59 -05:00
topjohnwu
fd4faf59b8
Use tr for replacing whitespace to newline
...
Close #824
2018-12-05 20:07:15 -05:00
Pzqqt
1cff08ce5d
Fix possible error block counts
...
Add "-k" parameter to force the unit to 1024 bytes.
2018-12-05 12:53:06 -05:00
topjohnwu
0784448c69
Remove /.backup folder on start
2018-11-20 05:24:40 -05:00
topjohnwu
96b93bd876
Add function to find manager APK
...
Close #673
2018-11-15 03:12:31 -05:00
topjohnwu
376e7977f0
Deprecate path /sbin/.core, switch to /sbin/.magisk
...
Symlink is preserved for backwards compatibility
2018-11-15 01:36:03 -05:00
topjohnwu
83ae66daea
Change stock boot image SHA1 backup method
2018-11-15 00:33:20 -05:00
topjohnwu
d7d80d3fc1
Update encryption detection for determining default flags
2018-10-20 17:10:35 -04:00
topjohnwu
dd9ddd2019
Remove unnecessary instruction from Defex hexpatch
...
Close #489
2018-10-20 00:28:09 -04:00
topjohnwu
e1a65276b9
Switch to general Samsung defex patch
...
Should be future proof unless code changes
2018-10-17 03:17:24 -04:00
topjohnwu
3f87f6aee3
Fix output in Magisk Manager if no root exists
2018-09-20 16:21:22 -04:00
topjohnwu
04bcd145d3
Add a.a alias to BootSigner
2018-09-20 15:37:59 -04:00
topjohnwu
70d3b24338
Keep dm/avb-verity when device is using system_root_image
...
Close #512
2018-08-29 00:40:14 -04:00
topjohnwu
8664e9d19b
Update scripts
2018-08-28 22:03:12 -04:00
topjohnwu
f6aae2b048
Add hexpatch to remove Samsung defex in kernel
...
Close #499
2018-08-26 22:38:13 -04:00
topjohnwu
a46c6252c6
Detect insufficient partition size
...
Close #388
2018-08-11 15:56:12 +08:00
topjohnwu
5c1886c8f5
Update scripts
2018-08-10 18:59:14 +08:00
topjohnwu
6add682705
Remove high compression mode
2018-08-10 03:49:25 +08:00
topjohnwu
a63696836c
Proper addon.d-v2 support
2018-08-03 22:40:49 +08:00
topjohnwu
bb25edc09e
Use own busybox for get_outfd
2018-08-03 04:25:00 +08:00
topjohnwu
169c0fe4af
Stop use clashing names
2018-08-03 03:43:02 +08:00
topjohnwu
0ef026c610
Remove system root when running addon.d
2018-07-20 00:37:38 +08:00
topjohnwu
90379eeb35
Detect ramdisk partition
...
Because Huawei, fix #400
2018-07-19 17:48:51 +08:00
topjohnwu
ef62272df7
Small adjustments to prevent seccomp errors
2018-07-10 02:44:58 +08:00
topjohnwu
c3b473e4bc
Fix get_outfd in embedded mode
2018-07-07 17:48:05 +08:00
topjohnwu
c3a6179a21
Update scripts
2018-07-05 17:29:13 +08:00
topjohnwu
4de51d93ef
Tweak info when installing
2018-07-04 23:46:16 +08:00
topjohnwu
70243d7a47
Add fallback to parse block from fstabs
2018-07-03 18:28:44 +08:00
topjohnwu
b5b8c4b725
First find blocks by-name, then fallback to parsing sysfs
2018-07-03 02:57:57 +08:00
topjohnwu
d149af9628
Fix bootloop when upgrading from older Magisk
2018-07-01 14:58:31 +08:00
topjohnwu
3283439fd4
New uninstaller
2018-06-27 06:00:01 +08:00
topjohnwu
c8216f9bc5
Fix uninstaller
2018-06-26 22:41:03 +08:00
Jat
d1a7372bd2
fix a bug when $ABILONG is arm64-v8a
2018-06-26 05:03:07 +08:00
topjohnwu
7265450e2e
Precise free space calculation for magisk.img
...
1. Introduce new applet: imgtool for better separation from the main program
2. Actually mount the image and check statvfs for free space in the image
This shall eliminate any possible module installation failure from image resizing issues.
2018-06-22 06:18:06 +08:00
topjohnwu
daf9b019c6
More elaborate bb_setup
2018-06-21 16:39:10 +08:00
topjohnwu
14eebd582f
Source addon.d script from data
2018-06-21 11:54:21 +08:00
topjohnwu
9a8eeacee8
Fix output of addon.d, and add support for addon.d-v2
2018-06-21 10:53:49 +08:00
topjohnwu
45b0bf5bc5
Remove unnecessary variable
2018-06-21 01:48:46 +08:00
topjohnwu
88db822c43
Get device blocks with sysfs
2018-06-21 01:37:08 +08:00
John Wu
c0ca99f4b4
Make sure APK exists before signing AVB 1.0
...
Check all possible APK locations before actually running the verification
2018-06-19 14:19:38 -07:00
XiNGRZ
196f15d240
Fix survival script for AVB 1.0 signed boot image
2018-06-19 14:19:38 -07:00
topjohnwu
835ece5469
Update default flag logic, fix S9/S9+ DTB patches
2018-06-18 01:40:56 +08:00
topjohnwu
d93fc67a75
Improve detecting device status
2018-06-17 17:59:24 +08:00
topjohnwu
3f83919e09
Fix bootloops when flashing Magisk after data wipe on FBE devices
2018-06-11 02:26:18 +08:00
topjohnwu
72a5b83544
Support patching dtb placed in extra section (S9/S9+)
2018-06-10 20:36:18 +08:00
topjohnwu
274efb49e7
Fix modules installation error
2018-06-03 17:01:10 +08:00
topjohnwu
9b445d89a1
Add extract feature to update-binary
2018-05-13 14:26:28 +08:00
topjohnwu
25703c1750
Do not force LD_LIBRARY_PATH in recovery
2018-05-06 01:49:01 +08:00
topjohnwu
fc9d4034a9
Fix installation in custom recoveries
2018-04-29 14:04:18 +08:00
topjohnwu
a2c1b024f3
Use 32-bit binaries only
2018-04-22 14:13:27 +08:00
topjohnwu
9e737df534
Update high compression mode detection logic
2018-03-10 15:55:55 +08:00
topjohnwu
a94fa81195
Support non skip_initramfs device with slot suffix
2018-02-14 00:57:52 +08:00
topjohnwu
6728445542
Support separate ramdisk images
2018-02-10 03:34:13 +08:00
topjohnwu
10ed299c78
Detect recovery on FBE devices with no DE access
2018-02-10 03:31:00 +08:00
topjohnwu
e5c3183025
Update scripts
2018-01-01 16:46:28 +08:00
topjohnwu
d8bb3af06b
Miscellaneous
2017-12-29 04:25:30 +08:00
topjohnwu
74da6e1dc0
Support new 1500 template
2017-12-26 03:23:58 +08:00
topjohnwu
f7b4935677
Add recommend KEEPVERITY and KEEPFORCEENCRYPT flags
2017-12-21 15:42:03 +08:00
topjohnwu
a3c49de6a5
Refactor magiskboot
2017-12-21 03:36:18 +08:00
topjohnwu
4db0ad32f0
Fix install scripts
2017-12-18 03:08:53 +08:00
topjohnwu
8ca1e43533
Move all /data files into /data/adb
2017-12-16 04:42:16 +08:00
topjohnwu
bd01c314dc
Change database location
2017-12-12 03:04:55 +08:00
topjohnwu
942c870981
Properly handle KEEPVERITY and HIGHCOMP
2017-12-07 04:20:27 +08:00
topjohnwu
baff9256c5
Dynamic patch verity and forceencrypt flag
2017-12-07 03:21:13 +08:00
topjohnwu
9f6a27c20d
Add high compression ramdisk support
2017-12-06 12:51:16 +08:00
topjohnwu
d8b8adb88c
Fix is_mounted function
2017-11-22 22:22:29 +08:00
topjohnwu
bc21a1fb71
Update internal paths
2017-11-22 16:04:24 +08:00
topjohnwu
3bc31374ac
Fix issue of touch command on Android 5.0
2017-11-20 04:13:51 +08:00
topjohnwu
32ee8e462c
Properly and fully support dtbo patching
2017-11-15 05:48:31 +08:00
topjohnwu
912c188b53
Add dtbo.img patch support
2017-11-11 01:33:50 +08:00
topjohnwu
b438cc9335
Remove unnecessary monogisk
2017-11-10 00:54:54 +08:00
topjohnwu
1d3d30fa45
Get potential slot info
2017-11-09 03:05:25 +08:00
topjohnwu
e710848345
Unify Magisk configuration
...
Introduce monogisk tool
2017-11-06 06:22:45 +08:00
topjohnwu
a831110816
Add boot signing to installation
2017-10-31 17:05:24 +08:00
topjohnwu
bb7099376b
Improve daemon startup and log management
2017-10-11 02:26:28 +08:00
topjohnwu
03c8d716cc
Introduce Invincible Mode: Self recover service
2017-10-08 22:00:22 +08:00
topjohnwu
c215447405
Fix Pixel C installation
2017-10-07 22:08:10 +08:00
topjohnwu
dbfe49c56f
Unlock blocks before flashing boot image
2017-09-28 00:54:01 +08:00
topjohnwu
98e21f9f5b
Update uninstaller
2017-09-27 15:26:21 +08:00
topjohnwu
9cb1cf756f
Update scripts
2017-09-26 20:21:43 +08:00
topjohnwu
9b4ae8fcc5
Adjust scripts
2017-09-16 03:48:58 +08:00
topjohnwu
a1a2c52409
Patch sepolicy at boot time
2017-09-16 01:32:09 +08:00
topjohnwu
590e7f7724
Proper support for Magisk Manager installation
2017-09-15 18:02:25 +08:00
Shaka Huang
4d61e5e319
Fix error generating binary for x86
...
fix typo
Signed-off-by: Shaka Huang <shakalaca@gmail.com>
2017-09-14 14:33:37 -05:00
topjohnwu
e5e34797a8
Patch fstab from dtb
2017-09-15 02:52:53 +08:00
topjohnwu
518f3d229f
Slight adjustments to scripts
2017-09-13 15:51:45 +08:00
topjohnwu
46c91f923d
Update scripts to support Pixel (XL)
2017-09-13 04:08:50 +08:00
topjohnwu
cd5f5d702f
Fix stock image dump not stored correctly
2017-09-13 04:08:44 +08:00
topjohnwu
0eb79e5acd
Update scripts
2017-09-06 23:33:46 +08:00
topjohnwu
cd8dd65a65
chcon on Android 5.0 doesn't support -h options
2017-09-05 21:44:53 +08:00
topjohnwu
50c56f8b50
Simplify flash scripts
2017-09-05 21:44:22 +08:00
topjohnwu
9e9f8ca8f3
Restore cwd
2017-09-02 23:28:17 +08:00
topjohnwu
f63af0601c
Support Magisk Manager boot image file patch
2017-08-31 03:08:09 +08:00
topjohnwu
9522255e3a
Proper magisk manual injection support
2017-08-17 03:46:01 +08:00
topjohnwu
6eb7c0b5d6
Add new util functions for new template version
2017-08-12 23:15:39 +08:00
topjohnwu
750872cc37
Add boot actions
2017-08-12 17:03:31 +08:00
topjohnwu
d6547f0701
Fix installer options not read properly
2017-08-04 23:49:22 +08:00
topjohnwu
eae611c54d
Add b64xz to handle busybox decode/decompress in scripts
2017-08-02 18:25:24 +08:00
topjohnwu
b37bad35c2
Fuse busybox into update-binary and remove from Magisk Manager APK
2017-08-02 02:22:33 +08:00
topjohnwu
cb70eebb08
Update scripts
2017-07-31 03:03:52 +08:00