Home Migrating From the Nokia N900 To N950

Migrating From the Nokia N900 To N950

What follows is an excellent piece from the MeeGo Wiki: Migrating From N900 to N950.


Lots of developers will be transitioning from an N900 to an N950 as their primary device as part of the device programme. This transition allows people to get a feel for Harmattan and work out what itches they need to scratch.
The following is a small list of points which helped the author(s) get started. It is not indicative of steps necessary on the N9, and is based on the initial steps taken by the author when he received his pre-production, developer device.
Other channels: IRC:freenode.net #harmattan
Developing apps
If you have done this before, check out Porting Fremantle Applications to Harmattan.
If you are starting from scratch, use QML, not QWidgets (unfortunately the QtCreator tutorials are outdated and show use of QWidgets). Get started reading about the MeeGo 1.2 Harmattan API and be sure to digest the Best Practices section.

Building packages in Scratchbox

An excellent example of how to build a package was written by User:ph5 in this forum post. Follow the instructions in the official Harmattan Platform Guide page on packaging.
A hint for the experienced: if you have a source deb for a different platform then it’s just a matter of unpacking it with dpkg -x *.dsc, cd’ing inside package-version/ and running:

dpkg-buildpackage -us -uc -b -rfakeroot

Another protip: ‘debuild’ tends to fail with fakeroot-related problems where dpkg-buildpackage succeeds.

 Events feed

1.2011.22-6 is a pre-production, developer edition. It only has Facebook integration for chat and events, no Google Talk or Twitter. RSS feeds can be set, in the Feeds application, to appear here.


Some N900s are unreliable with Bluetooth connections. To transfer all the contacts from your N900 to your Harmattan device, including avatars:

  • Delete any Facebook accounts on your Harmattan device
  • Delete all contacts
  • Do not try to use the “sync your phone” feature from the N950 (if you’ve tried it, delete the channel on both the N950 and N900)
  • N900: go to Settings > Transfer & sync > New. Define a new send-only, contacts-only channel to the N950 (which should have Bluetooth switched on and visible)

This method does NOT transfer any IM-only contacts.
Import from files workaround: The content manager has never provided the proper API, so they do not allow the vcard file filtering in that sense. Hence you can only display all objects, which allows the user to try to import anything into contacts. Unfortunately, importing the browser application into the contacts does not work that well. It is a bit sad since all the code is ready on the contacts side.
As of 32-4 firmware, vcardconverter still pukes on contact filenames with umlauts in them. Busybox doesn’t though, so we’ll do a cp tmpfile operation in the for loop.
Hence here is the workaround:

1) copy all your vcf files to a dir
2) ssh into the device
3) go into the directory containing the vcf files
4) for i in *.vcf; do cp "$i" ._temp.vcf; vcardconverter "._temp.vcf"; done; rm ._temp.vcf

It should be added that the BT sync from the N950 can be used. At least it worked without any issues for me. YMMV it would seem. -lardman


Replying/quoting is FUBAR in 1.2011.22-6 (no ability to edit quote, forced top posting). With Gmail over IMAP, Delete now deletes messages, rather than archiving them (as it did in Modest). To “archive” email, move it to the All mail folder.(There’s definitely an opportunity for someone to write a good Gmail client!)


If you want your folders & state to appear on the device, use Mail for Exchange for your Hotmail account. The settings can be found here.

Syncing multiple Google Calendars

This Harmattan build supports multiple Mail for Exchange and multiple CalDAV accounts. For Google Calendar:

  • Go to Accounts > Add accounts > CalDAV
  • Username should be your full Google Calendar username (e.g. [email protected]) and password.
  • The URL is:
    • For your primary calendar: https://www.google.com/calendar/dav/
    • For other calendars: https://www.google.com/calendar/dav/[email protected]/
    • For some users, the primary calendar will only work with, supposing your e-mail is [email protected]: https://www.google.com/calendar/dav/[email protected]/

