mirror of
https://github.com/mbirth/tcl_ota_check.git
synced 2024-11-09 22:06:47 +00:00
127 lines
4.5 KiB
Markdown
127 lines
4.5 KiB
Markdown
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/mbirth/tcl_ota_check/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/mbirth/tcl_ota_check/?branch=master)
|
|
[![Build Status](https://scrutinizer-ci.com/g/mbirth/tcl_ota_check/badges/build.png?b=master)](https://scrutinizer-ci.com/g/mbirth/tcl_ota_check/build-status/master)
|
|
[![Code Intelligence Status](https://scrutinizer-ci.com/g/mbirth/tcl_ota_check/badges/code-intelligence.svg?b=master)](https://scrutinizer-ci.com/code-intelligence)
|
|
|
|
|
|
TCL OTA Check
|
|
=============
|
|
|
|
This is a Python script originally created by [thurask](https://gist.github.com/thurask) ([original
|
|
GIST](https://gist.github.com/thurask/f4ace564e6575ef41c4e35d2458ca2d0)) 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](http://wiki.mbirth.de/know-how/hardware/blackberry-keyone/bb-keyone-ota-updates-for-different-variants.html).
|
|
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.
|
|
|
|
|
|
### tclfindprd.py
|
|
|
|
Scans for not yet known variants of a model.
|
|
|
|
|
|
### tclfindprd2.py
|
|
|
|
Scans for not yet known models.
|
|
|
|
|
|
### tclfindver.py
|
|
|
|
Scans for not yet known firmware versions.
|
|
|
|
|
|
### tclgapfill.py
|
|
|
|
Queries the [database server](https://tclota.birth-online.de/) 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.
|
|
|
|
|
|
### tcldown.py
|
|
|
|
Downloads a firmware file from given file ID.
|
|
|
|
|
|
### update_db.py
|
|
|
|
Updates local copy of database.
|
|
|
|
|
|
### upload_logs.py
|
|
|
|
Uploads all collected server answers to the [database server](https://tclota.birth-online.de/).
|