Commit Graph

362 Commits

Author SHA1 Message Date
d9564bd04c Delay full sepolicy patch loading time 2018-08-02 05:35:01 +08:00
91818cfa1a Support compiling split cils via magiskpolicy CLI 2018-07-21 05:12:22 +08:00
3ae959af95 Do not early mount on symlinks on half Treble devices
Fix #399
2018-07-19 17:43:37 +08:00
e11e88a9c5 Huawei hardcodes the slot suffix, don't append the suffix twice 2018-07-19 03:12:28 +08:00
d08f326990 Log fatal errors in debug mode only 2018-07-18 03:25:36 +08:00
adf95ce3a0 Read fstab from device tree
In previous versions, magiskinit will not early mount if /sepolicy is detected. However on OP5/5T latest betas, the devices are fully trebelized,
but for some reason the file /sepolicy still exists, making magiskinit think it is NOT a treble device and doesn't work properly.

So to properly fix this issue, I will have to use the "official" way - check fstab in device trees. Any block mentioned in the fstab in device trees
are supposed to be early mounted. Currently magiskinit will only mount system and vendor even if other partitions exists in the dtb fstab, since other
partitions are not used to construct sepolicy (currently).

These changes can also fix #373, since we dynamically detect PARTNAME from device trees.
2018-07-18 00:45:10 +08:00
18d0fd9d2a MagiskInit optimizations 2018-07-17 06:18:36 +08:00
2bde8a1975 EMUI's logcat will change output file's permission and break ADBD 2018-07-16 06:42:36 +08:00
f339a087a2 Let Magisk compile against SDK 16 2018-07-13 22:14:32 +08:00
1affb91f17 Support compiling against lower SDK
Reduce even more size for static binaries
2018-07-13 05:41:29 +08:00
1283167595 Maintain our own set of loop devices 2018-07-07 01:32:58 +08:00
23c2e22910 Update image functions 2018-07-06 22:04:06 +08:00
f44b2dbd45 Rename log_monitor -> log_daemon 2018-07-06 07:57:18 +08:00
46ee2c3f4e Improve handshake between the 2 daemons 2018-07-06 07:51:17 +08:00
5d5ec08566 Test the log buffers before running command 2018-07-06 07:32:16 +08:00
ef175e3cbe Open log file in append mode 2018-07-04 23:46:40 +08:00
52a2c6958b Optimize log daemon 2018-07-03 22:25:39 +08:00
6c4d81b1e9 Invincible mode implemented in magisklogd 2018-07-03 01:38:19 +08:00
c88dc8795b Single log file 2018-07-02 22:48:26 +08:00
a8030c39b1 Separate logging into its own daemon 2018-07-02 22:11:28 +08:00
7243b9e72f Improve log_monitor implementation 2018-07-01 18:18:12 +08:00
d149af9628 Fix bootloop when upgrading from older Magisk 2018-07-01 14:58:31 +08:00
528634d755 Remove unused code 2018-06-27 06:04:16 +08:00
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
312466aaf8 Prevent setting zero over than bound
The &cmd will return a pointer which point to a pointer of cmdline.
It is a memory address which is usually 8 bytes in 64 bits machine.

However, the struct cmdline is 4 bytes. This will cause setting zero
beyond the bound.

Below is a simple example to show the differentiation:

struct cmdline {
        char skip_initramfs;
        char slot[3];
};

static void parse_cmdline(struct cmdline *cmd)
{
        printf("%lu\n", sizeof(*cmd)); /* 4 */
        printf("%lu\n", sizeof(&cmd)); /* 8 */
}

int main()
{
        struct cmdline cmd;
        parse_cmdline(&cmd);
        return 0;
}

This patch prevents this.

Signed-off-by: npes87184 <npes87184@gmail.com>
2018-06-19 14:22:11 -07:00
4d5841332a Change to applet name to prevent showing magisk.bin 2018-06-17 01:47:55 +08:00
9b41976252 Preserve last log 2018-06-17 01:38:58 +08:00
d08fd0561a Remove invincible mode 2018-06-17 01:28:29 +08:00
a6958ac139 Fix adbd on GSIs 2018-06-17 01:25:27 +08:00
d7d76f54cc Install stub APK when needed 2018-06-14 05:09:54 +08:00
970a2e87b3 Bundle in stub APK into magiskinit 2018-06-14 02:54:38 +08:00
cabaae8403 MagiskSU improvements 2018-06-14 02:54:33 +08:00
f2064a84ed Move database logic outside of MagiskSU 2018-06-13 04:34:05 +08:00
3f83919e09 Fix bootloops when flashing Magisk after data wipe on FBE devices 2018-06-11 02:26:18 +08:00
30eb4074cb Update binary dump method 2018-06-10 16:55:00 +08:00
9929e7d8e8 Remove update file on boot
It's not important to check the return value of unlink(2) or even verify
that the file exists. If this code is running, it means the system has
rebooted, and thus the update file, if any, should be removed so that
MagiskManager doesn't keep displaying the same message. We also handle
this before we handle "disable" so that disabled modules don't keep
requesting a reboot to update.
2018-06-10 03:02:56 +08:00
a7ceb04cb7 Fix early mount on S9/S9+
Unlike other common OEMs, Samsung use uppper case partition name.

e.g: /dev/block/platform/11120000.ufs/by-name/SYSTEM

This will cause setup_block() fails to find a match partition.
Thus, we should use strcasecmp instead of strcmp.

Signed-off-by: msdx321 <msdx321@gmail.com>
2018-06-03 17:02:30 +08:00
b3cd83bbca magiskinit: Only unmount /system and /vendor if it was mounted by magisk
This fixes an issue where if /system or /vendor was already mounted
prior to magiskinit running, then they would get unmounted.

Signed-off-by: Andrew Gunnerson <andrewgunnerson@gmail.com>
2018-06-03 15:25:38 +08:00
34dcf49fbc Update restorecon implementation 2018-06-03 14:43:03 +08:00
f31a24b16d Update setenv functions (also fixes uninstalling) 2018-05-26 23:14:09 +08:00
b436bce565 Minor optimizations 2018-05-26 21:25:59 +08:00
36448191b7 Fix applet invocation 2018-05-20 00:49:48 +08:00
c9ca42aaa9 Support fixing Magisk environment 2018-05-13 18:14:44 +08:00
c0e2f44092 Use wrapper script to prevent crazy LD_XXX flags 2018-05-13 14:32:21 +08:00
cecc0b932d Remove some traits 2018-04-29 12:34:36 +08:00
0faed7159c Add invincible mode back 2018-04-29 12:17:28 +08:00
9484ec0c17 Massive refactoring
Remove post-fs mode
2018-04-22 02:16:56 +08:00
614c552e55 Improve daemon startup 2018-04-21 20:16:59 +08:00
87f6018468 Massive sepolicy refactor 2018-04-15 03:18:18 +08:00
2533a4fc4a Fix APK installation on Android P 2018-04-08 03:22:22 +08:00