CMSetup Fix should NOT be flashed on CM14.x currently since it isn't necessary ... I told you the last time you asked. Anything else you want to be systemlessly installed you obviously just need SuperSU installed first so there's a place for things to install to once it sets up /su ..
I would think it was obvious, but you don't need to flash sdcard fix permissions unless something seems broken. This generally only happens after an adb restore from a backup to desktop.
My DEEPEST APOLOGIES!
It had just occurred to me that I had previously asked a few of those questions.
Will never happen again!!!
Thank you for your time and understanding.
Thank you for your contributions to the community and support.
Forgive me in advance for asking what may be a noob question - I have searched the thread and either did not find or not understand enough to give the the guidance I am looking for.
Here is what I am trying to do. I am running CM13 on an LG G4 with the Lama kernel. I have an int.d script for tuning the kernal. I can copy the script into the int.d folder, set the appropriate permissions and then everything is perfect.
However, when I reflash due to an update, my script is gone. I am looking for a way to package the int.d script into a flashable zip file that would automatically copy the file into the int.d folder and set the permissions. I could then put that into my flash queue to avoid the manual steps. Are there any suggestions on the best way to do that?
I hope the question is clear and thank you again for your patience.
If you root with SuperSU then you can put your script in su.d and it'll survive ROM flashes.
Thanks for the response. I am rooted with SuperSU and my script is not surviving ROM flashes. I have SuperSU on the list of items that I flash with each ROM update - perhaps that is my issue...
Hi @osmosis. I am wondering if a script could be created that sets the Android Device ID? I would like to be able to do a factory reset, let Google restore the apps, but the device ID be the same one as I have been using. One reason among others is so I don't "use up" device limits on Play Music.
Thanks for your hard work.
I use the same device id on all ROMs but I use an app to do so (haven't seen a script for that yet).Hi @osmosis. I am wondering if a script could be created that sets the Android Device ID? I would like to be able to do a factory reset, let Google restore the apps, but the device ID be the same one as I have been using. One reason among others is so I don't "use up" device limits on Play Music.
Thanks for your hard work.
hi @osm0sis init.d injector not working in cm14.1 ,service exited with error 127 ,although selinux domain is defined is it possible to run service onetime as permissive and there is error in init.rc script its showing "i" as deprected so, i replaced "i' with "FILE" .I am using enforcing selinux.
@osm0sis, just read that BusyBox 1.26.0 is an unstable build.Good morning @osm0sis. Are you planning to release a .zip of busybox 1.26?
Good morning @osm0sis. Are you planning to release a .zip of busybox 1.26?
@osm0sis, just read that BusyBox 1.26.0 is an unstable build.
Here's one link that I've read regarding that release:
http://news.softpedia.com/news/busy...x-released-with-over-200-changes-511154.shtml
''Also CM14.1 already has /system/init.d so it may already work out-of-the-box'' - nope init.d is not working and even sysinit,debuggerd or custom init.rc services[by me] not working and i also tried sepolicy enjection for my custom service and for your script also it did not worked and i think supolicy by chainfire and su.d is only hope but currentaly i am not using supersu.
build.version.extensions.ad_services
build.version.extensions.r
build.version.extensions.s
build.version.extensions.t
build.version.extensions.u
init.svc.adbd
persist.graphics.egl
persist.sys.knox.userinfo
persist.sys.pif
persist.sys.pixelprops.games
ro.board.api_level
ro.board.first_api_level
ro.boot.flash.locked
ro.boot.hardware.revision
ro.boot.vbmeta.digest
ro.boot.vbmeta.device_state
ro.boot.verifiedbootstate
ro.build.characteristics
ro.build.id
ro.build.version.sdk
ro.build.version.security_patch
ro.config.tima
ro.config.timaversion
ro.debuggable
ro.gfx.driver.1
ro.hardware.egl
ro.product.first_api_level
ro.product.vndk.version
ro.secure
ro.superior.device
ro.vendor.api_level
ro.vendor.build.version.sdk
ro.vndk.version
ro.zygote
sys.usb.state
system build.prop to custom.pif.json/.prop creator
by osm0sis @ xda-developers
- Using format: json (Advanced)
- Parsing build.prop(s) ...
google/husky/husky:14/UQ1A.231205.015/11084887:user/release-keys
- Parsing build UTC date ...
Fri Nov 10 23:10:00 UTC 2023
- Build date newer than March 2018, adding SECURITY_PATCH ...
2023-12-05
- Parsing build first API level ...
34
- First API level 33 or higher, resetting to 32 ...
- Writing new custom.pif.json ...
{
// Build Fields
"MANUFACTURER": "Google",
"MODEL": "Pixel 8 Pro",
"FINGERPRINT": "google/husky/husky:14/UQ1A.231205.015/11084887:user/release-keys",
"BRAND": "google",
"PRODUCT": "husky",
"DEVICE": "husky",
"RELEASE": "14",
"ID": "UQ1A.231205.015",
"INCREMENTAL": "11084887",
"TYPE": "user",
"TAGS": "release-keys",
"SECURITY_PATCH": "2023-12-05",
"DEVICE_INITIAL_SDK_INT": "32",
// System Properties
"*.build.id": "UQ1A.231205.015",
"*.security_patch": "2023-12-05",
"*api_level": "32",
// Advanced Settings
"verboseLogs": "0"
}
Congrats!!! ... now send me a kernel repacked with anykernel4 which passes strong integrity with unlocked bootloader
You didn't have one? It's standard here!Congrats!!! ... now send me a kernel repacked with anykernel4 which passes strong integrity with unlocked bootloader
#!/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;