Tag BlackBerry

BlackBerry Z10 is Killing My WiFi Router

Few days ago I've resurrected my BlackBerry Z10 only to find out that it kills my WiFi router shortly after connecting to the network. It looks like many people are having the same problem with BlackBerry but most forum threads don't offer a meaningful solution so I did some tests.

Everything works fine when WiFi mode is set to either 11bgn mixed or 11n only and WiFi security is disabled.

When using WPA2/Personal security mode and AES encryption the problem occurs regardless of which WiFi mode is used. There is another type of encryption called TKIP but the device itself warns that this is not supported by the 802.11n specification (all my devices use it anyway).

So to recap: BlackBerry Z10 causes my TP-Link router to die if using WPA2/Personal security with AES Encryption. Switching to open network with MAC address filtering works fine!

I haven't had the time to upgrade the firmware of this router and see if the problem persists. Most likely I'll just go ahead and flash it with OpenWRT.

There are comments.

Exploring BlackBerry 10 - Environment Variables

Just a quick reference of environment variables as seen by the BGshellPlusFree terminal app.

KSH_VERSION='@(#)PD KSH v5.2.14 99/07/13.2'
PS1='$ '
PS2='> '
PS3='#? '
PS4='+ '
RADIO_NET_IF_LIST=' cellular0 cellular1 cellular2 cellular3 cellular4'

There are comments.

Exploring BlackBerry 10 - Application Security Model

BlackBerry 10 OS application security model is enforced by two major components: app permissions and filesystem access privileges.

Also it looks like that each app is assigned a separate group id. Below is a listing of my currently installed apps as seen from devuser. An application can't execute another apps (e.g. exec) as far as I can see. Not possible with the shell app either.

I think I will have to bundle all command line tools together with a shell into a single app so the shell is able to invoke any of the commands that are not system standard. I'm not liking this very much!