The uuid can be found on the calendar settings page within Google Calendar, and is a long string of characters & numbers.
The trailing slashes are crucial for Google.

  • The primary calendar claimed to sync, but no events showed up. So I deleted the CalDAV entry for my primary calendar and set up Mail for Exchange:
    • Username is your full Google Calendar username and password
    • Server: m.google.com
  • I synced my primary calendar using the syntax of the second URL (with my Google login email instead of uuid@google) and it worked great. YMMV.
  • Note: for me the sync button only worked once you go back out after creating the entry, and then back into it again.


Preliminary code for importing conversations from N900 can be obtained from this git repository.

Map loader

Beta 1 firmware
Maps contains a Manage Maps feature which downloads, but doesn’t expand. It is possible to do it manually, though:

  1. Connect your device as USB mass storage
  2. Open cities/MapLoader/catalog-....xml
  3. Find the region you want to download
  4. Take the Link element and append it to http://static.s2g.gate5.de/map5/. For example, the UK maps are at http://static.s2g.gate5.de/map5/maploaderzip-
  5. Copy the contents of the zip file to cities/diskcache/

If you have a newer version of the catalog, the previous link for downloading may not work. You should try http://static.maploader.maps.svc.ovi.com/map5/. For example, the UK maps are at http://static.maploader.maps.svc.ovi.com/map5/maploaderzip-
Beta 2 firmware The built-in maps downloader now works.


Hopefully this is a bug in 1.2011.22-6: ringtones and gPodder podcasts appear in the Music app; and will play on an all songs shuffle. This can be fixed by editing Tracker configuration:


Tracker config file can be found at:


Edit the file as regular user and add to the semi-colon separated IgnoredDirectories list.
Tracker indexes file system and applications. Haven’t tried (could someone please confirm?) but re-indexing should be triggered with following command:

/usr/lib/tracker/tracker-store -r (or /usr/lib/tracker/tracker-store --force-reindex)

Notification light

N950 has only single white led instead of N900’s RGB LED. The led is driven with same config file:


It seems that you can also modify the functionality of power button with mce.ini
Don’t know if the services you must restart are the same than in N900 though.


The default root password is rootme (as in the 770 days ;-)). You can get root to change it (using passwd) using:

 ssh root@localhost



Security framework

Aegis is the name of the platform security system. If you understand POSIX file ownership-based security, this is not that. Forget that root can read from or write to all files (it cannot on the N950).
N950s given to developers have Aegis turned on.
If you edit protected files, like some config files or some shell scripts, you may have to re-flash the device! Don’t do this.
You can enable running of arbitrary binaries by running:

aegis-developer-mode --relaxed-exec

…and then rebooting.
found useful for root (runs commands that otherwise wouldn’t run):

devel-su -c bash

As a temporary workaround, liberal use of chmod 777 ... for a moment before cp ... and then chmod 700 ... after (as user) can work; su -c user chmod will work as root too.

Harmattan Security FAQ

There is an Harmattan Security FAQ that has very useful tips.

Further reading

  • http://www.developer.nokia.com/Community/Discussion/showthread.php?226594-Running-console-apps-on-n950-Operation-not-permitted
  • http://forum.meego.com/showthread.php?t=3827
  • https://pastebin.com/C5jbvj7N
  • https://lwn.net/Articles/372937/
  • http://fruct.org/conf7/Kasatkin_Maemo_6_Security_Framework.pdf
  • http://www.developer.nokia.com/Community/Wiki/Harmattan:Developer_Library/Developing_for_Harmattan/Harmattan_security/Security_guide#Overview_of_application_security
  • https://www.slideshare.net/reshetov/maemo-platform-security-fosdem
  • http://www.developer.nokia.com/Community/Wiki/Harmattan:Platform_Guide/Harmattan_platform_and_Platform_SDK_overview/Security_domain_overview


