extract.sh 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/bin/sh
  2. DIR="$1/"
  3. FILE="$1/$2"
  4. echo "This tool downloads the arcor a800 firmware release and extracts the voip firmware for the danube."
  5. echo "Please only do so if it is legal in your country"
  6. [ ! -f ${FILE} ] && {
  7. echo ${FILE} is missing
  8. exit 1
  9. }
  10. [ -f ${DIR}/ifxmips_fw_decodev2.tar.bz2 -a ! -f ${DIR}voip_coef.bin ] && {
  11. [ ! -f ${DIR}decode_ifx_fw && -f ${DIR}ifxmips_fw_decodev2.tar.bz2 ] && {
  12. tar xjf ${DIR}ifxmips_fw_decodev2.tar.bz2 ifxmips_fw_decode/decode.c -O > ${DIR}decode.c
  13. gcc -o ${DIR}decode_ifx_fw ${DIR}decode.c
  14. }
  15. [ ! -f ${DIR}decode_ifx_fw ] && {
  16. [ ! -f ${DIR}voip_coef.lzma ] && {
  17. ${DIR}decode_ifx_fw $FILE ${DIR}voip_coef.lzma
  18. }
  19. lzma d ${DIR}voip_coef.lzma ${DIR}voip_coef.bin
  20. }
  21. }
  22. [ ! -f ${DIR}dsl_a.bin ] && {
  23. dd if=${FILE} of=${DIR}dsl1.lzma bs=1 skip=2168832 count=150724
  24. lzma d ${DIR}dsl2.lzma ${DIR}dsl_a.bin
  25. }
  26. [ ! -f ${DIR}dsl_b.bin ] && {
  27. dd if=${FILE} of=${DIR}dsl2.lzma bs=1 skip=2320384 count=148343
  28. lzma d ${DIR}dsl1.lzma ${DIR}dsl_b.bin
  29. }
  30. [ ! -f ${DIR}voip.bin ] && {
  31. dd if=${FILE} of=${DIR}voip.lzma bs=1 skip=2468864 count=452105
  32. lzma d ${DIR}voip.lzma ${DIR}voip.bin
  33. }
  34. exit 0
  35. # get lzma offsets
  36. # hexdump -C arcor_A800_452CPW_FW_1.02.206\(20081201\).bin | grep "5d 00 00 80"
  37. # hexdump -C arcor_A800_452CPW_FW_1.02.206\(20081201\).bin | grep "00 d5 08 00"