How to get stock lollipop on your rooted Nexus 7 3G 2012


As I had my Nexus 7 3G 2012 tablet unlocked and rooted I didn’t get any official updates anymore.

But I still think the Nexus 7 tablet is the best tablet still I decided to get it a lollipop.

Be aware that everything will be removed from your device.
Your totally responsible for your actions, if you brick your device I can’t help you.
This description is not for beginners and I will not provide every detail of the processes.

Lets go.

  1. Download the google factory android image, look for “razorg” for Nexus 7 [2013] (Mobile),
  2. Follow the instructions at the top of that page to get the rom flashed, but don’t lock the bootloader again.
  3. Reboot your device to check that everything is working properly. (Be aware that first boot takes a while, be patience)
  4. If you get a image of a dead android with a red sign sticking out of its chest do a factory reset (instructions from google nexus support)
    While holding down the Power button, press and release the Volume Up button once.
    Press the Volume Down button twice to highlight “wipe data/factory reset,” then press the Power button to select it.
    Press the Volume Down button seven times to highlight “Yes – erase all user data,” then press the Power button to select it.
    After the reset is complete, select the option to reboot your device.
  5. Download the chainfire root tool and image:
  6. Unzip it and use fastboot to flash it
  7. sudo fastboot boot image/CF-Auto-Root-grouper-nakasi-nexus7.img
  8. It will reboot your device and performs it’s magic (placing su and pacthing the kernel)
  9. Be aware that it can take up to a minute before you see the red chanfire android and the patching starts.
  10. The device will reboot again (Mine did a second reboot just after booting the rom, not sure if that was intended)
  11. The device will boot into lollipop and starts to upgrade the apps (again let it do it’s thing first time boots take a while on android)
  12. Check your rooted by starting the supersu app.

Now you can let your bootloader unlocked or lock it, it’s up to you.
I lock it again just to be on the save side.Have fun with your lollipop.



Using Python virtual environment


Nothing special just a reminder for myself.

sudo apt-get install python-virtualenv

mkdir python-virt-env

cd python-virt-env/

~/python-virt-env$  virtualenv venv

~/python-virt-env$ source venv/bin/activate

Now your ready to go

Stop it:

~/python-virt-env$ deactivate

Usefull teamviewer options for remote access


The information comes from this fine blog:

  1.  teamviewer --version print version information
      teamviewer --info print version, status, id
      teamviewer --passwd [PASSWD] set a password (useful when installing remote (ssh)
      teamviewer --ziplog create a zip containing all teamviewer logs (useful when contacting support)teamviewer --daemon status show current status of the TeamViewer daemon
      teamviewer --daemon start start TeamViewer daemon
      teamviewer --daemon stop stop TeamViewer daemon
      teamviewer --daemon restart stop/start TeamViewer daemon
      teamviewer --daemon disable disable TeamViewer daemon - don't start daemon on system startup
      teamviewer --daemon enable enable TeamViewer daemon - start daemon on system startup (default)
  2. Now we will check ID number for calling remotely our device and the current status of teamviewer daemon in our computer:
    user@home_machine:~$ /usr/bin/teamviewer –info

    TeamViewer 8.0.17147
     teamviewerd status
     teamviewerd stop/waiting
    TeamViewer ID: 9XXXXXXX7 <-- Your ID number
  3. If we don’t remember the password to connect to teamviewer in our home machine we can reset it using this command:
    user@home_machine:~$ /usr/bin/teamviewer –passwd MYnewpassword
  4. Now it’s time to enable the teamviewer daemon and launch (start) it. check that it’s up and running:
    user@home_machine:~$ sudo teamviewer --daemon enable
     mar jul 9 13:29:00 CEST 2013
      Action: Installing daemon (8.0.17147) for 'SystemV' ...
      installing /etc/init.d/teamviewerd (/opt/teamviewer8/tv_bin/script/teamviewerd.sysv)
      System start/stop links for /etc/init.d/teamviewerd already exist.
      /etc/init.d/teamviewerd start
      Starting teamviewerd...

    user@home_machine:~$ sudo teamviewer –daemon start

    /etc/init.d/teamviewerd start
      Starting teamviewerd...

Upload ssh key to a server for easy access

cat .ssh/ | ssh hostname 'cat >> ~/.ssh/authorized_keys'

ssh tunnel to a postgres dbase running on a remote server


When wanting to access a remote running postgres dbase I always forget the correct command to set up a ssh tunnel.

ssh -L 65432:localhost:5432 user@server

Rotate video 90 degrees clockwise


I’ve have a video shot with a phone and for some reason the maker thought it would be a good idea to keep the phone upright while filming.
So now I’m forced to view the video with my head turned 90 degrees.
It’s uncomfortable so lets turn this video 90 degrees clockwise.

avconv -i inputvideo.mp4 -c:a copy -q 1 -r 23.967 -vf "transpose=1" outputvideo.mp4

Restore grub after windows7 install


I get forgetting the steps so here’s a reminder.
When you dualboot with windows and install windows *after* Linux you’ll lose the grub menu and get into the proper OS anymore.
That’s not ideal.
So here the steps to restore the grub bootloader after windows has removed it.

  • Get a Linux live USB/CD/DVD and start it.
  • Start a terminal and type this
    sudo mount /dev/sda1 /mnt
    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys 
    sudo chroot /mnt
    sudo grub-install /dev/sda
  • reboot




ssh tunnel for web2py admin when no https is available


For a simpel web2py based server running on a non-https port I wanted to be able to get to the admin interface but normally that isn’t possible as you will get a “Admin is disabled because insecure channel” message.

The solution is to use a ssh tunnel:

Assuming the web2py server runs at server:8000.

ssh -L 8001: user@server

Then go in your browser to





Stop Thunderbird from eating your CPU cycles


When using thunderbird it occurred to me that it was using a lot of CPU cycles, usage of 53% were almost constant while thunderbird seems to be idling. That’s not the way.

It seems there’s a bug in thunderbird <= 17.05 (and perhaps in newer version also) that was causing this

It can be fixed by setting mail.db.idle_limit  to 30000000 iso 300000 

Be sure to check the number of zeros 🙂

You can get to that setting by going to edit > preferences > Advanced > Config editor and use the search box to find the option.

Syntax highlighting for Kivy kv language in pycharm


The nice folks on the Kivy ML have provided a kv language highlighting for Pycharm 🙂

For easy retrieval I just post the original announcement together with the settings file:

For anyone using PyCharm, please find attached a file type extension that give you full syntax highlighting for KV files. Courtesy of Xuton…;-)
To install:
On Pycharm’s main menu, click File-> Import settings

    Select this file, then it will come with a dialog with filetypes ticked. Just click ok or whatever and then its there.

You can get the file here:


Go to Top