Commit graph

70 commits

Author SHA1 Message Date
Peter Wu
a27775129d extract-partitions.py: fix reading 512 bytes too short
/proc/partitions outputs blocks of 1 KiB, but the size can be aligned
at 512 bytes (as observed with the "grow" partition). Re-use the
partitions.py code for dumping partitions.

Previously every partition would be opened separately, now this
requests the partition offset and size for each partition, but the disk
is opened only once.

This takes about 32 seconds for 356 MiB.
2015-12-26 23:18:35 +01:00
Peter Wu
8f9c53b9eb Add script to dump/write partitions 2015-12-26 23:15:25 +01:00
Peter Wu
88fa55bbd5 lglaf.py: Python 2 compatibility 2015-12-26 22:03:49 +01:00
Peter Wu
e0f269128f extract-partitions.py: fix unaligned files
Seeking on a file open for appending does not really work. Also fix
offset in debug message.
2015-12-26 22:03:29 +01:00
Peter Wu
d9aa205b17 protocol.md: fix WRTE offset response
Unlike READ, WRTE does not have the same meanings for request/response.
2015-12-26 21:30:14 +01:00
Peter Wu
e89f3403db Add Wireshark LUA dissector 2015-12-26 20:38:47 +01:00
Peter Wu
c6b7bd465d extract-partitions.py: really close file on errors 2015-12-26 16:08:38 +01:00
Peter Wu
82174eaa6c protocol.md: update CTRL and READ 2015-12-26 14:52:26 +01:00
Peter Wu
85168bc5de extract-partitions.py: documentation update 2015-12-26 14:52:04 +01:00
Peter Wu
a8145a4a75 lglaf.py: allow skipping HELO
Just in case it causes interference, or to speed up things when you know
that the device is correct and in sync.
2015-12-26 14:51:28 +01:00
Peter Wu
495060d104 Add script to dump partitions
Dumped 384M in 34 seconds (D855, Linux, USB 2.0).
2015-12-26 01:09:45 +01:00
Peter Wu
e4544e50e5 lglaf.py: make device detection externally available
Useful for other scripts.
2015-12-26 01:09:07 +01:00
Peter Wu
13d0579db0 Try to make reset more robust
Implements message draining for serial devices and adds a HELO request
to ensure that the device is synchronized and speaks the protocol.
2015-12-25 15:55:15 +01:00
Peter Wu
0b38a8af0e lglaf.py: more helpful assertions 2015-12-25 15:48:30 +01:00
Peter Wu
8f35f2f5b5 More protocol details, add property parser
Example output for parse-props.py:

    download cable             = 'USER'
    battery level              = 100
    download type              = ' '
    download speed             = 0
    usb version                = ' '
    hardware revision          = 'rev_10'
    download sw version        = ' '
    device sw version          = 'D85520t'
    secure device              = 'S'
    laf sw version             = '1.1'
    device factory version     = 'LGD855AT-00-V20t-EUR-XX-AUG-18-2015-16G+0'
    device factory out version = 'LGD855AT-00-V20t-GLOBAL-COM-AUG-18-2015-16G+0'
    pid                        = 'YE01S151002002500'
    imei                       = (redacted)
    model name                 = 'LG-D855'
    device build type          = 'U'
    chipset platform           = 'msm8974'
    target_operator            = 'GLOBAL'
    target_country             = 'COM'
    ap_factory_reset_status    = 3
    cp_factory_reset_status    = 0
    isDownloadNotFinish        = 0
    qem                        = 0
    cupss swfv                 = 'A1439892730-M1439892730-C1439940554-U1439940554-0'
    is one binary dual plan    = 0
    memory size                = 30777344
    memory_id                  = 'SDW16G\n'
    bootloader_ver             = 'MiniOS 3.0'
2015-12-25 15:16:42 +01:00
Peter Wu
eed04da13f udev rules 2015-12-25 00:05:37 +01:00
Peter Wu
0871e23c06 Auto-detect serial port on Windows 2015-12-24 23:58:34 +01:00
Peter Wu
ad8977611f Add '-c' option, workaround Windows crash
Fixes "AttributeError: 'NoneType' object has no attribute 'isatty'" for

    echo ls | lglaf.py --serial com4

Adding "python" avoids the crash.
2015-12-24 22:19:47 +01:00
Peter Wu
d5b3ae382f lglaf.py: Initial commit
Tested on Linux only.
2015-12-24 20:03:07 +01:00
Peter Wu
c88a4289e7 Initial commit of docs 2015-12-24 20:03:03 +01:00