This commit is contained in:
chiteroman 2023-11-24 20:58:30 +01:00
parent cc4a2536a0
commit bed9055fd3
No known key found for this signature in database
GPG Key ID: 15FF53015D426D8E
14 changed files with 159 additions and 9 deletions

View File

@ -204,6 +204,10 @@ static void companion(int fd) {
std::filesystem::perms::others_read);
}
if (!std::filesystem::exists(PROP_FILE_PATH)) {
std::filesystem::remove(prop);
}
if (std::filesystem::copy_file(PROP_FILE_PATH, prop,
std::filesystem::copy_options::overwrite_existing)) {
std::filesystem::permissions(prop, std::filesystem::perms::owner_read |

View File

@ -2,12 +2,12 @@ We have a Telegram channel!
If you want to share your knowledge join:
https://t.me/playintegrityfix
Also, if Google blacklist the fingerprint (again), you can post your custom pif.prop and I will update the module.
Also, if Google blacklist the fingerprint (again), you can post your custom pif.json and I will update the module.
# v13.5
# v13.6
- Remove custom resetprop.
- Fixes in code.
- New code!
- Added custom resetprop.
This module will backup your pif.prop into adb root folder.
If you remove this file, module will use default props for attestation.
Can read a custom pif.json file to spoof device props.
Example file: module/pif.json on GitHub repo.

View File

@ -0,0 +1,33 @@
#!/sbin/sh
#################
# Initialization
#################
umask 022
# echo before loading util_functions
ui_print() { echo "$1"; }
require_new_magisk() {
ui_print "*******************************"
ui_print " Please install Magisk v20.4+! "
ui_print "*******************************"
exit 1
}
#########################
# Load util_functions.sh
#########################
OUTFD=$2
ZIPFILE=$3
mount /data 2>/dev/null
[ -f /data/adb/magisk/util_functions.sh ] || require_new_magisk
. /data/adb/magisk/util_functions.sh
[ $MAGISK_VER_CODE -lt 20400 ] && require_new_magisk
install_module
exit 0

View File

@ -0,0 +1 @@
#MAGISK

Binary file not shown.

Binary file not shown.

BIN
module/bin/x86/resetprop Normal file

Binary file not shown.

BIN
module/bin/x86_64/resetprop Normal file

Binary file not shown.

20
module/customize.sh Normal file
View File

@ -0,0 +1,20 @@
# Error on < Android 8
if [ "$API" -lt 26 ]; then
abort "!!! You can't use this module on Android < 8.0."
fi
# safetynet-fix module is incompatible
if [ -d "/data/adb/modules/safetynet-fix" ]; then
ui_print "!!! safetynet-fix module removed!"
touch "/data/adb/modules/safetynet-fix/remove"
fi
# Backup old pif.prop
if [ -e "/data/adb/modules/playintegrityfix/pif.prop" ]; then
ui_print "- Backup old pif.prop."
mv "/data/adb/modules/playintegrityfix/pif.prop" "/data/adb/pif.prop.old"
fi
# use our resetprop
mv -f "$MODPATH/bin/$ABI/resetprop" "$MODPATH"
rm -rf "$MODPATH/bin"

7
module/module.prop Normal file
View File

@ -0,0 +1,7 @@
id=playintegrityfix
name=Play Integrity Fix
version=v13.6
versionCode=136
author=chiteroman
description=Fix CTS profile (SafetyNet) and DEVICE verdict (Play Integrity).
updateJson=https://raw.githubusercontent.com/chiteroman/PlayIntegrityFix/main/update.json

10
module/pif.json Normal file
View File

@ -0,0 +1,10 @@
{
"PRODUCT": "taimen",
"DEVICE": "taimen",
"MANUFACTURER": "Google",
"BRAND": "google",
"MODEL": "Pixel 2 XL",
"FINGERPRINT": "google/taimen/taimen:10/QQ2A.200501.001.B3/6396602:user/release-keys",
"SECURITY_PATCH": "2020-05-05",
"FIRST_API_LEVEL": "25"
}

9
module/post-fs-data.sh Normal file
View File

@ -0,0 +1,9 @@
# Remove Play Services from the Magisk Denylist when set to enforcing
if magisk --denylist status; then
magisk --denylist rm com.google.android.gms
fi
# Check if safetynet-fix is installed
if [ -d "/data/adb/modules/safetynet-fix" ]; then
touch "/data/adb/modules/safetynet-fix/remove"
fi

66
module/service.sh Normal file
View File

@ -0,0 +1,66 @@
# Sensitive properties
RESETPROP="${0%/*}/resetprop"
chmod 755 $RESETPROP
check_resetprop() {
local NAME=$1
local EXPECTED=$2
local VALUE=$(resetprop $NAME)
[ -z $VALUE ] || [ $VALUE = $EXPECTED ] || $RESETPROP -n $NAME $EXPECTED
}
maybe_set_prop() {
local prop="$1"
local contains="$2"
local value="$3"
if [[ "$(getprop "$prop")" == *"$contains"* ]]; then
$RESETPROP -n "$prop" "$value"
fi
}
# Magisk recovery mode
maybe_set_prop ro.bootmode recovery unknown
maybe_set_prop ro.boot.mode recovery unknown
maybe_set_prop vendor.boot.mode recovery unknown
# Reset props after boot completed to avoid breaking some weird devices/ROMs...
{
until [[ "$(getprop sys.boot_completed)" == "1" ]]; do
sleep 1
done
# SafetyNet/Play Integrity | Avoid breaking Realme fingerprint scanners
check_resetprop ro.boot.flash.locked 1
# SafetyNet/Play Integrity | Avoid breaking Oppo fingerprint scanners
check_resetprop ro.boot.vbmeta.device_state locked
# SafetyNet/Play Integrity | Avoid breaking OnePlus display modes/fingerprint scanners
check_resetprop vendor.boot.verifiedbootstate green
# SafetyNet/Play Integrity | Avoid breaking OnePlus display modes/fingerprint scanners on OOS 12
check_resetprop ro.boot.verifiedbootstate green
check_resetprop ro.boot.veritymode enforcing
check_resetprop vendor.boot.vbmeta.device_state locked
# RootBeer, Microsoft
check_resetprop ro.build.tags release-keys
# Samsung
check_resetprop ro.boot.warranty_bit 0
check_resetprop ro.vendor.boot.warranty_bit 0
check_resetprop ro.vendor.warranty_bit 0
check_resetprop ro.warranty_bit 0
# OnePlus
check_resetprop ro.is_ever_orange 0
# Other
check_resetprop ro.build.type user
check_resetprop ro.debuggable 0
check_resetprop ro.secure 1
}&

View File

@ -1,6 +1,6 @@
{
"version": "v13.5",
"versionCode": 135,
"zipUrl": "https://github.com/chiteroman/PlayIntegrityFix/releases/download/v13.5/PlayIntegrityFix_v13.5.zip",
"version": "v13.6",
"versionCode": 136,
"zipUrl": "https://github.com/chiteroman/PlayIntegrityFix/releases/download/v13.6/PlayIntegrityFix_v13.6.zip",
"changelog": "https://raw.githubusercontent.com/chiteroman/PlayIntegrityFix/main/changelog.md"
}