$HOME is inside the app space too :(. See my other post about environment variables.

$ pwd

$ ls -l appdata/ appserv/

total 552
drwxr-x---   6 apps      10143          4096 Jul 25 16:22 com.BGmot.BGshellPlusFree.gYABgHVtFpaI1Xhiaw0hMuCbPNk
drwxr-x---   6 apps      10141          4096 Jul 20 21:34 com.catikkas.jenkins10.gYABgOZDFJiaJUObnHnYGyedaJE
drwxr-x---   6 apps      10134          4096 Jul 17 09:02 com.example.Chat_1.gYABgLTE22iUbVEQqMQWh1h8qGw
drwxr-x---   6 apps      10003          4096 Jul 13 01:56 com.foursquare.blackberry.gYABgBY3zYaCRi7CDRw5ChZRJ18
drwxr-x---   6 apps      10004          4096 Jul 12 22:26 com.linkedin.gYABgPilB6lwL6lsxmVwDOfmbO8
drwxr-x---   6 apps      10145          4096 Jul 27 22:05 com.mappau.SystemInformation.gYABgPYOA670hrzAeZ.Eg91JZFU
drwxr-x---   6 apps      100051000      4096 Jul 12 23:04 com.rim.bb.app.adobeReader.gYABgAxBqJsMx5M..e.RfW5WpTU
drwxr-x---   6 apps      10006          4096 Jul 13 00:06 com.rim.bb.app.facebook.gYABgDLo0nc9AhDgv2JAPixdyvQ
drwxr-x---   6 apps      10123          4096 Jul 23 13:32 com.rim.bb.app.newsstand.gYABgIYcPYRGuuoXUB7e7VfgiaA
drwxr-x---   6 apps      10116          4096 Jul 13 01:16 com.savvysaurus.RssSavvy.gYABgCcU_QDmZyIEIHfBoxukmi4
drwxr-x---   6 apps      100021000      4096 Jul 12 22:39 com.tcs.maps.gYABgCxm2rf5o5xfFP8dPCQnlJY
drwxr-x---   6 apps      10009          4096 Jul 12 22:18 com.twitter.gYABgMxtkHoH6S4G1_Ff5yu0E.I
drwxr-x---   6 apps      10138          4096 Jul 18 21:27 helex.NativeFlash.gYABgHc51xjJK7eHzYQIH2y6hxA
drwxr-x---   6 apps      air_services      4096 Jul 12 21:57 sys.airservices
drwxr-x---   6 apps      100131000      4096 Jul 13 02:24 sys.airtunes.gYABgCWWhIycHhiFjXeIyW1Qvpo
drwxr-x---   6 apps      10014          4096 Jul 12 23:26 sys.android.gYABgKAOw1czN6neiAT72SGO.ns
drwxr-x---   6 apps      10015          4096 Jul 12 23:26 sys.android.shell.gYABgCWpLq.7ipa6NFYT0JaLpt8
drwxr-x---   6 apps      10016          4096 Jul 12 21:58 sys.appworld.gYABgNSvaLtte_snIx7wjRsOcyM
drwxr-x---   6 apps      10017          4096 Jul 12 21:58 sys.bbm.gYABgLOJBR2Vz7FzS.kdgJchuag
drwxr-x---   6 apps      100001000      4096 Jul 12 22:24 sys.browser.gYABgJYFHAzbeFMPCCpYWBtHAm0
drwxr-x---   6 apps      10032          4096 Jul 12 23:00 sys.calculator.gYABgJidBvuZ89m_1j4PV2712.A
drwxr-x---   6 apps      10034          4096 Jul 12 23:14 sys.camera.gYABgAvGHb4h9H5WeWdjQhXgeRM
drwxr-x---   6 apps      10124          4096 Jul 17 10:45 sys.cfs.box.gYABgJKe3gZus2hhkRPM4zcarBU
drwxr-x---   6 apps      10125          4096 Jul 17 10:45 sys.cfs.dropbox.gYABgKi0Cs_hMocaoCB7UgqkaIU
drwxr-x---   6 apps      10126          4096 Jul 15 14:25 sys.cfs.webdav.todtm.gYABgGnToZvN4bqMB3xslfel.KU
drwxr-x---   6 apps      10037          4096 Jul 14 22:21 sys.chat.gYABgADt.JeweQYFvYX28P5bwu0
drwxr-x---   6 apps      10038          4096 Jul 12 23:07 sys.clock.gYABgKNXug.mDFoFoYHLmJofAts
drwxr-x---   6 apps      10039          4096 Jul 12 22:53 sys.compass.gYABgM06vW4QuahSmSW7eBlHxb4
drwxr-x---   6 apps      100101000      4096 Jul 12 22:59 sys.dxtg.launcher.gYABgHFqGG632tetjwVL_egrHHc
drwxr-x---   6 apps      100121000      4096 Jul 12 22:59 sys.dxtg.sstg.gYABgLhf.C6ER6tWA.ObKMKalQU
drwxr-x---   6 apps      100111000      4096 Aug 01 22:55 sys.dxtg.stg.gYABgKF.gjTVTclxOrZ0RRQcoTc
drwxr-x---   6 apps      100871000      4096 Jul 15 00:40 sys.dxtg.wtg.gYABgKH0JhT7tasXrfXUyNxNaew
drwxr-x---   6 apps      100431000      4096 Jul 14 23:30 sys.filepicker.gYABgBUOB4WQ4V0f7gH0kMCrcVA
drwxr-x---   6 apps      10001          4096 Jul 12 21:58 sys.firstlaunch.gYABgE1L_lY.sjW85E1SCBQsrco
drwxr-x---   6 apps      10044          4096 Jul 12 22:53 sys.games.gYABgCM5htxnRwx8VmvFMD0Hbj4
drwxr-x---   6 apps      100451000      4096 Jul 12 23:05 sys.help.gYABgPG.Su8AzxaqqONbaanIprc
drwxr-x---   6 apps      keyboard       4096 Jul 12 21:57 sys.keyboard
drwxr-x---   6 apps      100471000      4096 Jul 27 21:36 sys.mediaplayer.gYABgHtLSIC4bjdb005eaW5ixzU
drwxr-x---   6 apps      10049          4096 Jul 12 23:00 sys.mmagic.gYABgGN_jnGTnVoC_K.mfaBq87g
drwxr-x---   6 apps      nto            4096 Jul 12 21:57 sys.navigator
drwxr-x---   6 apps      100511000      4096 Jul 12 22:24 sys.notification_card.gYABgLyFNMkTny6ihJLjaG02jUU
drwxr-x---   6 apps      10052          4096 Jul 17 10:38 sys.paymentsystem.gYABgPLIJa_bijh7gGqV5LuyCK4
drwxr-x---   6 apps      100531000      4096 Jul 12 23:03 sys.perimeterbrowser.gYABgMgpl40MVrFkZvPEXRuQTGE
drwxr-x---   6 apps      10054          4096 Jul 12 22:01 sys.phone.gYABgB3m3BHdGLR4aicCyzCVsYQ
drwxr-x---   6 apps      10055          4096 Jul 15 00:42 sys.phone_settings.gYABgP8tnMCm3UDXaovgTHoEZB4
drwxr-x---   6 apps      100561000      4096 Jul 15 21:08 sys.pictureeditor.gYABgIRm37_owYKt4P0uCEhSj.o
drwxr-x---   6 apps      100571000      4096 Jul 12 22:01 sys.pictures.gYABgFZ.pCiYHqciL1zClEPjmps
drwxr-x---   6 apps      100581000      4096 Jul 15 16:29 sys.picturesviewer.gYABgFKlvDBH.tdV7sGqIDZHnNY
drwxr-x---   6 apps      10033          4096 Jul 12 22:10 sys.pim.calendar.gYABgG0xvpxP1jARa6DD5o.VL8A
drwxr-x---   6 apps      10059          4096 Jul 16 09:15 sys.pim.calendar.viewer.eventcreate.gYABgBtmuosCGVI3YO1ImfFgbgY
drwxr-x---   6 apps      100601000      4096 Jul 12 22:26 sys.pim.calendar.viewer.ics.gYABgMsLIpp41sIscDzLSeRZuIQ
drwxr-x---   6 apps      10040          4096 Jul 12 22:14 sys.pim.contacts.gYABgGsAOuzqCT1fu5Zx4sqrJdY
drwxr-x---   6 apps      100621000      4096 Jul 12 22:23 sys.pim.email.card.gYABgHLnJMGjgoIAsdeYM2JzUsU
drwxr-x---   6 apps      10063          4096 Jul 13 01:49 sys.pim.email.composer.card.gYABgGkBKIp75QI99dsGTdrb5IE
drwxr-x---   6 apps      10064          4096 Jul 12 21:58 sys.pim.messages.gYABgJ8jn83Ok_NEWYplPYozt5w
drwxr-x---   6 apps      10065          4096 Jul 12 23:00 sys.pim.remember.gYABgF9PcqaN7GRKPlDPuqOyda0
drwxr-x---   6 apps      100671000      4096 Jul 12 23:03 sys.printoutstogo.gYABgPMP3nxNZlNieZUDetUiQio
drwxr-x---   6 apps      10068          4096 Jul 13 13:26 sys.search.gYABgPp5WMkB_07CE6wzbflslRQ
drwxr-x---   6 apps      10069          4096 Jul 12 22:02 sys.settings.gYABgFXZghhSmuJ6oBTACT1DwpQ
drwxr-x---   6 apps      10070          4096 Jul 12 22:01 sys.setupbuffet.gYABgCbSxd9WrFvFV8sJDoI7tlE
drwxr-x---   6 apps      10071          4096 Jul 16 09:18 sys.simtoolkit_ui_app.gYABgNsM_6zxbmp668bBbRexQiA
drwxr-x---   6 apps      10072          4096 Jul 12 23:05 sys.smarttags.gYABgNvWPl0Fpbeva2LkhFplXYY
drwxr-x---   6 apps      10073          4096 Jul 12 22:04 sys.socialconnect.facebook.gYABgPNVFtmlTnTGF_U0dFfTvgQ
drwxr-x---   6 apps      10074          4096 Jul 12 22:26 sys.socialconnect.linkedin.gYABgCUcHQzQnN9ZnpyVppfXHEQ
drwxr-x---   6 apps      10075          4096 Jul 12 22:18 sys.socialconnect.twitter.gYABgB2cPvkIcyPxzQPSK9Jx89U
drwxr-x---   6 apps      10079          4096 Jul 23 13:27 sys.vad.gYABgJPtEgEJTVKTkyq7_BalYto
drwxr-x---   6 apps      100811000      4096 Jul 12 22:37 sys.videoplayer.gYABgEydozZr9q.ClZkrItC9LMM
drwxr-x---   6 apps      10085          4096 Jul 12 22:47 sys.weather.gYABgKOf0EhVEWtCxrbBQ00sPSg
drwxr-x---   6 apps      10086          4096 Jul 12 21:58 sys.zbbiocm.gYABgDZcy0Sq5cvKqkoZgR3qJps

total 0
dr-xr-xr-x   2 root      nto               0 Aug 04 00:03 sys.cfs.box.gYABgJKe3gZus2hhkRPM4zcarBU
dr-xr-xr-x   2 root      nto               0 Aug 04 00:03 sys.cfs.dropbox.gYABgKi0Cs_hMocaoCB7UgqkaIU
dr-xr-xr-x   2 root      nto               0 Aug 04 00:03 sys.cfs.webdav.todtm.gYABgGnToZvN4bqMB3xslfel.KU

There are comments.

Laptop vs Smartphone, Part 1, Requirements

As some of you may know or have heard I'm in the process of ditching my Lenovo X220 in favor of a smartphone. The ultimate goal is to not need a personal computer at all and use only one device for all my processing needs. Everything else can be conveniently migrated to the cloud. The current favorite device is BlackBerry Z10 but that may change as I explore the smartphone world and my requirements.

This is my list of requirements, mainly for my own reference but you are welcome to comment and give me suggestions how to migrate.


| Requirement           | Lenovo X220        | BlackBerry Z10    | Notes             |
| Network Connectivity  | RJ-45, Wi-Fi,      | Wi-Fi, 3G         |                   |
|                       | 3G (optional)      |                   |                   |
|                       | or USB modem       |                   |                   |
| Battery Life          | 8 hrs idle, 9 cell | 13 days standby   | TBC               |
|                       | 5-6 hrs networking | 10 hrs talk (3G)  |                   |
| Display Size          | 1366x768, 96 DPI   | 1280x768, 356 PPI |                   |
| Sunlight Readable     | Very hard even at  | Yes, even at      | TBC               |
|                       | full brightness    | medium brightness |                   |
| Weight                | around 1,5 kg      | 136g              |                   |
| Docking Capability    | Integrated or USB  | unknown, N/A      | for desk usage    |
| External video/audio  | VGA,  3,5mm jack   | Micro HDMI, 3,5mm | presentation mode |
| External Connectivity | USB 2.0 and 3.0,   | micro USB 2.0,    |                   |
|                       | Bluetooth          | Bluetooth, NFC    |                   |
| Storage               | 320GB, ~ 50G used  | 16GB internal     | TODO: speed test  |
|                       |                    | 32GB microSD      |                   |
| RAM                   | 8GB                | 2GB               | TBC               |
|                       |                    | 1GB on Dev device |                   |
| CPU virtualization    | Yes, full virt     | No                | loading other OS  |
|                       |                    |                   | ** critical       |
| UPDATE 2013-08-03     | Yes                | No,               |** essential       |
| USB host mode         |                    | ETA 10.2 Aug 2013 |                   |


  • I need a test for the battery life of a smartphone in use and while traveling and connected to the Internet. Data shown is as given by manufacturer. Talking from experience the 10 hrs talk time are roughly equivalent to 10 hrs of Internet and apps usage. I have to charge my Z10 almost every day and I still don't use it that actively.

  • The displays of all recent smartphones are far better than notebooks. I can read my phone outside but haven't actually tried a direct sunlight exposure. Will do this and update with more info.

  • Speed storage may be an issue, although I don't use storage intensive applications. Will test this and report with more info.

  • RAM is a BIG issue. Currently my desktop utilizes around 4GB but on x86_64 objects are bigger (Python objects are 4x compared to i386). I've previously used an old Lenovo T60 with only 2GB of RAM and i386 environment. Didn't have any issues.

On Z10 the memory is not utilized in the best fashion. Something is eating away RAM and I'm left with around 150MB of free memory after some phone use. For one /tmp is mounted directly into RAM and some apps are misbehaving. I've seen a low cost Android tablets and phones running with 512MB of RAM. Need to investigate more.

  • Virtualization and most importantly USB pass-through is a critical issue. I have a proprietary smart-card electronic signature device which needs to continue working. I have no problems running a cloud instance but haven't figured out how to do USB pass-through between local hardware and cloud instance.

  • UPDATE 2013-08-03: USB host mode is essential for some docking hardware. This means that the phone will be able to connect to external USB devices such as USB drives or cameras. For more info read here and here.


Here things get hairy as I use quite a lot of software.

| Linux Software       | BlackBerry 10 OS    | Notes                                          |
| UPDATE 2013-08-02    | Built-in            | I need to check if BB encryption meets my      |
| LUKS/disk encryption |                     | enterprise requirements.                       |
| Bash shell           | v5.2.14 99/07/13.2  | I have no idea how compatible PD KSH is.       |
|                      |                     | For serious scripting I will need Bash anyway. |
| GNU Coreutils        |                     | Some tools are present but not all.            |
|                      |                     | No idea if GNU or other implementation (BSD)   |
| OpenSSH              |                     | There are some apps available, need to test UX |
| Serial console       |                     | I use several on Linux, mostly                 |
| access tools         |                     | `conserver-client`.                            |
| Kerberos tools       |                     | Internal apps I use authenticate with Kerberos |
| Cisco VPN            | Built-in            | Several GW types supported. Not tested.        |
| OpenVPN client       | N/A AFAIK           |                                                |
| Python 2.6           | Python 2.7 and 3.2  | `devuser` has no permissions to run Python 2.7 |
| Ruby                 |                     | Mostly for cloud related mgmt commands.        |
| Firefox              | built-in Browser    | Missing plugins functionality.                 |
| Thunderbird          | BlackBerry Hub      | Messaging experience on BB is quite cool but   |
| email & RSS          | RSS Savvy           | missing multiple sender addresses and RSS does |
|                      |                     | not integrate into BB Hub                      |
| Social Networks      | Stand alone apps    | Integrate well with BlackBerry Hub.            |
| Rhythmbox            | built-in player     | Not tested but I need to bookmark online radio |
| Totem (audio)        |                     | stations.                                      |
| Totem (video)        | built-in player     | Works fine, already watched MPEG v4 videos.    |
| Transmission         | N/A                 | No bittorrent client apps available but        |
|                      |                     | BB fork for Transmission exists on GitHub.     |
| Evince (PDF)         | Adobe Reader        | Not tested yet.                                |
| -                    | Kindle              | eBook reader, Android version. Works fine.     |
| Libre Office         | Docs To Go          | MS office compatible, displays presentations,  |
|                      |                     | limited editing, mostly read-only mode.        |
| Text Editor          | Several             | None tested yet.                               |
| Purple               | Yaairc              | I need IRC and XMPP (Gtalk) mostly. Dodo seems |
|                      | Dodo                | to have some issues, I can't receive messages. |
| Twinkle (SIP)        |                     | Several available but not tested.              |
| GIMP                 |                     | Image cropping and resizing mostly.            |
| Inkscape             |                     | Simple drawings and graphics.                  |
| CUPS (printing)      |                     | Should be able to print stuff.                 |
| xSane (scanner)      |                     | Documents scanning, can do pictures too.       |

I will describe my software use cases in details in a later update. Most important of all is a nice text editor to write code and text (mainly this blog) and the shell tools.

Roll-out Plan

To make things easier I will first transition entertainment and personal activities and later work related ones.

In the next few days I will start by exploring all the hardware requirements first and update this blog with some of the findings. Along with this I will share the personal activities progress.

There are comments.

SSH from Linux to BlackBerry Z10

You can SSH into a BlackBerry Z10 device even on Linux. I'm using Red Hat Enterprise Linux 6 and here is how to establish the connection.

1) Enable USB networking between your Linux desktop and the Z10;

