cyxx / extract_android_ota_payload

Extract firmware images from an Android OTA payload.bin file
MIT License
446 stars 92 forks source link

Python 2 is EOL #9

Closed DuBistKomisch closed 4 years ago

DuBistKomisch commented 5 years ago
 $ python ~/src/extract_android_ota_payload/extract_android_ota_payload.py payload.bin payload
Traceback (most recent call last):
  File "/home/jake/src/extract_android_ota_payload/extract_android_ota_payload.py", line 14, in <module>
    raise Exception("Python 2.x is required")
Exception: Python 2.x is required

and warning from pip2 install -r requirements.txt

DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7

dhananjaygbhardwaj commented 4 years ago

On macOS 10.15 (python3, pip3, and protobuf installed)

Used: python3 extract_android_ota_payload.py payload.bin

Got the following:

dhananjay@Dhananjays-MacBook-Air extract_android_ota_payload-master % python3 extract_android_ota_payload.py payload.bin
Traceback (most recent call last):
  File "extract_android_ota_payload.py", line 14, in <module>
    raise Exception("Python 2.x is required")
Exception: Python 2.x is required

If I simply use the inbuilt Python 2.7:

dhananjay@Dhananjays-MacBook-Air extract_android_ota_payload-master % python extract_android_ota_payload.py payload.bin 
Extracting 'LOGO.img'
Traceback (most recent call last):
  File "extract_android_ota_payload.py", line 145, in <module>
    main(filename, output_dir)
  File "extract_android_ota_payload.py", line 124, in main
    parse_payload(payload, p, out_f)
  File "extract_android_ota_payload.py", line 99, in parse_payload
    r = decompress_payload('xzcat', data, e.num_blocks * BLOCK_SIZE, operation.data_sha256_hash)
  File "extract_android_ota_payload.py", line 82, in decompress_payload
    p = subprocess.Popen([command, '-'], stdout=subprocess.PIPE, stdin=subprocess.PIPE)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 394, in __init__
    errread, errwrite)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1047, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
cyxx commented 4 years ago

Changes for python 3 have been merged (#12).

The script also require having 'bzcat' and 'xzcat' in PATH.