Launch Boosted Widget Gallery from the applications list, and select Debug tools > Take a screenshot. Ctrl-Shift-P also works, as on N900, but only in stock (MTF?) screens.
They can be shared from Gallery (they are stored in ~/MyDocs/.images)

Task switching


In addition to the swipe, the up-right arrow & backspace shortcut works almost similarly to Ctrl-Backspace on the N900.


Out of the box, applications which use Qt Components and lock themselves to landscape, still get rerendered in portrait in the task switcher if the keyboard is closed. Bug #231 has been reported.
It is possible to modify the themes for the home screens and lock screen to support portrait, but this is obviously only a developer-only workaround.

Keyboard layout

You can easily change the hardware keyboard’s layout with setxkbmap:

setxkbmap -rules evdev -model nokiarm680 -layout fi

It is possible to set two layouts with Ctrl+Shift switching:

setxkbmap -model nokiarm680 -layout us,ru -variant ,cyrillic -option "grp:ctrl_shift_toggle"

Manual key mapping

Like for the N900, you also can remap it yourself. See http://dragly.org/2011/08/06/norwegian-keyboard-on-the-n950/comment-page-1/ for some examples. The file to be edited is /usr/share/X11/xkb/symbols/nokia_vndr/rm-680
Also have a look here: http://wiki.maemo.org/Remapping_keyboard

Keyboard shortcuts

Sh = shift, Ctrl = control, Fn = Function (lower left key), BS = backspace (upper right key), CR = CarriageReturn/Enter (right 2nd from top)

  • Fn+BS : jump back to last screen – usually either taskswitcher or applauncher

(none of the following seem to work in non-MTF apps)

  • Ctrl+Q : close current screen and back to last, like Fn+BS
  • Ctrl+Sh+P : take ->screenshots
  • Ctrl+Sh+T : switch on/off positions(?)
  • Ctrl+Sh+S : switch on/off dimensions(?)
  • Ctrl+Sh+L : cycle through some languages
  • Ctrl+Sh+F : switch on/off frames-per-second
  • Ctrl+Sh+B : switch on/off borders(?)
  • Ctrl+Sh+M : switch on/off margins(?)
  • Ctrl+Sh+N : switch on/off some writing that shows up when scrolling applauncher(?)
  • start typing in any of the 3 basic screens : start Search

Hardware related bits

The N950 comes with a quick start guide, USB cable and device. To charge, the N900 wallwart fastcharger works like a charm. Device charges from non standard (missing D+- short) USB chargers with a maximum current of 100mA. The USB receptacle seems to be pretty sturdily mounted to the PCB, should not come off like some of N900.
OPENING BATTERY COVER: The screws holding the battery cover are Torx TX4, unscrew, don’t lose! Then pry off the complete cover with your fingernails sliding between cover and body starting at speaker (I.E. one of the “lower end” corners) both directions to the other end, and “hinge” around USB and then off. The cover is simply snap-on type and will click to open, seems there are just 2 or 3 latches that click open when you pry ~1mm

Migrating from beta 1 to beta 2

Restoring a beta 1 backup into beta 2 will lose data and disable the built-in Twitter app. Follow these steps to keep as much data as possible:

  • Push your contacts to an N900 – restore from backup won’t work. Export/Backup the contacts on the N900 just to be sure. A more involved (but N900-free) vcard-based transfer is also possible.
  • Be aware that your SMS history will be lost. Ovi Suite will at least back it up for you in a human-readable way.
  • Perform a backup from “Backup and Sync” in “Settings” on your N950.
  • Connect to your PC and move the whole .backups directory off, and also any other files you want to keep (DCIM, etc). Everything on your N950 will be wiped.
  • Unmount the N950, turn it off and follow the flashing instructions (~15m of “erasing” + ~5m install)
  • While it’s flashing, on your PC, edit the settings.zip file inside the backup directory and remove Root/home/user/MyDocs (this contains your gconf settings which, if restored, will break Twitter logon). Delete contacts.zip and messaging.zip entirely – they won’t restore successfully if you try.
  • Once your N950 starts with the beta 2 firmware, reattach it to USB and move everything back across.
  • Restore the contacts from the N900 in the normal way
  • Go to the backup applet and restore the backup.
  • On reboot, go through the settings applet and restore your settings manually, including enabling developer mode (packages will auto-install) under “security”.
  • For each account in the account manager, you must invoke the relevant program that uses each account and re-enter the password. Some syncs may have also become disabled. Be sure to check. POP/IMAP email accounts seem to be in limbo – you may need to delete and recreate them.



