diff options
-rw-r--r-- | Library/com.saurik.Cydia.Firmware | 12 | ||||
-rwxr-xr-x | Library/firmware.sh | 43 |
2 files changed, 55 insertions, 0 deletions
diff --git a/Library/com.saurik.Cydia.Firmware b/Library/com.saurik.Cydia.Firmware new file mode 100644 index 0000000..6fdcf33 --- /dev/null +++ b/Library/com.saurik.Cydia.Firmware @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>Label</key> + <string>com.saurik.Cydia.Firmware</string> + <key>Program</key> + <string>/usr/libexec/cydia/firmware.sh</string> + <key>RunAtLoad</key> + <true/> +</dict> +</plist> diff --git a/Library/firmware.sh b/Library/firmware.sh new file mode 100755 index 0000000..e0ef0ab --- /dev/null +++ b/Library/firmware.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +version=$(sw_vers -productVersion) + +if grep '^Package: firmware$' /var/lib/dpkg/status >/dev/null; then + cat /var/lib/dpkg/status | while read -r line; do + if [[ ${line} == 'Package: firmware' ]]; then + firmware= + elif [[ ${line} == '' ]]; then + unset firmware + elif [[ ${line} == Version:* && "${firmware+@}" ]]; then + echo "Version: ${version}" + continue + fi + + echo "${line}" + done >/var/lib/dpkg/status_ +else + cat /var/lib/dpkg/status - >/var/lib/dpkg/status_ <<EOF +Package: firmware +Essential: yes +Status: install ok installed +Priority: required +Section: System +Installed-Size: 0 +Maintainer: Jay Freeman (saurik) <saurik@saurik.com> +Architecture: darwin-arm +Version: ${version} +Description: almost impressive Apple frameworks +Name: Apple iPhone Firmware + +EOF +fi && mv -f /var/lib/dpkg/status{_,} + +if [[ ${version} = 1.0* || ${version} = 1.1.[012] ]]; then + user=root +else + user=mobile +fi + +if [[ ! -h /User && -d /User ]]; then + cp -afT /User /var/"${user}" +fi && rm -rf /User && ln -s "/var/${user}" /User |