133 Commits

Author SHA1 Message Date
proletarius101 89a4cf4936 use the standard ANDROID_HOME variable to locate ndk
ANDROID_HOME is a standard variable in the Android development world. Using it to locate the NDK avoids changing scripts on every machine.
2023-02-20 21:26:47 -08:00
Danny Lin cbb1681064 Revert "Revert Magisk update metadata"
This reverts commit 65bc7f072e.

The current implementation of dynamic fingerprint spoofing seems to work
well in practice, and I haven't received any issue reports so far. It
can be improved in a future release if necessary.
2023-01-09 09:49:29 -08:00
Danny Lin 65bc7f072e Revert Magisk update metadata
Next public release(s) will be published after robustness improvements
to fingerprint spoofing are done. In the meantime, revert this to avoid
linking to a 404 release.
2023-01-06 19:12:01 -08:00
Ilya Kushnir e643275a71 [NEXT RELEASE] Separate patchset
* Move safetynet props to boot completed to fix fingerprint not working on OOS12 (Thaks to @HuskyDG)
2023-01-06 12:01:21 -08:00
Ilya Kushnir bd387a3504 Create .gitattributes
To ensure that all sensetive scripts will be in the correct newline mode
2023-01-06 12:01:12 -08:00
Danny Lin aeb51dcce9 version: 2.4.0 v2.4.0 2023-01-06 11:59:56 -08:00
Danny Lin 22fd150334 readme: Update Android version spec and CTS profile instructions
Closes #235
2023-01-06 11:59:56 -08:00
Danny Lin 73c8587a80 Dynamically patch build fingerprint in GMS process
"AndroidCAStore" always seems to be used early in the attestation
process, before the fingerprint is checked.

Dynamic patching avoids problems with device detection and functionality
that can be caused by permanently spoofing another device.

Closes #207, closes #224, closes #222, closes #220, closes #218, closes #212, closes #211, closes #210, closes #204, closes #203, closes #201, closes #196, closes #188, closes #171, closes #170
2023-01-06 11:59:50 -08:00
Anirudh Gupta 2f18d85a9b service: Set shipping level to 32 for devices >=33
If ro.product.first_api_level is 33, its forced to use HW attestation even though the safteynet checker app shows BASIC
setting it to 32 allows for software attestation and passing CTS

Signed-off-by: Anirudh Gupta <anirudhgupta109@aosip.dev>
v2.4.0-ea
2023-01-01 04:50:49 -08:00
Danny Lin 50d8522f26 Update Gradle wrapper 2022-12-21 02:46:27 -08:00
Danny Lin cae30da9ec debug: Log package name 2022-12-21 01:30:03 -08:00
Danny Lin 056aed6e46 Update log tags 2022-12-06 20:26:20 -08:00
ipdev99 a2267d100f Update to the current Magisk installer script.
Require Magisk v20.4 for modules.
https://github.com/topjohnwu/Magisk/commit/cf47214ee4912ed1538fbea3d09ba9dd9b5746b0
2022-07-05 00:11:01 -07:00
Lex Nastin f493689caa Mention A13 B3 Support In Module Description 2022-06-27 17:43:35 -07:00
Danny Lin 457b833870 changelog: Label footer 2022-06-27 03:30:47 -07:00
Danny Lin dfb02593d6 readme: Update Android version compatibility 2022-06-27 03:04:34 -07:00
Danny Lin b1ee715a85 changelog: Reformat footer 2022-06-27 03:04:03 -07:00
Danny Lin f79e5cc37e version: 2.3.1 v2.3.1 2022-06-27 02:58:11 -07:00
Danny Lin 532a92a0b6 zygisk: Clarify unloading in non-GMS processes 2022-06-27 02:41:09 -07:00
Danny Lin ebc54d8ccd zygisk: Fix unnecessary string copy 2022-06-27 02:40:35 -07:00
Danny Lin 27a8138b7c changelog: Only keep latest version
Thanks to @osm0sis for pointing out the 1000-character limit.
2022-06-27 02:37:38 -07:00
Danny Lin c864c41130 github: Fix typo in issue template 2022-06-27 02:36:19 -07:00
Danny Lin b4ee04be71 zygisk: Fix entry point class name
This was missed in the refactor.
2022-06-27 02:31:53 -07:00
Danny Lin 57b726c260 readme: Rewrite, split details for developers 2022-03-12 21:05:44 -08:00
Danny Lin 0a69b10b3c github: Add issue template for bug reports 2022-03-12 20:51:46 -08:00
Danny Lin b3893d32f3 magisk: Allow limited installation on Android 7 and older
Key attestation was introduced in Android 7.0, but Android 7.x doesn't
have InMemoryDexClassLoader so our Zygisk module is incompatible.

