1
0
mirror of https://github.com/mbirth/wiki.git synced 2024-12-26 23:14:06 +00:00

New posts about BlackBerry KEYone device.

This commit is contained in:
Markus Birth 2017-09-16 00:20:42 +02:00
parent 4982ebb200
commit 9ef85da8b2
Signed by: mbirth
GPG Key ID: A9928D7A098C3A9A
4 changed files with 313 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -0,0 +1,21 @@
---
title: BlackBerry KEYone
layout: default
language: en
created: 2017-09-15 18:07:26 +0200
updated: 2017-09-15 18:07:26 +0200
toc: false
tags:
- know-how
- hardware
- blackberry
- android
- keyone
---
![BlackBerry KEYone]({{ site.url }}/assets/blackberry-keyone.jpg)
<ul>
{% for page in site.categories.blackberry-keyone %}
<li><a href="{{ page.url }}">{{ page.title }}</a></li>
{% endfor %}
</ul>

View File

@ -0,0 +1,55 @@
---
title: MMI Test and Engineering Mode on the BlackBerry KEYone
layout: default
language: en
created: 2017-06-30 18:05:00 +0200
updated: 2017-06-30 18:05:00 +0200
toc: false
tags:
- know-how
- hardware
- blackberry
- keyone
- hidden
- mmi
- testmode
- engineering
- mode
---
<p><div class="notewarning" markdown="1">
**USE THESE AT YOUR OWN RISK!** Especially the Engineering Mode has a few options which can trigger
DTEK (showing your OS as compromised) and probably do worse.
</div></p>
(These codes seem to be standard for Alcatel phones. Interestingly, they work here, too.)
MMI Test
========
This is similar to the BBVE and provides various tests for all phone components. To open it, open
your phone dialer and type this:
<kbd>*</kbd> <kbd>#</kbd> <kbd>2<br/>ABC</kbd> <kbd>8<br/>TUV</kbd> <kbd>8<br/>TUV</kbd> <kbd>6<br/>MNO</kbd> <kbd>#</kbd> ("AUTO")
To test single components or get traceability information (PRD number, manufacturing date, etc.),
tap "MANU". The buttons "AUTO1" and "AUTO2" run several tests automatically. To exit the test mode,
tap "MANU" and find the "Exit" option at the end of the list.
Engineering Mode
================
This mode has a few settings (black font on black background - hold your finger above where the
text should be for the background to become grey, making the text visible).
<kbd>*</kbd> <kbd>#</kbd> <kbd>*</kbd> <kbd>#</kbd> <kbd>2<br/>ABC</kbd> <kbd>6<br/>MNO</kbd> <kbd>3<br/>DEF</kbd> <kbd>7<br/>PQRS</kbd> <kbd>6<br/>MNO</kbd> <kbd>4<br/>GHI</kbd> <kbd>3<br/>DEF</kbd> <kbd>#</kbd> <kbd>*</kbd> <kbd>#</kbd> <kbd>*</kbd> ("ANDROID")
<p><div class="noteimportant" markdown="1">
After enabling "root", some apps might be able to modify system settings and thus making DTEK show
the system as "compromised". The only way to reset this is to do a factory reset.
</div></p>

View File

