INCEPTION: Deeper access to your Nokia N9

The Nokia N9 is an amazing piece of hardware running an amazing mobile OS. However, advanced users have often been frustrated by its sometimes-limiting Aegis security system. Aegis, like many other security frameworks, blocks many legitimate tasks beyond truly dangerous activity, and makes it difficult to customize your N9 to run on your terms.

This problem is one of the past: INCEPTION allows you to assume direct control and liberate your Nokia N9’s full potential.

INCEPTION is:

  • Easy. INCEPTION allows you to open up your N9 in less than five minutes, with no need for a PC.
  • Safe. INCEPTION makes no major changes to your N9 on its own – it merely unlocks the door so that you can use your own discretion. INCEPTION can be uninstalled at any time with no side effects.
  • Effective. With INCEPTION, the only limits on what you can do with your N9 are your own. INCEPTION turns the N9 into what could be the most powerful and open handheld device on the market.

INCEPTION makes the following possible:

  • Direct customization of N9 system packages, many of which are open-source but couldn’t be replaced previously
  • Installation of new kernel modules that add advanced functionality to the system, paving the way for applications such as VPN clients, USB host mode, or a more sophisticated Wi‑Fi hotspot program
  • Mounting any filesystem, including those built with FUSE – such as sshfs or TrueCrypt
  • Complete disablement of Aegis, for users that want the N9 to function more like a traditional Linux desktop
  • Community-provided upgrades to the operating system, much like the Nokia N900’s Community SSU project

Before you incept

Read all of the following before you get started with INCEPTION. This is not your typical legal disclaimer.

  • Do not upgrade to new versions of the Nokia N9 firmware (beyond PR1.2) without confirming first that INCEPTION is compatible. You might need to uninstall or upgrade INCEPTION first.
  • This program allows you to grant applications full access to your phone. Do not install applications from sources/developers that you do not trust.
    • Avoiding malicious software (malware) is your responsibility.
  • It’s not recommended to use INCEPTION at this stage if you don’t have at least a passing familiarity with the Linux terminal. The current version lacks a graphical interface and is controlled using the terminal.
  • While installing INCEPTION is very safe, it enables you to do many things that might not be. If you intend to customize or experiment with your phone using INCEPTION, you should be familiar with the process of re-flashing your phone in the event of a serious problem. Re-flashing will erase certain types of data and all installed applications, including INCEPTION. Consider periodically taking backups of the data on your phone. The Comprehensive Firmware Flashing Guide provides more information about re-flashing.
  • Do not submit your phone for warranty repair or contact Nokia support due to issues caused through improper use of this program. If you encounter a hardware problem, it’s recommended to re-flash your phone in order to ensure that INCEPTION is not a cause.
  • INCEPTION is at your own risk, and is provided with no guarantee of any kind.

Continue only if you accept the risks involved.

Obtain the dream machine

Click the QR code to download, or scan it using MeeScan.

inception_0.1_armel.deb

Install package
inception_0.1_armel.deb

Source package
inception_0.1.dsc
inception_0.1.tar.gz

Licensing terms
MIT License

Redistribution is not only allowed but encouraged. However, it would be appreciated if you would link back to this site and/or credit itsnotabigtruck when distributing INCEPTION.

Conduct the inception

You are now ready to enable INCEPTION on your Nokia N9:

  • Fire up some suitable music.
  • Make sure that installation of unsigned packages is enabled at Settings > Applications > Installations.
  • Download and install the inception_0.1_armel.deb package from the previous section.
  • Make sure that developer mode is enabled at Settings > Security > Developer mode.
  • Open a terminal on your phone by either:
    • Launching the ‘Terminal’ icon on the home screen
    • Connecting to your phone using SSH and the password given by the ‘SDK Connectivity Tool’
  • Invoke the PASIV using the following command, entering your password when prompted:

    devel-su -c /usr/sbin/pasiv

  • You will be shown a disclaimer similar to that earlier on this page. Read it and enter yes (not just y).
  • Wait for the operation to finish.
  • INCEPTION is now active.

Note that the root password is set to “rootme” by default. It’s advisable to change your password as soon as possible.

Harnessing INCEPTION

INCEPTION provides the ability to “incept” packages – to install them with the same level of access as those provided directly by Nokia. If you encounter a package that requires this advanced level of access, use the following steps to install it:

  • Open a terminal, then become the root user via:

    devel-su

  • Ensure that the N9’s package management subsystem will not interfere:

    killall -q pkgmgrd
    rm -f /var/lib/dpkg/lock

    Note that this is also necessary when using dpkg or apt-get, even without INCEPTION.

  • Download the package you would like to install; the wget utility (apt-get install wget) is very useful for this.

    wget -O awesome-package_1.0_armel.deb
    http://awesome.tld/awesomeapp/install.deb

  • Whenever possible, make sure the package you are about to install is authentic:

    sha1sum awesome-package_1.0_armel.deb
    # Compare output
    to a known authentic copy or hash

  • incept the package, entering your password when prompted:

    /usr/sbin/incept awesome-package_1.0_armel.deb

Maintainers of package repositories are encouraged to ship packages that install a subsidiary “domain”, which allows programs to be securely installed from a trusted repository without the user needing to incept each and every one. For more information, see Aegis manifest syntax in the MeeGo 1.2 Harmattan developer’s manual.

Opening a privileged shell

For many tasks, you may need to access a Linux terminal with full access to the phone. Now that INCEPTION is active, you can use incept to install utilities that provide this sort of direct access. In order to install opensh, one such utility:

  • Download opensh_1.00_armel.deb to your phone.
  • Follow the instructions in the previous section to incept the opensh package.
  • From an existing terminal session, run:

    opensh

    In order to confirm that you now have full access, run:

    accli -I

    A list of at least about 100 privileges should be displayed.

Be advised that while opensh allows you full access, it also allows any program on your phone the same level of access. You may wish to wait for a replacement that provides password protection in a manner similar to su or sudo.

When running opensh you will find that most programs other than those provided by Nokia cannot be launched. This is because untrusted programs are not allowed to run with the most powerful privileges. In order to avoid this:

  • Reinstall the packages you need using incept
  • Use aegis-exec to run the program with the minimum set of privileges it requires to operate

Comments and donations

Any donation, no matter how small, is greatly appreciated. Donations will help offset the purchase price of my Nokia N9.