In general, users on such old versions of Android don't need to bypass
hardware-backed attestation (which isn't even applicable on Android 6
and older), so allow them to install the module without the Zygisk part.

Closes #156.
2022-03-12 20:40:53 -08:00
Danny Lin db27e80080 java: Rename package to safetynetfix
This is no longer using Riru.
2022-03-12 20:27:52 -08:00
Danny Lin 2bcb2ff9a7 java: Simplify exception handling in entry point 2022-03-12 20:26:52 -08:00
Danny Lin 0058654541 java: SecurityBridge -> SecurityHooks 2022-03-12 20:26:15 -08:00
Danny Lin 769fa05817 java_module: Rename to java
I named this "java_module" to avoid confusion with app/src/main/java,
but there's no need to be so verbose.
2022-03-10 22:16:04 -08:00
Chris Renshaw 55f892fb88 magisk: fix Oppo fingerprint reader issues
- move ro.boot.vbmeta.device_state to late props since any earlier appears to break Oppo (ColorOS/OOS12) fingerprint readers

Thanks @MlgmXyysd

Fixes #157
2022-03-10 17:40:57 -08:00
ip 0f3551497c Only remove gms if Denylist is enforced
Originally Magisk required the Denylist to be enforced to access the Denylist.
When enforced, Magisk is unloaded while the processes on the Denylist are called.

Now you can access the Denylist when it is not enforced.
Since Magisk runs normally when not enforced, the Denylist is just a list.

No need to remove 'gms' from the Denylist when it is not enforced.
2022-03-10 17:33:21 -08:00
benjibobs 7238dd7caa Add CHANGELOG.md 2022-02-07 22:09:56 -08:00
benjibobs bc49da291a Support update.json Magisk update checker 2022-02-07 22:09:56 -08:00
Danny Lin e5064fff03 readme: Update for stable Magisk v24 release 2022-01-30 05:50:20 -08:00
Chris Renshaw d2676e1232 magisk: Add circumvention of OnePlus' oem unlock counter
- I recently discovered `ro.is_ever_orange` on OOS 11, which gets set roughly 32 seconds after boot completed and is equal to the number of times a device has ever been `fastboot oem unlock`ed
- a fresh MSM (i.e. factory locked device) has it set to 0, and using system.prop to set it to 0 earlier in the boot seems to keep it set to 0 instead of the real unlock count
- I haven't seen this exploited anywhere, though I presume it exists for a reason, so probably good to manage it as well
2021-12-24 15:54:02 -08:00
Danny Lin dd5f49ec58 Bump version to 2.2.1 v2.2.1 2021-12-22 18:59:01 -08:00
Danny Lin 953a2cc560 readme: Update Android version constraint 2021-12-21 15:42:51 -08:00
Danny Lin 8ea2649fa0 customize: Prevent installation on Android 7.x and older
Android 7.x lacks the InMemoryDexClassLoader API, which is necessary for
the module to load Java code, and is unlikely to support hardware
attestation on any production devices anyway.

Fixes #124, #127
2021-12-21 15:40:57 -08:00
Danny Lin 09332546b0 readme: Clarify definition of "basic" attestation
Fixes #101
2021-12-21 15:40:45 -08:00
osm0sis 3a3f95b696 magisk: fix Realme fingerprint reader issues
- move ro.boot.flash.locked to late props since any earlier appears to break Realme fingerprint readers

Thanks @byxiaorun for finding the problem prop, and @Jowat97 for testing
2021-12-21 15:15:28 -08:00
Danny Lin 8de1265927 readme: Update for 2.1.2 and 2.2.0 releases 2021-11-15 22:13:12 -08:00
Danny Lin 5308a0a57f zygisk: Remove template readme 2021-11-15 22:02:55 -08:00
Danny Lin d235d134b7 Bump version to 2.2.0 v2.2.0 2021-11-15 22:01:19 -08:00
Danny Lin ff588c1cc3 zygisk: Use more auto types 2021-11-15 22:01:19 -08:00
Danny Lin bc27f2211b magisk: Remove Play Services from DenyList earlier
This ensures that GMS will never start before it's removed from the
DenyList, even if another module's service.sh is blocking our script.

Suggested-by: osm0sis <osm0sis@outlook.com>
2021-10-30 23:49:23 -07:00
Danny Lin daefe159e3 zygisk: Always unload from system_server 2021-10-30 19:48:37 -07:00
Danny Lin 69e2aae3d8 zygisk: Inject payload after specialization 2021-10-30 19:48:37 -07:00
Danny Lin cd84bf361f magisk: Remove Play Services from DenyList
The Zygisk module will never load if GMS is in the DenyList. Instead, we
have the module force-enable DenyList unmounting after forking.
2021-10-30 18:43:15 -07:00
Danny Lin b1b839555f magisk: Fix service.sh permissions 2021-10-30 18:43:15 -07:00