diff options
author | Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> | 2017-01-06 03:03:26 +0100 |
---|---|---|
committer | Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> | 2017-01-11 23:11:28 +0100 |
commit | 1fa51cbc241652ba09e9a52e9852120585720167 (patch) | |
tree | 7bb5de93e97162fac8224bd921b0694bacc8b361 | |
download | firmwares_nonfree-1fa51cbc241652ba09e9a52e9852120585720167.zip firmwares_nonfree-1fa51cbc241652ba09e9a52e9852120585720167.tar.gz firmwares_nonfree-1fa51cbc241652ba09e9a52e9852120585720167.tar.bz2 |
Initial version
Only supports the Galaxy S3 (GT-I9300) for now.
This is a rewrite of Paul Kocialkowski's script for previous CyanogenMod
versions which can be found here:
git.paulk.fr/gitweb/?p=cm-firmwares.git;a=summary
Signed-off-by: Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de>
-rw-r--r-- | .gitignore | 2 | ||||
-rwxr-xr-x | firmwares.sh | 160 | ||||
-rw-r--r-- | i9300-fwinfo/bluetooth.txt | 4 | ||||
-rw-r--r-- | i9300-fwinfo/front-camera.txt | 2 | ||||
-rw-r--r-- | i9300-fwinfo/video.txt | 1 | ||||
-rw-r--r-- | i9300-fwinfo/wifi.txt | 10 |
6 files changed, 179 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..37a3f1f --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*~ +*-fw/* diff --git a/firmwares.sh b/firmwares.sh new file mode 100755 index 0000000..fd32950 --- /dev/null +++ b/firmwares.sh @@ -0,0 +1,160 @@ +#!/bin/sh +# +# Copyright (C) 2017 Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +set -e + +DEVICE=$1 +FW_FUNC=$2 +ACTION=$3 +FW_HOST="https://github.com/TheMuppets" +ADB="adb" + +get_files () { + fw_file=$1 + + mkdir -p "$DEVICE-fw" + + cat "$DEVICE-fwinfo/$fw_file.txt" | while read file + do + link=${file%:*} + + wget "$FW_HOST/$link" -O "$DEVICE-fw/"$( basename $file ) + done +} + +find_files () { + fw_file=$1 + + cat "$DEVICE-fwinfo/$fw_file.txt" | while read file + do + path="$DEVICE-fw/"$( basename $file ) + + if [ ! -f "$path" ] + then + echo "$path missing, downloading..." + get_files $fw_file + break + fi + done +} + +prepare_adb () { + $ADB root + sleep 3 + $ADB remount +} + +push_files () { + fw_file=$1 + + cat "$DEVICE-fwinfo/$fw_file.txt" | while read file + do + echo "Pushing ${file#*:}" + + path=$( dirname "${file#*:}" ) + $ADB shell mkdir -p "$path" + + path="$DEVICE-fw/"$( basename $file ) + $ADB push "$path" "${file#*:}" + done +} + +remove_files () { + fw_file=$1 + + cat "$DEVICE-fwinfo/$fw_file.txt" | while read file + do + path="${file#*:}" + echo "Removing $path" + $ADB shell rm -f "$path" + done +} + +list_func () { + echo "The following functionalities can be enabled:" + for file in "$DEVICE-fwinfo/"*.txt + do + echo $( basename $file .txt ) + done + exit 0 +} + +eval_fw_func () { + command=$1 + + case "$FW_FUNC" in + "all") + for file in "$DEVICE-fwinfo/"*.txt + do + $command $( basename $file .txt ) + done + ;; + *) + $command $FW_FUNC + ;; + esac +} + +if [ "$DEVICE" = "" ] || [ "$FW_FUNC" = "" ] +then + echo "Usage: $0 [DEVICE] [FUNCTIONALITY]" + echo " $0 [DEVICE] [FUNCTIONALITY] remove" + echo + echo "Run \"$0 [DEVICE] list\" to get a list of functionalities that can be enabled" + echo "or specify \"all\" to enable/remove all supported functionalities" + echo + exit 1 +fi + +if [ ! -d "$DEVICE-fwinfo" ] +then + echo "$DEVICE is not supported" + echo "The following devices are supported:" + for dir in *-fwinfo + do + echo "${dir%-fwinfo}" + done + exit 1 +fi + +if [ "$FW_FUNC" = "list" ] +then + list_func +fi + +if [ "$FW_FUNC" != "all" ] && [ ! -f "$DEVICE-fwinfo/$FW_FUNC.txt" ] +then + echo "$FW_FUNC is not a functionality that can be enabled" + echo + list_func +fi + +case "$ACTION" in + "remove") + prepare_adb + eval_fw_func remove_files + ;; + *) + eval_fw_func find_files + prepare_adb + eval_fw_func push_files + ;; +esac + +echo "rebooting the device" +$ADB reboot +echo "finished successfully" diff --git a/i9300-fwinfo/bluetooth.txt b/i9300-fwinfo/bluetooth.txt new file mode 100644 index 0000000..f60895e --- /dev/null +++ b/i9300-fwinfo/bluetooth.txt @@ -0,0 +1,4 @@ +proprietary_vendor_samsung/raw/cm-13.0/smdk4412-common/proprietary/system/bin/bcm4334.hcd:/system/vendor/firmware/bcm4334.hcd +proprietary_vendor_samsung/raw/cm-13.0/smdk4412-common/proprietary/system/bin/bcm4334_murata.hcd:/system/vendor/firmware/bcm4334_murata.hcd +proprietary_vendor_samsung/raw/cm-13.0/smdk4412-common/proprietary/system/bin/bcm4334_semco.hcd:/system/vendor/firmware/bcm4334_semco.hcd +proprietary_vendor_samsung/raw/cm-13.0/smdk4412-common/proprietary/system/bin/bcm4334_semcosh.hcd:/system/vendor/firmware/bcm4334_semcosh.hcd diff --git a/i9300-fwinfo/front-camera.txt b/i9300-fwinfo/front-camera.txt new file mode 100644 index 0000000..d296309 --- /dev/null +++ b/i9300-fwinfo/front-camera.txt @@ -0,0 +1,2 @@ +proprietary_vendor_samsung/raw/cm-13.0/smdk4412-common/proprietary/system/vendor/firmware/fimc_is_fw.bin:/system/vendor/firmware/fimc_is_fw.bin +proprietary_vendor_samsung/raw/cm-13.0/smdk4412-common/proprietary/system/vendor/firmware/setfile.bin:/system/vendor/firmware/setfile.bin diff --git a/i9300-fwinfo/video.txt b/i9300-fwinfo/video.txt new file mode 100644 index 0000000..141d41c --- /dev/null +++ b/i9300-fwinfo/video.txt @@ -0,0 +1 @@ +proprietary_vendor_samsung/raw/cm-13.0/smdk4412-common/proprietary/system/vendor/firmware/mfc_fw.bin:/system/vendor/firmware/mfc_fw.bin diff --git a/i9300-fwinfo/wifi.txt b/i9300-fwinfo/wifi.txt new file mode 100644 index 0000000..a82e92b --- /dev/null +++ b/i9300-fwinfo/wifi.txt @@ -0,0 +1,10 @@ +proprietary_vendor_samsung/raw/cm-13.0/smdk4412-common/proprietary/system/etc/wifi/bcmdhd_apsta.bin_b2:/system/vendor/firmware/bcmdhd_apsta.bin_b2 +proprietary_vendor_samsung/raw/cm-13.0/smdk4412-common/proprietary/system/etc/wifi/bcmdhd_mfg.bin_b2:/system/vendor/firmware/bcmdhd_mfg.bin_b2 +proprietary_vendor_samsung/raw/cm-13.0/smdk4412-common/proprietary/system/etc/wifi/bcmdhd_p2p.bin_b2:/system/vendor/firmware/bcmdhd_p2p.bin_b2 +proprietary_vendor_samsung/raw/cm-13.0/smdk4412-common/proprietary/system/etc/wifi/bcmdhd_sta.bin_b2:/system/vendor/firmware/bcmdhd_sta.bin_b2 +proprietary_vendor_samsung/raw/cm-13.0/smdk4412-common/proprietary/system/etc/wifi/nvram_mfg.txt:/system/vendor/firmware/nvram_mfg.txt +proprietary_vendor_samsung/raw/cm-13.0/smdk4412-common/proprietary/system/etc/wifi/nvram_mfg.txt_murata:/system/vendor/firmware/nvram_mfg.txt_murata +proprietary_vendor_samsung/raw/cm-13.0/smdk4412-common/proprietary/system/etc/wifi/nvram_mfg.txt_semcosh:/system/vendor/firmware/nvram_mfg.txt_semcosh +proprietary_vendor_samsung/raw/cm-13.0/smdk4412-common/proprietary/system/etc/wifi/nvram_net.txt:/system/vendor/firmware/nvram_net.txt +proprietary_vendor_samsung/raw/cm-13.0/smdk4412-common/proprietary/system/etc/wifi/nvram_net.txt_murata:/system/vendor/firmware/nvram_net.txt_murata +proprietary_vendor_samsung/raw/cm-13.0/smdk4412-common/proprietary/system/etc/wifi/nvram_net.txt_semcosh:/system/vendor/firmware/nvram_net.txt_semcosh |