S
_strauch_
Stamm-User
- 118
Ja den rechtlichen Aspekt sollten wir/ihr definitiv berücksichtigen, wegen soetwas soll niemand juristischen Ärger bekommen. Danke noch mal für deine Anleitung. Ein erster Schritt zu den eigenen Programmen
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion erfordert derzeit den Zugriff auf die Seite über den integrierten Safari-Browser.
Erledigt. Danke für den Hinweis. So ist das mit den Sachen, die "selbstverständlich" sind.Azzrael schrieb:@Frank : du solltest vielleicht in deiner Anleitung noch dazuschreiben ( und zwar für solche Trottel wie mich ) das man die .sh scripte nach dem erstellen mit sudo chmod x+ *.sh erst noch ausführbar machen muss damit es funktionierren kann.
frank_m schrieb:Wie immer gilt: Jeder ist für sein Telefon selber verantwortlich. Wer sein Gerät mit Hilfe dieser Anleitung schrottet, ist selber schuld. Ich hab euch gewarnt, die Sache ist gefährlich.
nex@mathias-pc:~/galaxy/I9001XXKP4$ sh -x '/home/nex/galaxy/I9001XXKP4/extract.sh' '/home/nex/galaxy/I9001XXKP4/SMD_PDA_I9001XXKP4_CL374422_REV00_user_low_ship_EMMC.smd'
+ base=0
+ length=1
+ length
/home/nex/galaxy/I9001XXKP4/extract.sh: 1: length: not found
hm im selben Ordner habe ich es auch. das muss an etwas anderem liegen_strauch_ schrieb:ja hat bei mir geklappt aber ich hab das script im gleichen ordner gehjabt wie die smd datei
#!/bin/bash
if [ "${1}" == "-p" ]
then
echo "Creating PDA Archive"
echo -n "PDASMDIMG" > newheader
dd if=/dev/zero of=newheadertmp bs=1 count=7 2>/dev/null
cat newheadertmp >> newheader
elif [ "${1}" == "-c" ]
then
echo "Creating CSC Archive"
echo -n "CSCSMDIMG" > newheader
dd if=/dev/zero of=newheadertmp bs=1 count=7 2>/dev/null
cat newheadertmp >> newheader
elif [ "${1}" == "-m" ]
then
echo "Creating Modem Archive"
echo -n "MODEMSMDIMG" > newheader
dd if=/dev/zero of=newheadertmp bs=1 count=5 2>/dev/null
cat newheadertmp >> newheader
else
echo "Missing Parameter!"
echo "Usage: ..."
exit 1
fi
# We use always 2560 Bytes Header. Make it dynamic, if you want. :)
offset=2560
length=0
loop=3
#we need one loop for each file. First argument is archive type, then the filenames
let "loops = $# + 1"
while (( loop < loops ))
do
if [ -e "${!loop}" ]
then
# calculate filesize
filesize=$(stat -c%s ${!loop})
hexsize=`echo ""$filesize" "16" o p" | dc`
hexstring="00000000${hexsize}"
stringlen=`echo ${#hexstring}`
hexsize="${hexstring: -8}"
byte1="\x${hexsize:6:2}"
byte2="\x${hexsize:4:2}"
byte3="\x${hexsize:2:2}"
byte4="\x${hexsize:0:2}"
echo -n -e "${byte1}${byte2}${byte3}${byte4}" >> newheader
#calculate offset
hexsize=`echo ""$offset" "16" o p" | dc`
hexstring="00000000${hexsize}"
stringlen=`echo ${#hexstring}`
hexsize="${hexstring: -8}"
byte1="\x${hexsize:6:2}"
byte2="\x${hexsize:4:2}"
byte3="\x${hexsize:2:2}"
byte4="\x${hexsize:0:2}"
echo -n -e "${byte1}${byte2}${byte3}${byte4}" >> newheader
#next offset is after the next file
let "offset += filesize"
# a 1000 - why ever
echo -n -e "\x01\x00\x00\x00" >> newheader
# filetype. Seems to specify the partition or something
type=`expr match "${!loop}" 'partition'`
if (( type > 0 ))
then
echo -n -e "\x00\x00\x00\x00" >> newheader
fi
type=`expr match "${!loop}" 'osbl'`
if (( type > 0 ))
then
echo -n -e "\x46\x00\x00\x00" >> newheader
fi
type=`expr match "${!loop}" 'EMMCBOOT'`
if (( type > 0 ))
then
echo -n -e "\x47\x00\x00\x00" >> newheader
fi
type=`expr match "${!loop}" 'boot.img'`
if (( type > 0 ))
then
echo -n -e "\x48\x00\x00\x00" >> newheader
fi
type=`expr match "${!loop}" 'amss'`
if (( type > 0 ))
then
echo -n -e "\x49\x00\x00\x00" >> newheader
fi
type=`expr match "${!loop}" 'dbl'`
if (( type > 0 ))
then
echo -n -e "\x4D\x00\x00\x00" >> newheader
fi
type=`expr match "${!loop}" 'adsp'`
if (( type > 0 ))
then
echo -n -e "\x50\x00\x00\x00" >> newheader
fi
type=`expr match "${!loop}" 'persist'`
if (( type > 0 ))
then
echo -n -e "\x90\x00\x00\x00" >> newheader
fi
type=`expr match "${!loop}" 'recovery'`
if (( type > 0 ))
then
echo -n -e "\x91\x00\x00\x00" >> newheader
fi
type=`expr match "${!loop}" 'emmcparam'`
if (( type > 0 ))
then
echo -n -e "\x92\x00\x00\x00" >> newheader
fi
type=`expr match "${!loop}" 'system'`
if (( type > 0 ))
then
echo -n -e "\x93\x00\x00\x00" >> newheader
fi
type=`expr match "${!loop}" 'cache'`
if (( type > 0 ))
then
echo -n -e "\x94\x00\x00\x00" >> newheader
fi
#filename
echo -n "${!loop}" >> newheader
length=`expr length ${!loop}`
let "count = 16 - length"
dd if=/dev/zero of=newheadertmp bs=1 count=${count} 2>/dev/null
cat newheadertmp >> newheader
# MD5 checksum
checksum=`md5sum ${!loop} | tr '[a-z]' '[A-Z]'`
echo -n ${checksum:0:32} >> newheader
else
echo "File not found: ${!loop}"
exit 1
fi
let "loop += 1"
done
filesize=$(stat -c%s newheader)
let "size = 2560 - filesize"
dd if=/dev/zero of=newheadertmp bs=1 count=${size} 2>/dev/null
cat newheadertmp >> newheader
rm newheadertmp
loop=3
cat newheader > ${2}
while (( loop < loops ))
do
cat ${!loop} >> ${2}
let "loop += 1"
done
rm newheader
pack2.sh TYPE Archiv.smd file1 file2 file3 ...
./pack2.sh -p Kernel.smd boot.img
./pack2.sh -p SMD_I9001BOKF6_I9001BOKF6_CL319318_REV00_user_low_ship_EMMC_test.smd partition.bin dbl.mbn osbl.mbn amss.mbn EMMCBOOT.MBN adsp.mbn boot.img system.ext4 cache.ext4 recovery.img persist.ext4 emmcparam.bin