Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extracted firmware and then tried to rebuild it and it became larger, probably because it didnt use lzma for recompress. #138

Open
GoogleCodeExporter opened this issue May 30, 2015 · 1 comment

Comments

@GoogleCodeExporter
Copy link

I extracted a firmware for a VDSL modem.  The modem is SmartRG SR505N.  

Here is output:

-----------------------------------

./extract-firmware.sh smart.bin 


Firmware Mod Kit (extract) 0.99, (c)2011-2013 Craig Heffner, Jeremy Collake

Preparing tools ...
Scanning firmware...

Scan Time:     2014-09-10 09:00:39
Target File:   /root/fmk/smart.bin
MD5 Checksum:  e4b1daea297f6955d4f578d80a520c5f
Signatures:    285

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             Broadcom 96345 firmware header, header size: 256, 
firmware version: "68", board id: "63168MBV_17AZZ", ~CRC32 header checksum: 
0x35883F5B, ~CRC32 data checksum: 0x3C11AA1A
256           0x100           Squashfs filesystem, little endian, non-standard 
signature,  version 4.0, compression:gzip, size: 6010146 bytes,  828 inodes, 
blocksize: 65536 bytes, created: Thu Jan  2 15:53:03 2014
6013196       0x5BC10C        LZMA compressed data, properties: 0x6D, 
dictionary size: 4194304 bytes, uncompressed size: 3552512 bytes

Extracting 256 bytes of broadcom header image at offset 0
Extracting squashfs file system at offset 256
Extracting 2880 byte footer from offset 7202176
Extracting squashfs files...
Firmware extraction successful!
Firmware parts can be found in '/root/fmk/fmk/*'

---------------------------------------------------------------


./build-firmware.sh 
Firmware Mod Kit (build) 0.99, (c)2011-2013 Craig Heffner, Jeremy Collake

Preparing tools ...
Building new squashfs file system... (this may take several minutes!)
Squahfs block size is 64 Kb
./src/others/squashfs-4.2/mksquashfs /root/fmk/fmk/rootfs 
/root/fmk/fmk/new-filesystem.squashfs  -b 65536  -all-root
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on /root/fmk/fmk/new-filesystem.squashfs, block size 
65536.
[===============================================================================
================/] 739/739 100%
Exportable Squashfs 4.0 filesystem, gzip compressed, data block size 65536
    compressed data, compressed metadata, compressed fragments, compressed xattrs
    duplicates are removed
Filesystem size 7440.07 Kbytes (7.27 Mbytes)
    35.56% of uncompressed filesystem size (20924.42 Kbytes)
Inode table size 8221 bytes (8.03 Kbytes)
    30.73% of uncompressed inode table size (26756 bytes)
Directory table size 8086 bytes (7.90 Kbytes)
    53.84% of uncompressed directory table size (15018 bytes)
Number of duplicate files found 0
Number of inodes 828
Number of files 493
Number of fragments 72
Number of symbolic links  108
Number of device nodes 176
Number of fifo nodes 1
Number of socket nodes 0
Number of directories 50
Number of ids (unique uids + gids) 1
Number of uids 1
    root (0)
Number of gids 1
    root (0)
ERROR: New firmware image will be larger than original image!
       Building firmware images larger than the original can brick your device!
       Try re-running with the -min option, or remove any unnecessary files.
       REFUSING to create new firmware image.

       Original file size: 7205056
       Current file size:  7622912 (plus footer of 2880 bytes)

       Quitting...


Then I ran binwalk on the build firmware:

binwalk fmk/new-firmware.bin 

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             Broadcom 96345 firmware header, header size: 256, 
firmware version: "68", board id: "63168MBV_17AZZ", ~CRC32 header checksum: 
0x35883F5B, ~CRC32 data checksum: 0x3C11AA1A
256           0x100           Squashfs filesystem, little endian, version 4.0, 
compression:gzip, size: 7618636 bytes,  828 inodes, blocksize: 65536 bytes, 
created: Wed Sep 10 09:01:20 2014


Original issue reported on code.google.com by r...@cs.velcom.ca on 10 Sep 2014 at 4:03

@GoogleCodeExporter
Copy link
Author

Sorry here is additional information:

uname -a
Linux rob-virtual-machine 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 
UTC 2014 x86_64 x86_64 x86_64 GNU/Linux


binwalk smart.bin 

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             Broadcom 96345 firmware header, header size: 256, 
firmware version: "68", board id: "63168MBV_17AZZ", ~CRC32 header checksum: 
0x35883F5B, ~CRC32 data checksum: 0x3C11AA1A
256           0x100           Squashfs filesystem, little endian, non-standard 
signature,  version 4.0, compression:gzip, size: 6010146 bytes,  828 inodes, 
blocksize: 65536 bytes, created: Thu Jan  2 15:53:03 2014
6013196       0x5BC10C        LZMA compressed data, properties: 0x6D, 
dictionary size: 4194304 bytes, uncompressed size: 3552512 bytes

Original comment by r...@cs.velcom.ca on 10 Sep 2014 at 4:04

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant