Customizing the Nokia N800 (and 770) or how to configure the device for your purposes
![]()
NOTE: I made a package for the N800 which will give you root access from a shell. This is based on the original becomeroot package. You can get it here: godmode.deb
ABSTRACT:
A while ago I was asked if it would be possible to “brand” and completely configure the Nokia 770 for a specific company with a specific set of applications. It took a while but I got it done. Then I was asked to do the same for the N800 (the successor of the Nokia 770). After I was done I thought I ‘d put my steps down, so that other people can do the same. This is the complete guide to making a custom package that will install on the N800 (the instructions for the 770 are in ITALIC), and reconfigure the device to match your company’s image. This is a particular good idea if a lot of people in your management wants to use the devices to connect to check their email for example. The devices seem to be pretty popular with management nowadays.
NOTICE: I did not make this tutorial 8 pages long for the fun of it. Some pages are smaller and shorter the others. Each page is one step. This is to make it easier to read. You can always download the pdf instead. The index will also be on each page so you can jump wherever you want
Index:
- Introduction and Requirements
- STEP 1: Creating the necessary (startup)scripts and files
- STEP 2: Specific applications to be installed
- STEP 3: Customizing the look and feel
- STEP 4: Setting the basics in GCONF on Maemo
- Step 5: Other GCONF Settings: The Device Lock and SWAP
- STEP 6: adding the last lines: cleanup
- Delivery and Appendix: Interesting files
REQUIREMENTS:
To make a custom package, you do not have to be a developer (contrary to popular belief). You just need the following things and a bit of patience or good planning:
- You need a Linux PC with the dpkg utility since the Maemo platform is a Debian derived Linux distribution. I would use a Debian based setup as this contains the utility already.
- You need the source user environments for the device that you have or want to roll out. You can download them from here:
- The user environment and the gconf dump of the vanilla N800 with nothing changed. However you can remove the userguides if you want to (recommended).
- The user environment and the gconf dump of the vanilla Nokia 770 with nothing changed
- You need a newly flashed device to work with, like the 770 or N800
- You need an understanding on how write a small shell script
- You might need SOME understanding of the Linux boot process however this is not a requirement
The build versions of the 2 are 2.2006.51-7 for the N800 and 2.2006.49-2 for the Nokia 770.
Once you have all of this, you need to create a working directory on your Linux machine . Working directory means create the directory and all subdirectories that need to be in the package. If you have downloaded the user.tar.gz from here you can just do the following command on your linux machine:
mkdir MyPackage; cd MyPackage; mkdir etc DEBIAN ; mkdir etc/init.d ; tar -zxf /PATH_TO_USER_FILE/user.tar.gz -C .
Do not forget the “.” at the end of the line and hit enter. This will create the necessary directories and extract the files where they should go from the user environment for your device.
After this is done, you are ready to go and start making your own.
Popularity: 100% [?]
Where *nix and security meet the general public

What is, or how I enable N800’s root password?
technically you don’t need it but you could just create a fake package with with an init script that modifies the sudoers file (or overwrites it) or you could just use the old flasher method (./flasher-3.0 –enable-rd-mode –reboot) this at least worked with beta products and the one production device I have. After you have flashed into r&d mode you can use the gainroot script to become root. This way is harder but might work https://maemo.org/maemowiki/HowDoiBecomeRoot2 or you could just try installing the 770 becomeroot package from here
cheers
//Flosse
Basically, I am not interested in flashing into the R&D mode, I am just interested in being able using sudo to install packages. You see, currently it asks me for a password when I use a terminal to install a package, but I don’t know what password to put there. The empty password doesn’t seem to cut it, neither the “maemo” one.
what about rootme ? otherwise, by tomorrow i can have a solution for you (mainly a root package that will give you root in xterm)
//Flosse
BTW, the reason I want to use the command line to install apps, is because the UI does not work! I have subscribed to about 5-6 hacker/Maemo.org repositories, some of them for Mistral instead of Bora, but the “installable applications” screen only shows me about 20-30 available apps, while there should be about 300 in there! I remember during one refresh, a few days ago seeing a lot of apps there, but then, they just vanished, and I never got them again. Any ideas what’s going on, and if the Application Manager automatically rejects Mistral apps from the listing? If yes, my only chance would be to use dpkg from the command line…
Here is the link to show how to become root on the 770 and 800:
http://maemo.org/maemowiki/HowDoiBecomeRoot2
You know the rules, right?
to see all the packages you have to activate the red pill mode:
https://maemo.org/maemowiki/ApplicationManagerRedPillMode
Btw, the becomeroot package i referred to earlier works like a dream on the N800. this will give you a root shell by typing sudo gaainroot, without prompting for a password.
//flosse
As seen at the top of the article, I made a package that will give you root access to the N800 without entering R&D mode. install package, open a shell and type sudo gainroot. Done, you have a rootshell. works like a charm and has been tested on several N800 devices with several software versions. IT is based on the original becomeroot package. Enjoy!
//Flosse
Thanks for the package! Quite useful. (And ditto the red pill tip from Sebi.)
I want to write mathematics and physics papers. The keyboard symbols currently only include superscripts for writing exponents up to 3 (i.e. “cubed”). How can I extend the possible symbols to include any superscripts, subscripts and Greek alphabet?
I am in progress setting up a N800 for a hand slideshow demo. Do you know what or where I need to modify in order to auto lanch the image viewer upon startup. I doesn’t look like the normal Linux routes work. Thanks.
Did you find a way to replace the initial NOKIA boot image?
hmm you CAN replace teh Nokia boot image but I am not sure if you should.as far as launching the slideshow, there are ways to modify of course the RC levels and add a line to it. on another note, if you want to launch a slideshow upon startup how would you exit it? If you dig through maemo.org you can find a descrption how the window manager is started, this can also be used to launch applications.
Should and interested in trying it out are 2 different things. Care to point me in the right direction? Thanks for the other tips.
ok adding the rc files is easy really as it is described in this article.. there is a discussion I found here: http://maemo.org/pipermail/maemo-developers/2006-September/005615.html
that touches the subject. probably hacking maemo-launcher and rc scripts would be the best way of doing it.
You can test this by installing the godmode.deb and xterm to get a root shell. that way you can hack the system. Installing your own deb will be done as root so you will get more or less teh same results.
You gotta love development
I was hoping for a pointing in a direction for the boot image. Yup. Development is VERY fun
oh.. the boot image.. hmmm… if i could only remember where i saw that…. i will have to get back to you on that one…
uh. huh. OK.
Hi JB, here is the info I was able to gather. You will have to do actual development and make a custom kernel boot image based on the scratchbox and development documentation here: http://maemo.org/development/documentation/tutorials/Maemo_tutorial_bora.html . That is is possible, to do so can be seen here: http://maemo.org/downloads/product/kernel/ as this is a custom kernel that you can flash with flasher-3.0 -k zImage-file -f -R. The problem is since Maemo is not the always standard Linux distro, reading will be needed and I am not that much of a developer.
sorry I can’t be more help but this is a bit outside what I tried to accomplish with this tutorial.
//flosse
Thanks. Any direction has helpful. Now I’m off to see what I can do.
I found this tutorial and it is exactly what I need, but the links to user environment file (user.tar.gz) no longer work. Can you point me in the right direction to get this file so that i can continue with the tutorial?
hi, I wonder if you can give a force with this problem..i am trying to install my custom deb (great article btw) in the SDK using fakeroot dpkg -i jiboia.deb and i get dpkg: error processing jiboia.deb (–install): error creating directory `./home/user’: Permission denied
the deb is lintian and linda clean
Something on debugging/testing your customizations in your follow up article would be great!!
Hi Ian, I would check. are you creating your home/user directory in your postinst script? it shouldn’t try to create the directory if it already exists, which it should since you are using scratchbox. I have never used scratchbox, I like to test with a live device simply because a) you cannot brick it easily, you can always reflash and b) you will then know the user experience as it will be on the devices. I will check into this though…
My process was:
1. Made the deb in system (ubuntu Feisty) home directory /home/vern like this (fakeroot dpkg -b jiboia jiboia.deb)
2. Copied the deb like this to scratchbox (on same machine):
vern@N800-hacker:/home/vern# cp jiboia.deb /scratchbox/users/vern/home/vern/
3. Tried to install the deb:
[sbox-SDK_ARMEL: ~] > fakeroot dpkg -i jiboia.deb
(Reading database … 17741 files and directories currently installed.)
Unpacking jiboia (from jiboia.deb) …
dpkg: error processing jiboia.deb (–install):
error creating directory `./home/user’: Permission denied
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Errors were encountered while processing:
jiboia.deb
So to get round this we need to create a symbolic link
in /scratchbox/users/vern/home/ from user/ to vern/
ln -s vern user
This way any script that uses the hard-coded path ‘/home/user’ will actually use your home dir through the link.
The links to user environment file (user.tar.gz) no longer work. Where can I download the files for the N800?
The N800 link for the ‘user.tar.gz’ file can be found by going to the parent directory of the broken link:
http://blog.2blocksaway.com/files/
you’ll see the filename should actually be ‘user-800.tar.gz’
ok, I think this is fixed now. why it wasn’t I do not know but the link now works.
//Flosse
I am trying to tether the 770 to my LG VX8300 phone. To date no luck. Has anybody done this?
dano, you mean you cant pair via bluetooth?? Any specific error messages?
Do you know of the file/setting that will increase the amount of time it takes to show the right-click menu of an application. Currently, if you hold the stylus down for more than 1 second, a context menu appears. I want to increase this time. Specifically, I want to stop (delay) the context menu of a Flash application.
Thanks
SW
How to disable right-click feature at all?
[…] статьи от flosse “Customizing the Nokia N800 (and 770) or how to configure the device for your purposes” оригинал на английском в pdf - […]
[…] published several articles on tweako.com and some of them became VERY popular. My Nokia N800 and N770 article got picked up, through tweako , by Tabletblog and Wired’s blog […]
[…] published several articles on tweako.com and some of them became VERY popular. My Nokia N800 and N770 article got picked up, through tweako , by Tabletblog and Wired’s blog […]
[…] müssen wir uns den Root-Zugang zu unserem N800 besorgen. Surft dazu mit den N800 das 2 Blocks away Blog an, scrollt runter (muss man ewig scrollen, bis der Text in der mittleren Spalte erscheint) und […]