hacks/dump-imessages/iphone-dataprotection/build_ramdisk.sh

82 lines
2.0 KiB
Bash
Raw Normal View History

#!/bin/bash
#set +e
#set -o errexit
if [ $# -lt 4 ]
then
echo "Syntax: $0 IPSW RAMDISK KEY IV CUSTOMRAMDISK"
echo "python_scripts/kernel_patcher.py can generate a shell script with the correct parameters"
exit
fi
if [ ! -f ramdisk_tools/restored_external ]
then
echo "ramdisk_tools/restored_external not found, check compilation output for errors"
exit -1
fi
IPSW=$1
RAMDISK=$2
KEY=$3
IV=$4
CUSTOMRAMDISK=$5
if [ "$CUSTOMRAMDISK" == "" ]; then
CUSTOMRAMDISK="myramdisk.dmg"
fi
IMG3FS="./img3fs/img3fs"
IMG3MNT="/tmp/img3"
if [ ! -f $IMG3FS ]; then
echo "img3fs is missing, install osxfuse and run make -C img3fs/"
exit -1
fi
if [ ! -f ssh.tar.gz ]; then
echo "Downloading ssh.tar.gz from googlecode"
curl -O http://iphone-dataprotection.googlecode.com/files/ssh.tar.gz
fi
unzip $IPSW $RAMDISK
if [ -d "/Volumes/ramdisk" ]; then
hdiutil eject /Volumes/ramdisk
umount $IMG3MNT
fi
mkdir -p $IMG3MNT
$IMG3FS -key $KEY -iv $IV $IMG3MNT $RAMDISK
hdiutil attach -owners off $IMG3MNT/DATA.dmg
#remove baseband files to free space
rm -rf /Volumes/ramdisk/usr/local/standalone/firmware/*
rm -rf /Volumes/ramdisk/usr/share/progressui/
#dont replace existing files, replacing launchctl on armv6 ramdisks makes it fail somehow
tar -C /Volumes/ramdisk/ -xzkP < ssh.tar.gz
rm /Volumes/ramdisk/bin/vdir
rm /Volumes/ramdisk/bin/egrep
rm /Volumes/ramdisk/bin/grep
#rm /Volumes/ramdisk/usr/local/bin/restored_external
cp ramdisk_tools/restored_external /Volumes/ramdisk/usr/local/bin
cp ramdisk_tools/bruteforce ramdisk_tools/device_infos /Volumes/ramdisk/var/root
cp ramdisk_tools/scripts/* /Volumes/ramdisk/var/root
cp ramdisk_tools/ioflashstoragekit /Volumes/ramdisk/var/root
#if present, copy ssh public key to ramdisk
if [ -f ~/.ssh/id_rsa.pub ]; then
mkdir /Volumes/ramdisk/var/root/.ssh
cp ~/.ssh/id_rsa.pub /Volumes/ramdisk/var/root/.ssh/authorized_keys
fi
hdiutil eject /Volumes/ramdisk
umount $IMG3MNT
mv $RAMDISK $CUSTOMRAMDISK
#echo "$CUSTOMRAMDISK created"