From 22dc7c7785878b5964473d82c4cce941b1a58b1d Mon Sep 17 00:00:00 2001 From: JoshuaDoes Date: Thu, 27 Jul 2023 02:29:49 -0400 Subject: [PATCH] Initial commit --- .gitignore | 2 + META-INF/com/google/android/update-binary | 173 +++++++++++++++++++++ META-INF/com/google/android/updater-script | 1 + README.md | 18 +++ install.sh | 57 +++++++ module.prop | 7 + update.json | 6 + 7 files changed, 264 insertions(+) create mode 100644 .gitignore create mode 100644 META-INF/com/google/android/update-binary create mode 100644 META-INF/com/google/android/updater-script create mode 100644 README.md create mode 100644 install.sh create mode 100644 module.prop create mode 100644 update.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3e26eaf --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Exclude local Magisk module builds from the repo +*.zip \ No newline at end of file diff --git a/META-INF/com/google/android/update-binary b/META-INF/com/google/android/update-binary new file mode 100644 index 0000000..29240cd --- /dev/null +++ b/META-INF/com/google/android/update-binary @@ -0,0 +1,173 @@ +#!/sbin/sh + +################# +# Initialization +################# + +umask 022 + +# Global vars +TMPDIR=/dev/tmp +PERSISTDIR=/sbin/.magisk/mirror/persist + +rm -rf $TMPDIR 2>/dev/null +mkdir -p $TMPDIR + +# echo before loading util_functions +ui_print() { echo "$1"; } + +require_new_magisk() { + ui_print "*******************************" + ui_print " Please install Magisk v19.0+! " + ui_print "*******************************" + exit 1 +} + +is_legacy_script() { + unzip -l "$ZIPFILE" install.sh | grep -q install.sh + return $? +} + +print_modname() { + local len + len=`echo -n $MODNAME | wc -c` + len=$((len + 2)) + local pounds=`printf "%${len}s" | tr ' ' '*'` + ui_print "$pounds" + ui_print " $MODNAME " + ui_print "$pounds" + ui_print "*******************" + ui_print " Powered by Magisk " + ui_print "*******************" +} + +############## +# Environment +############## + +OUTFD=$2 +ZIPFILE=$3 + +mount /data 2>/dev/null + +# Load utility functions +[ -f /data/adb/magisk/util_functions.sh ] || require_new_magisk +. /data/adb/magisk/util_functions.sh +[ $MAGISK_VER_CODE -gt 18100 ] || require_new_magisk + +# Preperation for flashable zips +setup_flashable + +# Mount partitions +mount_partitions + +# Detect version and architecture +api_level_arch_detect + +# Setup busybox and binaries +$BOOTMODE && boot_actions || recovery_actions + +############## +# Preparation +############## + +# Extract prop file +unzip -o "$ZIPFILE" module.prop -d $TMPDIR >&2 +[ ! -f $TMPDIR/module.prop ] && abort "! Unable to extract zip file!" + +$BOOTMODE && MODDIRNAME=modules_update || MODDIRNAME=modules +MODULEROOT=$NVBASE/$MODDIRNAME +MODID=`grep_prop id $TMPDIR/module.prop` +MODPATH=$MODULEROOT/$MODID +MODNAME=`grep_prop name $TMPDIR/module.prop` + +# Create mod paths +rm -rf $MODPATH 2>/dev/null +mkdir -p $MODPATH + +########## +# Install +########## + +if is_legacy_script; then + unzip -oj "$ZIPFILE" module.prop install.sh uninstall.sh 'common/*' -d $TMPDIR >&2 + + # Load install script + . $TMPDIR/install.sh + + # Callbacks + print_modname + on_install + + # Custom uninstaller + [ -f $TMPDIR/uninstall.sh ] && cp -af $TMPDIR/uninstall.sh $MODPATH/uninstall.sh + + # Skip mount + $SKIPMOUNT && touch $MODPATH/skip_mount + + # prop file + $PROPFILE && cp -af $TMPDIR/system.prop $MODPATH/system.prop + + # Module info + cp -af $TMPDIR/module.prop $MODPATH/module.prop + + # post-fs-data scripts + $POSTFSDATA && cp -af $TMPDIR/post-fs-data.sh $MODPATH/post-fs-data.sh + + # service scripts + $LATESTARTSERVICE && cp -af $TMPDIR/service.sh $MODPATH/service.sh + + ui_print "- Setting permissions" + set_permissions +else + print_modname + + unzip -o "$ZIPFILE" customize.sh -d $MODPATH >&2 + + if ! grep -q '^SKIPUNZIP=1$' $MODPATH/customize.sh 2>/dev/null; then + ui_print "- Extracting module files" + unzip -o "$ZIPFILE" -x 'META-INF/*' -d $MODPATH >&2 + + # Default permissions + set_perm_recursive $MODPATH 0 0 0755 0644 + fi + + # Load customization script + [ -f $MODPATH/customize.sh ] && . $MODPATH/customize.sh +fi + +# Handle replace folders +for TARGET in $REPLACE; do + ui_print "- Replace target: $TARGET" + mktouch $MODPATH$TARGET/.replace +done + +if $BOOTMODE; then + # Update info for Magisk Manager + mktouch $NVBASE/modules/$MODID/update + cp -af $MODPATH/module.prop $NVBASE/modules/$MODID/module.prop +fi + +# Copy over custom sepolicy rules +if [ -f $MODPATH/sepolicy.rule -a -e $PERSISTDIR ]; then + ui_print "- Installing custom sepolicy patch" + PERSISTMOD=$PERSISTDIR/magisk/$MODID + mkdir -p $PERSISTMOD + cp -af $MODPATH/sepolicy.rule $PERSISTMOD/sepolicy.rule +fi + +# Remove stuffs that don't belong to modules +rm -rf \ +$MODPATH/system/placeholder $MODPATH/customize.sh \ +$MODPATH/README.md $MODPATH/.git* 2>/dev/null + +############## +# Finalizing +############## + +cd / +$BOOTMODE || recovery_cleanup +rm -rf $TMPDIR + +ui_print "- Done" +exit 0 diff --git a/META-INF/com/google/android/updater-script b/META-INF/com/google/android/updater-script new file mode 100644 index 0000000..11d5c96 --- /dev/null +++ b/META-INF/com/google/android/updater-script @@ -0,0 +1 @@ +#MAGISK diff --git a/README.md b/README.md new file mode 100644 index 0000000..6d88c42 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# Pixel Tensor Audio Decompressor + +Made and tested by JoshuaDoes on a Pixel 6 Pro. + +# Supported devices +* Pixel 6 (oriole) +* Pixel 6 Pro (raven) +* Pixel 6a (bluejay) +* Pixel 7 (panther) +* Pixel 7 Pro (cheetah) +* Pixel 7a (lynx) + +## Changelog + +### v1.0.0 (initial release) +- Raised digital PCM volume from stock value of 817 to 865. +- Lowered amplifier PCM gain from stock value of 17 to 13. +- Forced boost peak current limit to 3.50A. This is the default on most ROMs including Google stock, but no longer the default for hentaiOS and its forks. \ No newline at end of file diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..ee98fd5 --- /dev/null +++ b/install.sh @@ -0,0 +1,57 @@ +print_modname() { + ui_print "" + ui_print "***********************************" + ui_print "* Pixel Tensor Audio Decompressor *" + ui_print "** Made and tested by JoshuaDoes **" + ui_print "***********************************" + ui_print "For the following devices:" + ui_print "- Pixel 6 Pro (raven)" + ui_print "- Pixel 6 (oriole)" + ui_print "- Pixel 6a (bluejay)" + ui_print "- Pixel 7 Pro (cheetah)" + ui_print "- Pixel 7 (panther)" + ui_print "- Pixel 7a (lynx)" + ui_print "***********************************" + ui_print "The following changes will be made!" + ui_print "" + ui_print "# Speakers" + ui_print "Digital PCM volume: 817 -> 865" + ui_print "Amplifier PCM gain: 17 -> 13" + ui_print "Boost peak current limit: 3.50A" + ui_print "" +} + +on_install() { + # raven = Pixel 6 Pro + # oriole = Pixel 6 + # bluejay = Pixel 6a + # cheetah = Pixel 7 Pro + # panther = Pixel 7 + # lynx = Pixel 7a + if [ $DEVICE != "raven" ] && [ $DEVICE != "oriole" ] && [ $DEVICE != "bluejay" ] && [ $DEVICE != "cheetah" ] && [ $DEVICE != "panther" ] && [ $DEVICE != "lynx" ]; then + abort "* "$DEVICE" is not supported!" + fi + + if [ $RELEASE != "13" ]; then + abort "* Android "$RELEASE" is not supported!" + fi + + ui_print "- Copying mixer paths to a temporary location" + cp "/vendor/etc/mixer_paths.xml" "$TMPDIR/mixer_paths.xml" + ui_print "- Patching mixer paths using sed" + sed -r 's/AMP PCM Gain" value="17/AMP PCM Gain" value="13/g; s/Digital PCM Volume" value="817/Digital PCM Volume" value="865/g; s/Boost Peak Current Limit" value="(.*)A/Boost Peak Current Limit" value="3.50A/g' "$TMPDIR/mixer_paths.xml" > "$TMPDIR/mixer_paths2.xml" + ui_print "- Installing patched mixer paths systemfully into module path" + mkdir -p "$MODPATH/system/vendor/etc" + mv "$TMPDIR/mixer_paths2.xml" "$MODPATH/system/vendor/etc/mixer_paths.xml" + ui_print "- Cleaning up temporary files" + rm "$TMPDIR/mixer_paths.xml" + rm "$TMPDIR/mixer_paths2.xml" + + ui_print "" + ui_print "* Reboot and listen to some audio!" + ui_print "" +} + +set_permissions() { + set_perm_recursive $MODPATH 0 0 0755 0644 +} diff --git a/module.prop b/module.prop new file mode 100644 index 0000000..081746d --- /dev/null +++ b/module.prop @@ -0,0 +1,7 @@ +id=pixel-tensor-audio-decompressor +name=Pixel Tensor Audio Decompressor +version=v1.0.0 +versionCode=100 +author=JoshuaDoes +description=Patches mixer_paths.xml on Pixel Tensor devices to decompress the digital PCM volume. +updateJson=https://raw.githubusercontent.com/JoshuaDoes/pixel-tensor-audio-decompressor/dev/update.json diff --git a/update.json b/update.json new file mode 100644 index 0000000..6634bc6 --- /dev/null +++ b/update.json @@ -0,0 +1,6 @@ +{ + "version": "v1.0.0", + "versionCode": 100, + "zipUrl": "https://github.com/JoshuaDoes/pixel-tensor-audio-decompressor/releases/download/100/pixel-tensor-audio-decompressor-v1.0.0.zip", + "changelog": "https://raw.githubusercontent.com/JoshuaDoes/pixel-tensor-audio-decompressor/dev/README.md" +}