1
0
mirror of https://github.com/mbirth/tcl_ota_check.git synced 2024-09-19 22:33:25 +01:00
Go to file
2018-02-10 03:30:10 +01:00
tcllib Added new style EncryptHeaderRequest. tclcheck.py completely working 2018-02-10 03:30:10 +01:00
.gitignore Start modularising tcllib. 2018-02-02 03:33:53 +01:00
.scrutinizer.yml Changed excluded lib path for Scrutinizer. 2018-02-05 13:31:37 +01:00
README.md Updated README. Moved pretty_xml outside of class. 2018-02-05 13:20:15 +01:00
requirements.txt Require wheel for numpy setup. 2017-11-02 02:03:47 +01:00
tclcheck_allfull.py Cleanup. 2018-02-10 02:37:10 +01:00
tclcheck_allota.py Cleanup. 2018-02-10 02:37:10 +01:00
tclcheck_findprd2.py add force local db switches 2018-02-09 15:41:12 -05:00
tclcheck_findprd.py add force local db switches 2018-02-09 15:41:12 -05:00
tclcheck_findver.py Use new Device classes in ALL the features! 2018-02-07 01:49:44 +01:00
tclcheck_gapfill.py Use new Device classes in ALL the features! 2018-02-07 01:49:44 +01:00
tclcheck.py Added new style EncryptHeaderRequest. tclcheck.py completely working 2018-02-10 03:30:10 +01:00
tclchksum.py Updated README. Moved pretty_xml outside of class. 2018-02-05 13:20:15 +01:00
tcldown.py Use new Device classes in ALL the features! 2018-02-07 01:49:44 +01:00
upload_logs.py docstring all the things 2018-02-03 16:25:26 -05:00

TCL OTA Check

This is a Python script originally created by thurask (original GIST) to check for update files for a BlackBerry KEYone phone. It tries to emulate the requests done by the "Updater" app or the "Mobile Q Loader" firmware updater.

What is a FOTA/OTA?

(F)OTA = (Firmware) Over-the-Air

OTAs are differential(!) updates for a specific firmware version to a newer one. To install it, you must have the correct initial firmware installed. Otherwise, the updater script will fail and abort the update.

How to find available OTA updates

After downloading or cloning the repository, make all tclcheck*.py scripts executable if needed. Let's assume you have a UK BBB100-2, so your PRD would be PRD-63117-003 and as of September 2017, your firmware version would be AAM481. Just run the following script:

./tclcheck_allota.py AAM481

You'll get an output like this:

List of latest OTA firmware from AAM481 by PRD:
...
PRD-63117-003 failed. (No update available.)
PRD-63117-011: AAM481 ⇨ AAN358 d819919187b46793abeaeff60dd6deee17baac4b (QWERTZ BBB100-2 (Germany))
PRD-63117-015: AAM481 ⇨ AAN358 d819919187b46793abeaeff60dd6deee17baac4b (BBB100-2 (NL, Belgium))
PRD-63117-019: AAM481 ⇨ AAN358 d819919187b46793abeaeff60dd6deee17baac4b (BBB100-2)
PRD-63117-023: AAM481 ⇨ AAN358 d819919187b46793abeaeff60dd6deee17baac4b (AZERTY BBB100-2 (Belgium))
PRD-63117-025 failed. (No data for requested CUREF/FV combination.)
PRD-63117-027: AAM481 ⇨ AAN358 d819919187b46793abeaeff60dd6deee17baac4b (QWERTY BBB100-2 (UAE))
PRD-63117-028: AAM481 ⇨ AAN358 d819919187b46793abeaeff60dd6deee17baac4b (BBB100-2)
PRD-63117-029: AAM481 ⇨ AAN358 d819919187b46793abeaeff60dd6deee17baac4b (BBB100-2)
PRD-63117-034 failed. (No data for requested CUREF/FV combination.)
PRD-63117-036 failed. (No data for requested CUREF/FV combination.)
PRD-63117-037 failed. (No data for requested CUREF/FV combination.)
PRD-63117-041: AAM481 ⇨ AAN358 d819919187b46793abeaeff60dd6deee17baac4b (BBB100-2)
PRD-63117-042 failed. (No data for requested CUREF/FV combination.)
PRD-63117-703 failed. (No data for requested CUREF/FV combination.)
PRD-63117-704 failed. (No data for requested CUREF/FV combination.)
PRD-63117-717 failed. (No data for requested CUREF/FV combination.)
...

As you can see, our PRD-63117-003 variant doesn't have the update yet, but other variants have.

You can use this info, to install the update for a different variant. Just make sure to use a variant that has the same model number (63117 = BBB100-2).

What do those other scripts do?

(All commands support the --help parameter to print out the expected syntax.)

tclcheck_allfull.py

Checks for the latest FULL (i.e. complete firmwares to install manually) versions available for all different models and variants.

tclcheck_allota.py

Checks for the latest OTA (i.e. partial updates for over-the-air installation) versions available for all different models and variants.

tclcheck_findprd.py

Scans for not yet known variants of a model.

tclcheck_findprd2.py

Scans for not yet known models.

tclcheck_findver.py

Scans for not yet known firmware versions.

tclcheck_gapfill.py

Queries the database server for known versions and tries to find OTA files not yet in the database.

tclcheck.py

Universal tool to query TCL's servers in different ways to manually check for a specific update.

tclchksum.py

Queries the checksum for a specific FULL file.

upload_logs.py

Uploads all collected server answers to the database server.