2) Install the Momentics IDE. You need it to create debug tokens and to start the SSH daemon on the device;

3) Obtain signing keys and create a debug token by following the wizard in the IDE. I just started a new project and followed the instructions;

4) Install debug token on device using the IDE. From Window -> Preferences select Blackberry -> Signing. Just create and deploy the debug token on the device. Mine was automatically discovered so I just had to follow the prompts;

5) Reboot and re-enable development mode (I'm not sure if this was necessary);

6) Generate a 4096 bit key for SSH. Smaller keys won't work. You can use your current key if it is 4096 bit;

$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/atodorov/.ssh/id_rsa): /home/atodorov/.rim/testKey_4096_rsa
/home/atodorov/.rim/testKey_4096_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/atodorov/.rim/testKey_4096_rsa.
Your public key has been saved in /home/atodorov/.rim/testKey_4096_rsa.pub.
The key fingerprint is:
77:73:55:03:e1:fc:5b:df:a6:e9:2c:b4:d4:1e:0c:b2 atodorov@redbull.mini
The key's randomart image is:
+--[ RSA 4096]----+
|             oo..|
|            o   o|
|             o  .|
|          . . .. |
|        S .oo+...|
|         .E.oo+ =|
|           o o o+|
|            o..+ |
|             o=  |

