1
0
mirror of https://github.com/mbirth/tcl_ota_check.git synced 2024-11-09 22:06:47 +00:00
tcl_ota_check/README.md

117 lines
4.4 KiB
Markdown
Raw Normal View History

2018-02-14 23:29:07 +00:00
[![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)
2017-08-17 12:31:29 +01:00
TCL OTA Check
=============
2017-08-17 12:36:09 +01:00
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.
2017-09-17 19:51:50 +01:00
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:
2017-09-17 19:51:50 +01:00
./tclcheck_allota.py AAM481
2017-09-17 19:51:50 +01:00
You'll get an output like this:
2017-09-17 19:51:50 +01:00
```
List of latest OTA firmware from AAM481 by PRD:
2017-09-17 19:51:50 +01:00
...
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.
### 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](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.
### upload_logs.py
Uploads all collected server answers to the [database server](https://tclota.birth-online.de/).