Commit Graph

31 Commits

Author SHA1 Message Date
topjohnwu e0927cd763 Add support to patch QCDT
Old Qualcomn devices have their own special QC table of DTB to
store device trees. Since patching fstab is now mandatory on Android 10,
and for older devices all early mount devices have to be included into
the fstab in DTBs, patching QCDT is crucial for rooting Android 10
on legacy devices.

Close #1876 (Thanks for getting me aware of this issue!)
2019-10-07 00:38:02 -04:00
topjohnwu f109038d12 Hardcode shell uid to 2000 2019-09-13 03:14:58 -04:00
topjohnwu 52fd508fea Do not use std::random_device
Directly read from urandom instead of using std::random_device.
libc++ will use iostream under-the-hood, which brings significant
binary size increase that is not welcomed, especially in magiskinit.
2019-07-14 21:56:21 -07:00
topjohnwu 41045b62dc Introduce more randomness
- Use C++ random generator instead of old and broken rand()
- Randomize string length to piss off stupid detectors
2019-07-14 17:42:49 -07:00
topjohnwu 28cd6a75e7 Add missing functions in bionic 2019-06-23 14:54:48 -07:00
topjohnwu 23d3e56967 Add new util function 2019-05-25 21:42:51 -07:00
topjohnwu 24f5bc98d8 Add boot_complete trigger back
Samsung does not like running cmd before system services are started.
Instead of failing, it will enter an infinite wait on binder.
Move APK installation to boot complete to make sure pm can be run
without blocking process.
2019-04-05 07:00:30 -04:00
topjohnwu d2cb638fcd Use our own function to parse int 2019-03-07 20:31:35 -05:00
vvb2060 f152bea8d8 Trim dev name 2019-02-26 03:04:17 -05:00
topjohnwu c9fa8118d1 Some code adjustments 2019-02-24 23:09:34 -05:00
topjohnwu 692f893e1f Monitor /data/system/packages.xml
Reinstalling system apps as data creates tons of issues.
Calling pm path <pkg> is extremely expensive and doesn't work in post-fs-data.
Parse through packages.xml to get APK path and UID at the same time.
As a bonus, we don't need to traverse /data/app for packages anymore.
2019-02-18 03:05:13 -05:00
topjohnwu a19c7215d2 Better nice name 2019-02-15 04:31:39 -05:00
topjohnwu 9430dbb96c Make sure logcat process does not become a zombie 2019-02-14 17:36:18 -05:00
topjohnwu 0f55fcafe8 Migrate EXT4 images instead of removing them 2019-02-12 16:13:31 -05:00
topjohnwu 71ecbb3af3 Clean/refactor includes 2019-02-10 03:57:51 -05:00
topjohnwu d32b788988 Rewrite exec_command 2019-01-26 13:39:24 -05:00
topjohnwu 7565ea2787 Remove strdup2 2019-01-26 13:00:19 -05:00
topjohnwu 9275975b2c Re-organize functions 2019-01-26 06:00:23 -05:00
topjohnwu 3e4c12cf56 Migrate to STL 2019-01-19 23:59:37 -05:00
topjohnwu 3ccac8c3b8 Terminate forked children for exec after failure 2018-12-28 16:33:26 +08:00
topjohnwu 109891d668 Make apk_install more portable 2018-12-05 18:36:27 -05:00
topjohnwu f69a004c1c Use raw execve
Some devices have broken libc...
2018-11-28 00:07:57 -05:00
topjohnwu e8cba3524e Kill target processes properly 2018-11-27 03:56:14 -05:00
topjohnwu 29457a1d28 Small adjustments 2018-11-26 03:26:45 -05:00
topjohnwu 731455f164 Update exec functions signatures 2018-11-26 03:06:48 -05:00
topjohnwu 38fcc57bbf Use component name as targets
Services can name their process name arbitrarily, for instance the service in
com.google.android.gms that is responsible for SafetyNet is named
com.google.android.gms.unstable. There are many apps out in the wild use
dedicated services with special names to detect root, and previously the user
is expected to add all of them to the hide list.

In this commit, we change from targeting process names to component names.
On Android, component names are composed of <pkg>/<cls>. When targeting
component names, we can always know what application spawned the new process.
This means that if the user adds a package name to the hidelist, MagiskHide can
now target ALL possible processes of that specific application.

To abide with this change, the default SafetyNet target is now changed from
com.google.android.gms.unstable (process name) to
com.google.android.gms/.droidguard.DroidGuardService (component name)
2018-11-23 15:47:49 -05:00
topjohnwu 3a2a2a4ffa Micro optimizations 2018-11-13 02:07:02 -05:00
topjohnwu 8745c7884e Rename Array to Vector
Finally get rid of the C style vector, rename the template class to its proper name
2018-11-08 05:03:59 -05:00
topjohnwu 7c12bf7fa1 Modernize code base 2018-11-07 02:10:38 -05:00
topjohnwu 4351de503f Migrate exec function to C++ arrays 2018-11-03 04:03:11 -04:00
topjohnwu 6339ba6bfb Upgrade libutils to C++ 2018-11-03 03:06:01 -04:00