7) Update key permissions, since ssh complains:

    $ chmod 600 ~/.rim/testKey_4096_rsa.pub

8) By default SSH is not listening on your BlackBerry. Use the blackberry-connect command to start the SSH daemon on the device. It will upload your public SSH key to the device and start the SSH daemon on the other side. password is your device password;

$ pwd

$ ./blackberry-connect -password 123456 -sshPublicKey ~/.rim/testKey_4096_rsa.pub
Info: Connecting to target
Info: Authenticating with target
Info: Encryption parameters verified
Info: Authenticating with target credentials.
Info: Successfully authenticated with target credentials.
Info: Sending ssh key to target
Info: ssh key successfully transferred.
Info: Successfully connected. This application must remain running in order to use debug tools. Exiting the application will terminate this connection.

9) Check if SSH is running on the device

$ nmap

Starting Nmap 5.51 ( http://nmap.org ) at 2013-07-18 10:19 EEST
Stats: 0:00:01 elapsed; 0 hosts completed (1 up), 1 undergoing Connect Scan
Connect Scan Timing: About 14.30% done; ETC: 10:20 (0:00:06 remaining)
Nmap scan report for
Host is up (0.00097s latency).
Not shown: 991 closed ports
22/tcp   open  ssh
80/tcp   open  http
139/tcp  open  netbios-ssn
443/tcp  open  https
445/tcp  open  microsoft-ds
1111/tcp open  lmsocialserver
5555/tcp open  freeciv
8000/tcp open  http-alt
8443/tcp open  https-alt

Nmap done: 1 IP address (1 host up) scanned in 12.47 seconds

10) Use SSH with the specified key to connect to the Z10. Username is devuser. Here's a simple session:

$ ssh -i ~/.rim/testKey_4096_rsa devuser@
$ pwd
$ uname -a 
QNX atodorovZ10 8.0.0 2013/05/02-08:42:48EDT OMAP4470_ES1.0_HS_London_Rev:08 armle
$ date
Fri Jul 19 23:39:19 EEST 2013
$ ifconfig 
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192
    inet netmask 0xff000000
    inet6 ::1 prefixlen 128
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
tiw_drv0: flags=8c02<BROADCAST,OACTIVE,SIMPLEX,MULTICAST> mtu 1500
    address: 1c:69:a5:d0:10:cd
    address: 1c:69:a5:d0:10:cd
    inet netmask 0xffffff00 broadcast
    inet6 fe80::1e69:a5ff:fed0:10cd%tiw_sta0 prefixlen 64 scopeid 0x12
tiw_p2pdev0: flags=8c02<BROADCAST,OACTIVE,SIMPLEX,MULTICAST> mtu 1500
    address: 1c:69:a5:d0:10:cd
tiw_p2pgrp0: flags=8c02<BROADCAST,OACTIVE,SIMPLEX,MULTICAST> mtu 1500
    address: 1c:69:a5:d0:10:cd
tiw_ibss0: flags=8c02<BROADCAST,OACTIVE,SIMPLEX,MULTICAST> mtu 1500
    address: 1c:69:a5:d0:10:cd
