Commit Graph

33 Commits

Author SHA1 Message Date
topjohnwu d2cb638fcd Use our own function to parse int 2019-03-07 20:31:35 -05:00
topjohnwu 370015a853 Modernize database code (again) 2019-03-06 08:16:12 -05:00
John Wu 54a8a05dae Small adjustments in connect.cpp 2019-02-27 16:44:27 -05:00
vvb2060 0eef4eacd6 Use REBOOT foreground broadcast 2019-02-27 16:44:27 -05:00
topjohnwu ed027ec3ee Refactor build flags 2019-02-12 05:17:02 -05:00
topjohnwu 71ecbb3af3 Clean/refactor includes 2019-02-10 03:57:51 -05:00
vvb2060 2cf33d635d Setuid after read proc 2019-02-01 15:55:29 -05:00
topjohnwu 1c61feb368 Update native su connect broadcast code
Use -p <pkg> for supported platforms
2019-01-26 14:53:49 -05:00
topjohnwu 0be158afa1 Official KitKat support 2018-12-28 16:03:23 +08:00
topjohnwu 523e66294b Simpler su_info caching system 2018-12-26 11:56:49 +08:00
topjohnwu 762b678d24 Prevent any SELinux issues of root shell streams 2018-11-23 21:08:06 -05:00
topjohnwu de0064af47 Fix SIGWINCH never followed
Close #786
2018-11-20 04:40:42 -05:00
topjohnwu 2ab999f4ca Fix bug in DB query wrapper 2018-11-20 02:20:49 -05:00
topjohnwu c9f390d6e0 Abort upon any error occurred 2018-11-20 02:20:49 -05:00
topjohnwu ab5fedda0b Prevent Magisk database race condition
The database should only be accessed by a single process, which is magiskd.
This means 'magisk --sqlite [SQL]' has to be updated to pass the SQL command to the daemon.
In addition, open the database connection with SQLITE_OPEN_FULLMUTEX to support multithread in magiskd.
2018-11-16 03:20:30 -05:00
topjohnwu c61c3ae0e9 Fix su shell environment setup 2018-11-10 02:17:13 -05:00
topjohnwu 0742901cd2 Modernize database code 2018-11-04 18:24:08 -05:00
topjohnwu cda57dd4b4 Fully migrate Magisk to C++ 2018-11-04 04:15:51 -05:00
vvb2060 1eb7d7b7a8 Add FLAG_INCLUDE_STOPPED_PACKAGES for broadcast 2018-11-03 00:04:27 -04:00
topjohnwu bf4a46d57c Optimize logging in Magisk Manager 2018-10-27 22:06:24 -04:00
topjohnwu dbb8b8a439 Handle magisk.db completely natively
Prevent database corruption due to different Android application sqlite default settings
2018-10-27 17:54:48 -04:00
topjohnwu 41b01003fd Always ACK before doing anything 2018-10-20 16:12:08 -04:00
topjohnwu a9121fa28f Reorganize libutils and cleanups 2018-10-12 21:46:09 -04:00
topjohnwu e8e39e0f3c Use poll instead of select
Close #637
2018-10-04 15:06:13 -04:00
topjohnwu 37860181d4 Finish su implementation 2018-10-04 14:41:48 -04:00
topjohnwu d119dd9a0c Rewrite su daemon and client 2018-10-04 04:59:51 -04:00
topjohnwu 09ef19f7ec Code cleanups 2018-10-04 01:49:52 -04:00
topjohnwu 6a06c92fa6 Simplify su_info caches
No more lists. 99.999% it will only handle a single excessive requestor anyways.
2018-10-03 23:31:15 -04:00
topjohnwu 60b3b8ddce Better incremental builds 2018-09-27 03:56:56 -04:00
topjohnwu 1d53335ae5 Dynamic load libselinux 2018-09-27 00:09:59 -04:00
topjohnwu 906b4aad9e New method of communication
Introduce a new communication method between Magisk and Magisk Manager.

Magisk used to hardcode classnames and send broadcast/start activities to
specific components. This new method makes no assumption of any class names,
so Magisk Manager can easily be fully obfuscated.

In addition, the new method connects Magisk and Magisk Manager with random
abstract Linux sockets instead of socket files in filesystems, bypassing
file system complexities (selinux, permissions and such)
2018-09-16 04:16:18 -04:00
topjohnwu f1edc8443c Make root shell always use dev_pts
Close #433
2018-08-02 20:29:18 +08:00
topjohnwu cf211e26f4 Move MagiskSU sources to native/jni/su 2018-07-18 18:23:36 +08:00