@ -0,0 +1,237 @@
---
title: BlackBerry KEYone OTA updates for different variants
layout: default
language: en
created: 2017-09-15 20:32:10 +0200
updated: 2017-09-15 20:32:10 +0200
toc: false
tags:
- know-how
- hardware
- blackberry
- keyone
- ota
- updates
- firmware
---
Variants and update situation
=============================
The KEYone is sold as different models: BBB100-1 (US model), BBB100-2 (EMEA model), etc. And each
model is distributed in multiple variants, expressed in the last 3 digits of the PRD number.
Here are a few models and variants:
| Model | PRD number | Variant |
|------------|---------------|:-----------------------|
| BBB100-1 | PRD-63116-001 | Unlocked US |
| BBB100-1 | PRD-63116-003 | Bell |
| BBB100-1 | PRD-63116-005 | Rogers |
| BBB100-1 | PRD-63116-036 | AT&T |
| BBB100-2 | PRD-63117-003 | Unlocked UK |
| BBB100-2 | PRD-63117-011 | Unlocked Germany |
| BBB100-2 | PRD-63117-015 | NL, Belgium |
| BBB100-2 | PRD-63117-023 | AZERTY Belgium |
| BBB100-2 | PRD-63117-027 | Unlocked UAE |
| BBB100-3 | PRD-63118-001 | Unlocked |
| BBB100-4/5 | PRD-63734-001 | Unlocked |
| BBB100-4/5 | PRD-63734-002 | Unlocked? |
| BBB100-6 | PRD-63763-001 | Unlocked |
| BBB100-7 | PRD-63764-001 | Unlocked |
While the variants of a model all have the same hardware, the different variants allow for
different features being enabled, e.g. for different carriers.
The downside is that different carriers also release updates at different times. Sometimes weeks to
months after other variants got them already. Luckily, all different variants of a model seem to
use the same firmware. This allows to install updates from another variant should they not be
available for the own device.
Update process in general
=========================
On the KEYone, there's an app called *Updates* pre-installed which sends the device's PRD number
and current firmware version to TCL's servers which then reply with "There's no update for you." or
the link to the update file.
The app then downloads said file and puts it at the right location so the Android bootloader can
find and install it.
Such OTA update contains a script with all instructions about what is to be updated. This script
also does various checks first to make sure it can be installed properly. So the risk using the
method described below is very small as a wrong update would abort automatically.
Enabling advanced mode in Updates app
=====================================
The *Updates* app on the KEYone has a hidden advanced mode with additional features. You can
activate that by tapping the three dots in the upper right and selecting *Help* to get to the
help screen. There, tap 8 times on the last item *Checking for updates*. A dialog box will appear
asking you for a password.
The password can be obtained by decompiling the APK file for the Updates app, either using some
[online service](http://www.javadecompilers.com/apk) or [an app](https://play.google.com/store/apps/details?id=com.njlabs.showjava)
and looking at the `/com/tcl/ota/AdvancedModeValidateFragment.java` file.
<!-- Password: fotaapp*#1221# -->
After you've entered the correct password, three new menu items appear in the Updater's main menu:
*Update manually*, *FOTA test* and *Project test*.
Menu item: Update manually
--------------------------
This one allows you to install a full firmware update manually from the device. You need to name
the update file something like `JSU_PRD-63117-123.zip` (replace the PRD number with that of your
device) and put it in the root directory of your MicroSD card or the internal storage.
It should then appear in this menu in the *Updates* app. You can install it by tapping the three
dots behind the filename and select *Install*.
Menu item: FOTA test
--------------------
Here you can simulate different phone models/variants with different firmware versions and test
if the updater works correctly. **This is exactly what we need during the process below.**
Menu item: Project test
-----------------------
This menu item shows a few parameters like your PRD number (called *Device CU Reference* here),
current firmware version, your IMEI and a few more parameters. You can also test the notification
Spark in the BlackBerry Launcher and the Play Services.
Finding out which variant gets what update
==========================================
OTAs are always 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.
To find out which updates are available for which variant, I found [this script](https://gist.github.com/thurask/f4ace564e6575ef41c4e35d2458ca2d0)
which I rewrote and improved. My version can be found here:
<https://github.com/mbirth/tcl_ota_check>
After downloading or cloning the repository, edit the `tclcheck_all.py` and change the `fc.fv`
variable to your current firmware version. 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`. So change the
line with `fc.fv` to:
fc.fv = "AAM481"
Also change the `fc.mode` line to:
fc.mode = fc.MODE_OTA
Now run the script. You'll get an output like this:
~~~
List of latest OTA (from AAM481) firmware 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, Belgiums))
PRD-63117-019: AAM481 ⇨ AAN358 d819919187b46793abeaeff60dd6deee17baac4b (BBB100-2)
PRD-63117-023: AAM481 ⇨ AAN358 d819919187b46793abeaeff60dd6deee17baac4b (AZERTY BBB100-2 (Belgiums))
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.
Just pick one, let's say `PRD-63117-011`.
Doing the actual update
=======================
Now that we've chosen a variant that has the update we want, we just have to make the updater
think our device is that variant.
To do this, go into the new menu *FOTA test* and there:
1. enable **Test mode**
1. set the *Emulated CU Reference* to the chosen variant: `PRD-63117-011`
1. set the *Emulated current version* to your current version: `AAM481`
1. tap the <kbd>START TEST</kbd> button below
You should end up back in the updater's start screen. Tap the **CHECK FOR UPDATES NOW** button.
It should search for updates and find the OTA to version `AAN358`. It should also start to download
the new version. When done, tap the button to start the installation.
Your phone will reboot and install the update. It'll boot up to the new version.
<p><div class="notetip" markdown="1">
In the case of the `PRD-63117-003` variant and assuming a time of mid-September 2017, the just
installed `AAN358` isn't the latest version. There's a newer `AAO472` version available. So change
the `fc.fv` line in the `tclcheck_all.py` to `AAN358` and run it again. You'll find out that only
the variant `PRD-63117-034` is currently getting the OTA update to `AAO472`. Enter that into the
*Emulated CU Reference* field in the *Updates* app, change the *Emulated current version* to the
just installed `AAN358` and tap <kbd>START TEST</kbd> again. It'll show the second update and let you
install that.
(If the updater started to download the previous update file again, remove it like explained in
the *Cleanup* section.)
</div></p>
Cleanup
=======
Disabling test mode
-------------------
After you've updated your device, it's important to disable the **Test mode** of the *Updates* app
so it will notify you of further updates. To do this, go into the *FOTA test* menu and slide the
switch for *Test mode* into the "off" position.
Removing already downloaded update
----------------------------------
It might happen that the updater starts to download the same update (which we just installed)
again. If that happens to you, first make sure the **Test mode** is disabled (see above), then go
into the updater's *Settings* menu. You should find an entry about the downloaded file with a
dustbin/trashcan icon. Tap that to delete the wrong file.
Disabling advanced mode
-----------------------
There's no built-in way to disable the advanced mode of the *Updates* app. So the only way is to
reset all settings for the app itself. To do this, you need to go into the Android settings →
*Apps*. There, tap the three dots menu and select *Show system*. Now scroll down the list to tap
the *Updates* app. There, tap *Storage* and hit the <kbd>CLEAR DATA</kbd> button. After that, the
*Updates* app is in "Basic" mode again.
*[APK]: Android Package
*[CU]: Customer Unit
*[EMEA]: Europe, Middle East, Africa
*[FOTA]: Firmware Over-the-Air
*[IMEI]: International Mobile Equipment Identity
*[OTA]: Over-the-air
*[PRD]: Product Requirements Documents
*[UAE]: United Arab Emirates
*[UK]: United Kingdom
*[US]: United States (of America)