pflog0: flags=0 mtu 33192
lo2: flags=8048<LOOPBACK,RUNNING,MULTICAST> mtu 33192
cellular0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
cellular1: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
cellular2: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
cellular3: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
cellular4: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
bptp0: flags=8043<UP,BROADCAST,RUNNING,MULTICAST> mtu 1356
    inet6 fe80::1e69:a5ff:fed0:10cd%bptp0 prefixlen 64 scopeid 0x2d
    inet6 fd02:42ac:77b2:d543:c158:fabb:6276:80e6 prefixlen 8
    address: 1e:69:a5:d0:10:cd
    inet netmask 0xfffffffc broadcast
    inet6 fe80::1c69:a5ff:fed0:10cd%ecm0 prefixlen 64 scopeid 0x2e

IMPORTANT: you can also use the WiFi address of the device to pass to backberry-connect and ssh. It works for me.

I'm starting to explore the dark world of QNX in the next couple of days and will keep you posted! Until then - happy hacking.

There are comments.

Exploring BlackBerry 10 - nmap

This is the first post in upcoming series while I explore my BlackBerry Z10 device and figure out what's on it.

First configure Z10 for USB networking. Then from Settings - Security and Privacey - Development Mode turn Use Development Mode to On. From my Linux box I run nmap against the usb ( and wi-fi ( addresses of Z10:

$ nmap

Starting Nmap 5.51 ( http://nmap.org ) at 2013-07-17 23:03 EEST
Nmap scan report for
Host is up (0.00087s latency).
Not shown: 994 closed ports
80/tcp   open     http
139/tcp  open     netbios-ssn
443/tcp  open     https
445/tcp  open     microsoft-ds
1111/tcp filtered lmsocialserver
8443/tcp open     https-alt

Nmap done: 1 IP address (1 host up) scanned in 21.41 seconds

$ nmap

Starting Nmap 5.51 ( http://nmap.org ) at 2013-07-17 23:04 EEST
Nmap scan report for
Host is up (0.0035s latency).
Not shown: 998 closed ports
443/tcp  open     https
1111/tcp filtered lmsocialserver

Nmap done: 1 IP address (1 host up) scanned in 15.64 seconds

Firefox says the certificate used for https is invalid:

    The certificate is not trusted because it is self-signed.
    The certificate is only valid for PlayBook: 1c:69:a5:d0:10:cd

1c:69:a5:d0:10:cd is the wi-fi interface MAC address. All the http ports produce a 404 with index.html not found!

Trying some UDP scan:

# nmap -sU

Starting Nmap 5.51 ( http://nmap.org ) at 2013-07-17 23:32 EEST
Nmap scan report for
Host is up (0.00075s latency).
Not shown: 995 closed ports
67/udp   open|filtered dhcps
68/udp   open|filtered dhcpc
137/udp  open          netbios-ns
138/udp  open|filtered netbios-dgm
5353/udp open          zeroconf
MAC Address: 1E:69:A5:D0:10:CD (Unknown)

# nmap -sU

Starting Nmap 5.51 ( http://nmap.org ) at 2013-07-17 23:33 EEST
Nmap scan report for
Host is up (0.065s latency).
Not shown: 995 closed ports
67/udp   open|filtered dhcps
68/udp   open|filtered dhcpc
137/udp  open|filtered netbios-ns
138/udp  open|filtered netbios-dgm
5353/udp open|filtered zeroconf
MAC Address: 1C:69:A5:D0:10:CD (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 143.65 seconds

There are comments.

Tip: How To Enable USB Networking Between BlackBerry Z10 and Red Hat Enterprise Linux 6

On Linux there is a feature called USB networking which provides you with a TCP/IP connection to another device connected via USB cable. Here is how to connect your BlackBerry Z10 to your Linux laptop over USB. I use Red Hat Enterprise Linux but should work out of the box for other distros too.

Connect the Z10 to your laptop:

    $ lsusb
    Bus 001 Device 005: ID 0fca:8020 Research In Motion, Ltd. Blackberry Playbook (CD-Rom mode)

By default many USB devices will present a virtual CD-ROM with drivers for Windows. This is the case here too. To change it go to Settings - Storage and Access and set USB Connection to Connect to Mac!

If necessary plug out and back in the Z10.

    $ lsusb
    Bus 001 Device 007: ID 0fca:8013 Research In Motion, Ltd.

    $ ifconfig
    usb0      Link encap:Ethernet  HWaddr 1E:69:A5:D0:11:0A  
              inet addr:  Bcast:  Mask:
              inet6 addr: fe80::1c69:a5ff:fed0:110a/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:49 errors:0 dropped:0 overruns:0 frame:0
              TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:16002 (15.6 KiB)  TX bytes:1152 (1.1 KiB)

IMPORTANT: In the same Storage and Access screen scroll down to USB Mass Storage and turn it Off. If you don't do this your Z10 will appear as USB flash drive and no USB networking will be available. This is how it looks:

    $ lsusb
    Bus 001 Device 008: ID 0fca:8014 Research In Motion, Ltd.

IMPORTANT: If you need your Z10 storage accessible together with USB networking you can try accessing the device over Wi-Fi. Configure it from the same Storage and Access screen. Then your device will be available through Samba on its wireless IP address. I've tried it, works for me!

You don't need anything else to get this working. All set!

My intention is to use either USB networking or Wi-Fi to connect to the Z10 shell and explore it in more details.

There are comments.

Importing vCard Contacts To BlackBerry Z10 Sucks

I can honestly state that BlackBerry Z10 sucks big time when it comes to importing your contacts from another non-BlackBerry device. I've been struggling to transfer my contacts from Nokia 6303 to the Z10 for one day.

I tried a simple sync of the contacts from Nokia to Z10 over Bluetooth but that failed miserably, telling me the Z10 doesn't support this functionality. This is what to do:

  • On Nokia - Settings - Sync and backup - Create backup;
  • Then navigate to Apps - Extras - Memory card - Backup files;
  • Select the most recent backup file, e.g. Backup000.NBF and transfer it via Bluetooth (or USB cable) to my laptop;

For the record: this is a ZIP file with different extension. I've tried also to transfer it to the Z10 and open from File manager but to no avail.

  • Just unzip the file on the computer;
  • When extracted it will create multiple directories with meaningless names. Just find whatever you need - in my case this was the contacts/ directory containing hundreds of .vcf files;
  • Combine all the .vcf files into one. On Linux this is done with
    cat *.vcf > ../all.vcf

For the record: I've tried also sending all of these files to Z10. Via the File manager individual vCards open just fine but you need to Save them one by one. The combined vCard file didn't display correctly at all. Showed only one contact.

  • Then go to Gmail (or any other CardDAV service) and import all your vCards. Go to Contacts - More - Import - and select the combined vCard file since Gmail doesn't support multi-file uploads;

  • On your BlackBerry go to Settings - Accounts and add your Gmail account. By default this will create profiles for mail, calendar and contacts which will be synchronized with the device.

WARNING I had my Gmail previously configured on the Z10. Despite the account was configured to re-sync every 15 minutes it took around 2 hours for phone numbers to sync. And to make it worse there is no button for manual re-sync.

All of this done I have thousands of contacts on my Z10 spread across phone numbers, emails, vCards and contacts from social networks. I've noticed some of them (my guess those that had the same email or name) combined auto-magically. The rest can easily be linked together using the Contacts app Link functionality.

For the record: It is also possible to send vCards one by one directly from Nokia to Z10 via Bluetooth. The trouble is that for every entry you need to go through several layers of menu options and confirmations. This makes it impractical.


  • Importing hundreds of contacts from Nokia to BlackBerry Z10 is MIA;
  • BB Contacts app (and BB Hub) is cool but has some bugs;
  • Needs manual contact re-sync button;
  • Gmail re-sync took longer than expected;
  • Contacts Link feature can be improved and made more easy to use, e.g.

    • grid style display
    • multiple select and link
    • swipe and link, etc;
  • The current Link interface is sub-optimal

    • select a contact
    • tap Links
    • tap Add Link
    • tap Search
    • type and find the entries you'd like to link;
  • The current Link interface is buggy - when searching contacts to add as links it shows the currently opened contact too. Luckily it doesn't crash when the same entry is selected :). I've tried.

This is with OS Version

There are comments.

How to Get a Free BlackBerry Z10

Do you want to have the latest and greatest devices on the market? For free? No problem if you are a software developer! Over the years I've got several devices for free and I will tell you how I did it.

Find a hardware vendor that has launched new products, is behind competitors in terms of software eco-system and present them with a great application which you will code on their device.

BlackBerry Z10 T-Shirt

This week I've been at the BlackBerry 10 Mini Jam in Sofia and I got a BlackBerry Z10 Dev Alpha B smart-phone.

BlackBerry 10 OS is different from previous versions. It has a QNX kernel and is largely incompatible with previous software. This means all apps need to be rewritten.

Another thing to note is that BlackBerry is behind Android, iPhone and probably Windows Phone in terms of applications. It is in their interest to lower the barrier to entry for developers and boost their software eco-system. Which in turn makes customers happy because they can find all sorts of applications. It's that simple.

Being a Linux guy my idea is to trade my Lenovo X220 for a smart-phone. The only thing(s) I need is all the command line tools which I use: bash, vim, coreutils and most notably Python. So I've decided to try and port all of these to the BlackBerry 10 OS. It should be doable because QNX is POSIX compliant and the OS itself comes with C/C++ and Qt/QML native development stack.

I have a few other ideas which are still taking shape in my head and are mostly towards mobile development.

I've heard BlackBerry Developer Group Balkan may have some devices to give away to developers so I simply asked. They liked my ideas and agreed to give me a developer device.

In addition they've given away the real product (not dev alpha devices) for free at Twitter contests held during couple of events so far. Several guys I know were lucky enough to win the prizes.

The OLPC XO laptop

OLPC XO laptop

In the past I've taken part in testing Fedora onto the XO laptop produced by the One Laptop Per Child project.

It is cool and innovative device with its software especially adapted to child education. The general public wanted to have a standard Linux distro running on the same hardware. Fedora being the original foundation on which the XO Linux distro was built was a good choice (among others).

I have received for free the XO laptop shown here and mainly tested networking related stuff. After the test initiative was completed (and also the upstream OLPC project ceased to exist closely after that) I got to keep the device for myself.

Which device to get ?

I'll keep my eyes open for a Firefox OS or Ubuntu Phone devices. As they come into stores they will have to compete with already established vendors.

Let me and everyone else know if you got a device for free being a developer! Share your story and tips into the comments below.

There are comments.

Page 1 / 1