@osm0sis
I have a question : What do you prefer Row or Deadline with last tunables?and now that franco added you're tweaks in 382 update init.d scripts still needed?
Envoyé depuis mon Galaxy Nexus avec Tapatalk
Hi,
I'm having trouble to get correct screenshots from TWRP 2.5.0.0 with your adb tool on Galaxy Nexus (Maguro).
They look like this
Hi,
I'm having trouble to get correct screenshots from TWRP 2.5.0.0 with your adb tool on Galaxy Nexus (Maguro).
The color thing could just mean that for some reason TWRP is using a different pixel format than CWM, but the 4 quadrants of pics thing is definitely odd. [snip]
Anyway, I'll get TWRP 2.5.0.0 and try it on my device to see if I can reproduce your issue. Stay tuned. :good:
Osmosis you should try your screen colours with the r g b gammas set to 0, it gives the white a slightly more natural look and not slightly blue in some bright light situations.
Edit
Also iv noticed since trying to set these via init.d I haven't been able to see the particular time when the script gets loaded, I had my colours set via init.d with different values some time ago and it was clearly visible the white level changed at Google boot screen, its not so obvious now if its even happening there. Have you managed to time it perfectly at the switch from Google screen to nexus boot animation? I'm certain permissions are correct for the script and folder
For my panel, zeroing the gammas makes things a bit too yellow. Things aren't slightly blue with mine, they're quite natural with -4 0 5.
If you need to use the sleep command then you don't see the color change any more, since it's the multipliers that are responsible for that. My new screen gets a washed out, dusky look if the multipliers are set before the boot animation, so the sleep just pushes it ahead to avoid the issue.
If the sleep is still commented out on yours then it might just be whatever's happening before during boot (other scripts?) is taking long enough that it's during the boot animation for you anyway.
Anyway, I'll get TWRP 2.5.0.0 and try it on my device to see if I can reproduce your issue. Stay tuned. :good:
Since i didn't find any solution yet I'm just wondering of you were able to find out what's going on?
Regards
Daniel
Thank you so much! I must have been too tired to follow you lately ^^
Anyway, it works with your suggestion!
For many Qualcomm based Xiaomi ROMs, the original gen_pif.custom.sh script that reads prints from build.prop (/system/build.prop) and product-build.prop (/product/build.prop), results with strange custom.pif.json files, eg:So... I'll just leave this over here...
/sdcard/Download/gen_pif_custom.sh:
<snip>
Edit: Latest updated for my own PlayIntegrityFork builds, now supporting custom.pif.json, proper API naming of fields, and separate system properties by default.
Please see my general how-to/explainer for tips on finding a working fingerprint and ideas on where to find the required build.prop files: https://xdaforums.com/t/module-play-integrity-fix-safetynet-fix.4607985/page-177#post-89189572
{
"MANUFACTURER": "Xiaomi",
"MODEL": "missi",
"FINGERPRINT": "Xiaomi/missi_phone_global/missi:13/TP1A.220624.014/V14.0.5.0.TLOMIXM:user/release-keys",
"BRAND": "Xiaomi",
"PRODUCT": "missi_phone_global",
"DEVICE": "missi",
"SECURITY_PATCH": "2023-07-01",
"FIRST_API_LEVEL": "31"
}
{
"MANUFACTURER": "Xiaomi",
"MODEL": "xaga",
"FINGERPRINT": "POCO/xaga_global/xaga:12/SP1A.210812.016/V14.0.5.0.TLOMIXM:user/release-keys",
"BRAND": "POCO",
"PRODUCT": "xaga_global",
"DEVICE": "xaga",
"SECURITY_PATCH": "2023-07-01",
"DEVICE_INITIAL_SDK_INT": "31"
}
{
"PRODUCT": "qssi",
"DEVICE": "qssi",
"MANUFACTURER": "QUALCOMM",
"BRAND": "qti",
"MODEL": "qssi system image for arm64",
"FINGERPRINT": "qti/qssi/qssi:12/SKQ1.211019.001/13.5.332_220407:user/release-keys",
"SECURITY_PATCH": "2022-02-01",
"FIRST_API_LEVEL": "30"
}
{
"PRODUCT": "doom",
"DEVICE": "doom",
"MANUFACTURER": "Lenovo",
"BRAND": "Lenovo",
"MODEL": "Lenovo L70081",
"FINGERPRINT": "Lenovo/doom/doom:12/SKQ1.211019.001/13.5.332_220407:user/release-keys",
"SECURITY_PATCH": "2022-02-01",
"DEVICE_INITIAL_SDK_INT": "30"
}
I've processed all poco, redmi, qssi, xiaomi prints from dedyn and tested the pif.vendor.json created by my pif-gen-vendor-json-files.sh and gen_pif_vendor.sh script (observe that I slightly updated the gen_pif_vendor.sh script) and the method pays offFor many Qualcomm based Xiaomi ROMs, the original gen_pif.custom.sh script that reads prints from build.prop (/system/build.prop) and product-build.prop (/product/build.prop), results with strange custom.pif.json files, eg:
Code:{ "MANUFACTURER": "Xiaomi", "MODEL": "missi", "FINGERPRINT": "Xiaomi/missi_phone_global/missi:13/TP1A.220624.014/V14.0.5.0.TLOMIXM:user/release-keys", "BRAND": "Xiaomi", "PRODUCT": "missi_phone_global", "DEVICE": "missi", "SECURITY_PATCH": "2023-07-01", "FIRST_API_LEVEL": "31" }
However, if reading the prints from vendor-build.prop (/vendor/build.prop) instead (and some of them under the slightly different prop names there), you will obtain the meaningful prints:
Code:{ "MANUFACTURER": "Xiaomi", "MODEL": "xaga", "FINGERPRINT": "POCO/xaga_global/xaga:12/SP1A.210812.016/V14.0.5.0.TLOMIXM:user/release-keys", "BRAND": "POCO", "PRODUCT": "xaga_global", "DEVICE": "xaga", "SECURITY_PATCH": "2023-07-01", "DEVICE_INITIAL_SDK_INT": "31" }
Snip...
Below is attached my modified gen_pif_vendor.sh script, tailored to Xiaomi/Redmi/Poco ROMs (but from the Lenovo example it seems that it could apply to the more phones with Qualcomm chipsets), that:
- reads from vendor-build.prop file (see in the source for which props)
- creates vendor.pif.json custom files (you can later rename as you wish but I wanted to have different name to be able to compare and test them in parallel)
- moreover, script can be called with the path argument where to read the vendor-build.prop file (and to create the resulted vendor.pif.json)
Attached is also an outer script pif-gen-vendor-json-files.sh that crawls through the folders, looks for the downloaded vendor-build.prop files, calls the inner script gen_pif_vendor.sh to create vendor.pif.json files, and prints the results with how many vendor-build.props were found and how many vendor.pif.json have been created (cannot create the JSON if MANUFACTURER or FINGERPRINT were not found from the vendor-build.prop)
For the testing I used in parallel both the custom.pif.json (created by the original gen_pif_custom.sh script, from build.prop and product-build.prop) and vendor.pif.json (created by this 'new' gen_pif.vendor.sh script, reading from vendor-build.prop), and then used my pif-test-json-files.sh (new version) to crawl through the folders, and for each JSON file to call first migrate.sh script (osm0sis) and then to test them with his PI Fork v8, and retests with the downgraded API level if needed
Snip....
Edit
gen_pif.vendor.sh script updated on Apr 16, 2024
pif.custom.json =
{
"MANUFACTURER": "QUALCOMM",
"MODEL": "missi system image for arm64",
"FINGERPRINT": "qti/missi_phone_global/missi:13/TKQ1.220829.002/V14.0.6.0.TKOMIXM:user/release-keys",
"BRAND": "qti",
"PRODUCT": "missi",
"DEVICE": "missi",
"SECURITY_PATCH": "2023-09-01",
"FIRST_API_LEVEL": "30"
}
SN Basic: Pass, CTS BASIC: Fail
pif.vendor.json =
{
"MANUFACTURER": "Xiaomi",
"MODEL": "2109119DG",
"FINGERPRINT": "Xiaomi/lisa_global/lisa:13/RKQ1.211001.001/V14.0.6.0.TKOMIXM:user/release-keys",
"BRAND": "Xiaomi",
"PRODUCT": "lisa_global",
"DEVICE": "lisa",
"SECURITY_PATCH": "2023-09-01",
"DEVICE_INITIAL_SDK_INT": "30"
}
SN Basic: Pass, CTS BASIC: Pass
PI MEETS_BASIC_INTEGRITY
Exactly, you can still download.But new commits can be seen, like on the screenshot and I just successfully downloaded manually that /vendor/build.prop.
#!/bin/bash
# also this
# bbox-bundle.sh
#
# osm0sis @ xda-developers
#
# requires (in addition to the default basic Ubuntu WSL packages):
# zip, default-jre
#
# ~/aik-build.sh for basic busybox compiles, and ~/ndk-box-kitchen for selinux busybox compiles
MAGISK=$HOME/magisk-modules;
bold() { echo -e "\033[1m"$@"\033[0m"; }
reset() {
bold "--- Removing busybox-ndk module ...";
rm -rfv $MAGISK/UPDATE-Busybox.Installer* zipsigner-*.jar Busybox-*-ALL*.zip UPDATE-Busybox.Installer.*-ALL-signed.zip;
rmdir $MAGISK 2>/dev/null;
}
init() {
local zipsigner;
reset;
bold "--- Initializing busybox-ndk module ...";
# busybox-ndk build environment is initialized by aik-build.sh and ndk-box-kitchen/run.sh
bold "- Cloning busybox-ndk installer git repository ...";
mkdir -p $MAGISK;
git clone https://github.com/Magisk-Modules-Repo/busybox-ndk $MAGISK/UPDATE-Busybox.Installer-ALL;
bold "- Downloading zipsigner ...";
zipsigner=$(wget -qO- https://github.com/opengapps/opengapps/tree/master/scripts/zipsigner-resources | grep -o 'opengapps/.*jar' | cut -d\" -f1 | sed 's/blob/raw/');
wget -O $HOME/$(basename $zipsigner) https://github.com/$zipsigner;
}
main() {
local zipflag stdout copy ver i out modver modcode newmodver newmodcode iteration skipmodprop curdir;
zipflag=-q;
stdout=/dev/null;
copy=1;
until [ ! "$1" ]; do
case $1 in
help) echo "bbox-bundle.sh reset, init, [verbose] [nocopy]"; exit 1;;
reset|init) $1; return;;
verbose) stdout=/dev/stdout; unset zipflag; shift;;
nocopy) unset copy; shift;;
*) echo "unknown option: $1"; exit 1;;
esac;
done;
ver=$(ls | grep ^busybox- | cut -d- -f2);
if [ ! "$ver" ]; then
echo "bbox-bundle: busybox repo not found, run aik-build.sh 'init' option";
exit 1;
fi;
bold "--- Bundling ...";
rm -f Busybox-*-ALL*.zip UPDATE-Busybox.Installer.*-ALL-signed.zip 2>/dev/null;
if [ -f AIK-build/mobile/arm/busybox -a "$copy" ]; then
bold "- Copying new Busybox $ver builds ...";
cd AIK-build/mobile;
for i in *; do
cp -fp $i/busybox $MAGISK/UPDATE-Busybox.Installer*-ALL/busybox-$i;
done;
cd $HOME;
fi;
if [ -f ndk-box-kitchen/libs/armeabi-v7a/busybox -a "$copy" ]; then
bold "- Copying new Busybox $ver SELinux builds ...";
cd ndk-box-kitchen/libs;
for i in *; do
case $i in
armeabi-v7a) out=arm;;
arm64-v8a) out=arm64;;
*) out=$i;;
esac;
cp -fp $i/busybox $MAGISK/UPDATE-Busybox.Installer*-ALL/busybox-$out-selinux;
done;
cd $HOME;
fi;
modver=$(grep -o "^version=.*$" $MAGISK/UPDATE-Busybox.Installer*-ALL/module.prop | cut -d= -f2);
modcode=$(grep -o "^versionCode=.*$" $MAGISK/UPDATE-Busybox.Installer*-ALL/module.prop | cut -d= -f2);
if [ "$ver" == "$modver" ]; then
newmodver="$modver";
newmodcode="$((modcode + 1))";
iteration=1;
else
newmodver="$ver";
newmodcode="${ver//.}0";
fi;
if [ "$iteration" ]; then
echo -ne "\033[1m\n*** Update Magisk module version code ($modcode -> $newmodcode) (y/n)? \033[0m";
read n; echo;
case $n in
Y|y) ;;
*) skipmodprop=1;;
esac;
fi;
if [ ! "$skipmodprop" ]; then
sed -i -e "s/version=.*/version=$newmodver/" -e "s/versionCode=.*/versionCode=$newmodcode/" $MAGISK/UPDATE-Busybox.Installer*-ALL/module.prop;
sed -i -e "s/version\".*/version\": \"$newmodver\",/" -e "s/versionCode\".*/versionCode\": \"$newmodcode\",/" $MAGISK/UPDATE-Busybox.Installer*-ALL/update.json;
fi;
bold "- Packing \"Busybox-$ver-ALL.zip\" ...";
cd $MAGISK/UPDATE-Busybox.Installer*-ALL;
zip -9 -x .git -x .github -x update.json -r $zipflag $HOME/Busybox-$ver-ALL.zip *;
curdir=$(basename $PWD);
cd ..;
if [ "$curdir" != "UPDATE-Busybox.Installer.v$ver-ALL" ]; then
mv UPDATE-Busybox.Installer*-ALL UPDATE-Busybox.Installer.v$ver-ALL;
fi;
cd $HOME;
bold "- Signing as \"UPDATE-Busybox.Installer.v$ver-ALL-signed.zip\" ...";
java -jar zipsigner-*.jar Busybox-$ver-ALL.zip Busybox-$ver-ALL-signed.zip;
mv -f Busybox-$ver-ALL-signed.zip UPDATE-Busybox.Installer.v$ver-ALL-signed.zip 2>/dev/null;
rm -f Busybox-*-ALL.zip /tmp/signAPK*.tmp 2>/dev/null;
}
cd $HOME;
main "$@";
exit 0;