Harmattan home screens in landscape mode

Get root:

ssh root@localhost


mkdir /usr/share/themes/blanco/meegotouch/meegotouchhome/
mkdir /usr/share/themes/blanco/meegotouch/meegotouchhome/style/
echo 'MainWindowStyle {
    locked-orientation: "";
}' > /usr/share/themes/blanco/meegotouch/meegotouchhome/style/meegotouchhome.css


Harmattan lock screen in landscape mode

To fix the lock-screen:

nano /usr/share/themes/blanco/meegotouch/sysuid/style/sysuid.css

Scroll down until you find

locked-orientation: "portrait";

and change it to

locked-orientation: "";

Hold the Ctrl on-screen key (not the physical one) and press X on the keyboard. If it just types an ‘x’ then backspace and do it again. Press ‘Y’ to save, then ‘Enter’. Reboot.
This makes the lock-screen orientation aware, but only just after boot. It seems there is something elsewhere locking its orientation once you have actually used any apps and from then on the lock-screen is fixed in the last orientation you used before locking it. source

GTalk and Skype account setup

Note that this is a temporary hack as these services will be properly integrated in future firmware.
GTalk: From Terminal as user, run:

mc-tool add gabble/jabber gmail string:[email protected] string:password=secretpasswordhere
mc-tool list
mc-tool enable gabble/jabber/gmailusernamehere_40gmail_2ecom0

Skype: From Terminal as user, run:

mc-tool add spirit/skype skype string:account=skypename string:password=secretpasswordhere
mc-tool list
mc-tool enable spirit/skype/skypename0

Substitute skypename and gmailusername with your own usernames. The enable command should match one of the entries in the mc-tool list command.
Integration with the contacts is not fully working so you can’t see the accounts in the contact profile properly, you can still use the services in the following way:

  • To initiate chat just go to messaging and choose who you want to chat with.
  • To initiate a call, go to the phone app and choose contact from the list (press the user button to get to contacts). You can then click on the selected service for call.

You can also install Peregrin (Ovi Store). It will give you an ui for outgoing chat and calls. If you are using same e-mail for both GMail and Facebook the name of the service you added second will have the number 1 at the end instead of 0.
Source MeeGo Wiki

About ReadWrite’s Editorial Process

The ReadWrite Editorial policy involves closely monitoring the tech industry for major developments, new product launches, AI breakthroughs, video game releases and other newsworthy events. Editors assign relevant stories to staff writers or freelance contributors with expertise in each particular topic area. Before publication, articles go through a rigorous round of editing for accuracy, clarity, and to ensure adherence to ReadWrite's style guidelines.

Get the biggest tech headlines of the day delivered to your inbox

    By signing up, you agree to our Terms and Privacy Policy. Unsubscribe anytime.

    Tech News

    Explore the latest in tech with our Tech News. We cut through the noise for concise, relevant updates, keeping you informed about the rapidly evolving tech landscape with curated content that separates signal from noise.

    In-Depth Tech Stories

    Explore tech impact in In-Depth Stories. Narrative data journalism offers comprehensive analyses, revealing stories behind data. Understand industry trends for a deeper perspective on tech's intricate relationships with society.

    Expert Reviews

    Empower decisions with Expert Reviews, merging industry expertise and insightful analysis. Delve into tech intricacies, get the best deals, and stay ahead with our trustworthy guide to navigating the ever-changing tech market.