summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2017-01-06 03:03:26 +0100
committerWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2017-01-11 23:11:28 +0100
commit1fa51cbc241652ba09e9a52e9852120585720167 (patch)
tree7bb5de93e97162fac8224bd921b0694bacc8b361
downloadfirmwares_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--.gitignore2
-rwxr-xr-xfirmwares.sh160
-rw-r--r--i9300-fwinfo/bluetooth.txt4
-rw-r--r--i9300-fwinfo/front-camera.txt2
-rw-r--r--i9300-fwinfo/video.txt1
-rw-r--r--i9300-fwinfo/wifi.txt10
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