Commit Graph

354 Commits

Author SHA1 Message Date
LoveSy e184eb4a23 Fix UB of loading modules
- The lambda here infers its return type as `std::string`,
  and since `info` is `const`, the labmda copies `info.name`
  and returns a `std::string&&`. After captured by the
  `std::string_view`, the `std::string&&` return value
  deconstructs and makes `std::string_view` refers to a
  dangling pointer.
2021-10-17 04:38:56 -07:00
topjohnwu 6f54c57647 Allow fork in thread pool 2021-10-17 04:24:25 -07:00
topjohnwu b75ec09998 Load Zygisk modules even if no magic mount is needed
Close #4767
2021-10-14 01:35:29 -07:00
topjohnwu c8ac6c07b0 Load Zygisk modules 2021-10-13 04:52:02 -07:00
topjohnwu f59309a445 Minor changes 2021-10-09 11:36:01 -07:00
topjohnwu 36765caedc Fix thread pool implementation
Close #4759
2021-10-08 23:28:14 -07:00
vvb2060 ecd332c573 Close fd 2021-09-25 12:07:52 -07:00
topjohnwu 73d36fdff0 Riru and its modules are not compatible with zygisk 2021-09-23 23:54:46 -07:00
vvb2060 d20517483e Prevent multiple mounts of devpts 2021-09-23 02:40:24 -07:00
残页 61783ffc82 Prevent original libselinux.so to be unmounted
libselinux.so will be unmounted when magiskd starts. If magiskd restarts (like it died before boot completed), the files we want to unmount is the original files because the modified files is unmounted in previous start, which will causes many crashes due to missing libselinux.so.
2021-09-22 19:34:44 -07:00
RikkaW f7c0e407ca Fix downgrade database 2021-09-20 05:50:34 -07:00
topjohnwu f1b6c9f4aa Refresh uid_map on package.xml change 2021-09-20 04:42:06 -07:00
topjohnwu 0ab31ab0df Fix log writer 2021-09-19 13:41:45 -07:00
topjohnwu 3fb72a4d20 Support polling on multiple fds 2021-09-18 14:40:12 -07:00
topjohnwu db590091b3 Propagate Zygisk state to Magisk app 2021-09-18 02:38:53 -07:00
topjohnwu 7b25e74418 Simplify get manager app info logic 2021-09-17 02:07:32 -07:00
topjohnwu 706a492218 Update denylist config implementation 2021-09-16 05:27:34 -07:00
topjohnwu c0be5383de Support enable/disable Zygisk 2021-09-15 02:49:54 -07:00
topjohnwu 3b8ce85092 Enable Zygisk 2021-09-15 01:59:43 -07:00
topjohnwu 65b0ea792e MagiskHide is no more 2021-09-12 12:40:34 -07:00
topjohnwu de2306bd12 Proper incremental builds
Auto generate flag.h for precise rebuilding
2021-09-07 19:35:28 -07:00
残页 c0a2e3674c Reset file context from adb_data_file
In some cases (like weird ROMs that allow init to relabel context from system_file), module files will have an incorrent context, which will causes module not working properly.
See https://github.com/RikkaApps/Riru/wiki/Explanation-about-incorrect-SELinux-rules-from-third-party-ROMs-cause-Riru-not-working
2021-09-02 21:55:08 -07:00
vvb2060 f324252681 Use isolated devpts if kernel support
kernel version >= 4.7 or CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
2021-08-29 02:45:49 -07:00
topjohnwu 6fe9b69aad Cleanup module.cpp 2021-08-28 10:27:45 -07:00
topjohnwu 5d162f81c4 Modernize db.hpp 2021-08-27 01:06:03 -07:00
topjohnwu 4771c2810b Significantly better AVD support 2021-08-26 03:09:56 -07:00
topjohnwu 0cd99712fa Implement cached thread pool 2021-08-24 02:39:54 -07:00
topjohnwu b591af7803 Minor bug fixes 2021-08-22 03:26:48 -07:00
topjohnwu 171d68ca72 Connect to magiskd log daemon 2021-08-22 03:26:48 -07:00
topjohnwu bade4f2c6a Make xhook log as Magisk 2021-08-22 03:26:48 -07:00
topjohnwu ffe47300a1 Update recv/send fd function 2021-08-22 03:26:48 -07:00
topjohnwu 9b3efffba9 Use magiskd to setup files 2021-08-18 03:44:32 -07:00
topjohnwu 003fea52b1 Remove all non-Magisk hiding code
Magisk no longer interferes with any signals/info that were not created
or caused by Magisk itself.
2021-08-18 02:01:54 -07:00
topjohnwu 2b17c77195 Make Zygisk 1st class citizen 2021-08-17 23:57:49 -07:00
topjohnwu 27f7fa7153 Extend stream support 2021-08-13 02:08:56 -07:00
topjohnwu b325aa4555 Fix log file writing 2021-08-13 00:13:44 -07:00
topjohnwu 0d977b54f7 Revise logging code 2021-08-12 03:26:54 -07:00
topjohnwu 20860da4b4 Cleaner daemon handlers 2021-08-11 22:57:08 -07:00
topjohnwu 6099f3b015 Always resolve to canonical path 2021-05-10 01:14:53 -07:00
vvb2060 708fe514f8 Always use mirror path 2021-04-23 16:56:23 -07:00
Wang Han 44f005077d Don't copy sepolicy.rule to /persist on boot
* This seems to be a logic that has been abandoned for a
   long time. Now we automatically choose which partition
   to store sepolicy.rule. Furthermore, touching /persist is
   what we should avoid doing whenever possible.
2021-04-15 05:01:03 -07:00
LoveSy 013b6e68ec Fix perfect forwarding 2021-04-15 04:58:30 -07:00
LoveSy 95c964673d Initialized _root properly
Fix #4204

`_root` is uninitialized for non-root nodes. And it will cause `module_node::mount` fail because it uses `root()`. Once the bug is triggered, signal 11 is received but Magisk catch all signals and therefore stuck forever.
2021-04-15 04:58:30 -07:00
topjohnwu 01b985eded Remove more pre SDK 21 stuffs 2021-04-09 21:29:42 -07:00
Shaka Huang dfe1f2c108 Call freecon() when fgetfilecon() succeeds 2021-04-04 01:58:59 -07:00
vvb2060 7a007b342a Correct comment
For file-based encryption, /data/adb is always required to encrypt
https://android.googlesource.com/platform/system/extras/+/refs/tags/android-7.0.0_r36/ext4_utils/ext4_crypt_init_extensions.cpp
https://android.googlesource.com/platform/system/core/+/68258e8444e0daa967b007edf659e8bb7b38c59f%5E%21/
2021-03-13 21:10:02 -08:00
topjohnwu 82f8948fd4 Separate setting log functions and starting log daemon 2021-03-13 17:50:48 -08:00
Shaka Huang b9cdc755d1 Returned fds[0] in socketpair() might be STDOUT
* There will be garbage output when executing `su` (#4016)
* Failed to check root status and showing N/A in status (#4005)

Signed-off-by: Shaka Huang <shakalaca@gmail.com>
2021-03-13 17:50:48 -08:00
topjohnwu a6f81c66e5 Bypass stdio 2021-03-13 16:17:28 -08:00
topjohnwu 43c1105d62 Use dedicated thread for writing logfile 2021-03-09 02:40:12 -08:00