Manually updating a Blackberry Z10 with a new OS10 version
… and to make things more complicate, doing it under GNU/Linux instead of Windows.
Before we begin: I’m not responsible for damages caused by following this guide. It is primarily for my own private purpose of not forgetting stuff. Feel free to follow that guide. If you break your beloved BB I can’t be taken responsible for your actions. Please don’t bother me with any problems you might encounter and don’t ask me any questions. Use a search engine and type in your question. If you have any enhancements feel free to drop me a mail (see ‘whois christianroessler.net’ for my address). Please turn on your brain and use it before copy+paste stuff from the internet.
There is a new BlackBerry OS10 Release available, but my Carrier did not (and probably never will) check and confirm/release that update so blackberry can push it to all the devices. In what a world do we live, that a cell-provider decides on whether a operating system update will be pushed to their users or not. OMFG
Whatever. Here I am, owning a great Blackberry device, knowing there is a new version out in the field but cannot get to install that new version as it isn’t approved by my carrier. There is no way to get my OS updated via OTA (over the air, via wireless).
I’m using a great tool known as Sachesi to communicate with my blackberry device. With that I’m able to backup, restore, update my device from within Linux. No need having Windows, Blackberry-Link and hand-crafted Autoupdater-exe-Files god knows where they come from.
Connect the blackberry device to pc via usb
Make sure ifconfig shows usb0 or usb1 with an ip address. If not run the following staments to assign that device (the z10) an ip address so that sachesi can communicate with it:
$ sudo dhclient -v -d usb0 Internet Systems Consortium DHCP Client 4.3.1 Copyright 2004-2014 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/usb0/96:eb:cd:26:77:12 Sending on LPF/usb0/96:eb:cd:26:77:12 Sending on Socket/fallback DHCPREQUEST on usb0 to 255.255.255.255 port 67 DHCPNAK from 169.254.15.137 DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 5 DHCPREQUEST on usb0 to 255.255.255.255 port 67 DHCPOFFER from 169.254.15.137 DHCPACK from 169.254.15.137 bound to 169.254.15.138 -- renewal in 234637 seconds. CTRL+C
Check the usb0 interface again:
$ sudo ifconfig usb0 usb0 Link encap:Ethernet HWaddr 96:eb:cd:26:77:12 inet addr:169.254.15.138 Bcast:169.254.15.139 Mask:255.255.255.252 inet6 addr: fe80::94eb:cdff:fe26:7712/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:58 errors:0 dropped:0 overruns:0 frame:0 TX packets:105 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:22980 (22.4 KiB) TX bytes:14618 (14.2 KiB)
You might need to install libqt… something via apt-get…
Sachesi must connect to your blackberry device, see Tab “Device”. If not, redo the steps above and make sure usb0 has an ip address, otherwise your linux cannot communicate with the bb-device.
Below is a Screenshot showing Sachesi with my updated Blackberry device:
Do a backup of your blackberry
Tab “Backup” - check all checkboxes, click button “create backup”. Always a good idea having a backup at hand!
Use sachesi to search for new bb os 10 release files
Sachesi has two methods finding updates.
The first one we’re not using here, searches for a specified device+country+cell-provider combination for any approved updates. None of my blackberry-updates got approved by my provider except the earliest first one which upgraded OTA to 10.3.1.x. That’s the whole point of this article - if my cellprovider had approved BB10-updates, I could have updated from within by BB via OTA (wifi, search for updates) and must not use Sachesi… Now you know. Costs me a few hours to understand that situation.
The second method tries to search for download URLs from blackberry download-servers (CDNs to be specific), this might take a while, so sit back or scan the crackberry-forums for news.
Tab “Search”, Button “Version Lookup”, check “Next Available Links” to only show versions with downloadable files. Click button “Autoscan” to start searching for Downloads.
The version-increment is 3 for whatever reason…
Once you found a new production (i don’t want to try out beta-releases) capable download, click “Grab Public links”.
That will open a editor with the following contents:
That file contains the Blackberry OS 10 Files for each OS10-device available. We just need the files for our device which is the Z10 (STL 100-2).
Download all the files for your particular device.
- Radio (25 MB)
- CoreOS (365 MB)
- Debrick (2 GB)
When finished, unzip the debick file into a subfolder
$ unzip -d "Debrick" qc8960.factory_sfi.desktop-10*.bar
and delete that file (or move to another location please).
When done, utilize Sachesi to extract all apps from the resulting 3GB *signed file. Tab Extract - Button “Extract Apps”, choose *.signed file (~3GB).
Now move the resulting application-bar files back into the folder, where the Radio and Core-OS *.bar reside in. The result must be a folder having
- The Radio bar file which is about 25 MB.
- The Core OS bar file which is about 365 MB.
- And all the extracted apps (about 250 files) from the debrick bar which was about 2 GB before uncompressing/extracting.
Installing the new OS and APPS
Using Sachesi, Tab “Install” select the checkbox “Only install newer apps”. Then click the button “Install Files” and select all the files from the folder where all the *.bar files reside in (Radio, CoreOs, all Apps). Once chosen, the upgrade process begins immediatly!
Now sit back, this will take a while. When finished turn off your blackberry and start it again. The boot process will take a long time (about 10 minutes) as the operating system upgrade will be finished and stuff will be made…
Remove unwanted apps
One can remove systems apps using Sachesi too. Tab “Install”, check those apps you want to uninstall, then rightclick + “Uninstall Marked”.
The following apps can be removed without hesitation, the others i’m not sure. At least I’m not interested in that apps so I ditched them.
- except sys.data.imf.root !!! and *.en_US or *.de_DE, that ones you like/use