Saturday, March 1, 2014

Kobo Aura HD: Bugfix the subquality in the android kernel - WiFi, USB, frontlight and rotate tap zones

I fixed the subquality in the Aura HD android kernel. Practically all things work properly now: WiFi, USB, frontlight and the rotate tap zones. ADB also works, here is the instructions about how to make that the computer could detect the device.

Firstly you need to download the patches: Android System.tar.bz2 and aura_hd_android_kernel.uboot.
Now you need to create the folder named "android.patches" on the SD card with Android and you need to copy these two files into that folder.

To apply these fixes you need the computer with Linux. If you don't have the computer with Linux you can use any live-CD. I recommend Debian, it is for it I'll give commands' examples. So download the iso-file by the link above and burn it to the CD. Or you can make the bootable USB-stick from this iso-file. If you have only one computer then you should print this instruction. Or you can rewrite it by hand. :) The computer must be connected to the Internet. It'd better have a wired connection than wireless. Boot the computer from the created CD or USB-stick. In "Boot menu" you should choose first item - "Live (486)". After the finish booting the next prompt will appear:

user@debian:~$

Install software that will be needed (that you should type from the keyboard is blue bold):

user@debian:~$ sudo aptitude install lsscsi
The following NEW packages will be installed:
  lsscsi 
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 35.8 kB of archives. After unpacking 104 kB will be used.
Get: 1 http://http.debian.net/debian/ wheezy/main lsscsi i386 0.26-2 [35.8 kB]
Fetched 35.8 kB in 0s (77.4 kB/s)
Selecting previously unselected package lsscsi.
(Reading database ... 57355 files and directories currently installed.)
Unpacking lsscsi (from .../lsscsi_0.26-2_i386.deb) ...
Processing triggers for man-db ...
Setting up lsscsi (0.26-2) ...
user@debian:~$

Now you have to insert the SD card with Android into the card reader. If you have an external card reader or USB-microSD adapter you have to plug it to your computer. Next you need to discover the device name for the card reader in Linux system:

user@debian:~$ lsscsi
[0:0:0:0]    cd/dvd  Optiarc  DVD RW AD-7170A  1.02  /dev/sr0 
[2:0:0:0]    disk    ATA      FUJITSU MHW2120B 0000  /dev/sda 
[10:0:0:0]   disk    Generic- Card Reader      1.00  /dev/sdb 
user@debian:~$

or

user@debian:~$ lsscsi
[2:0:0:0]    disk    ATA      ST31000528AS     CC38  /dev/sda
[3:0:0:0]    cd/dvd  Optiarc  DVD RW AD-7240S  1.03  /dev/sr0
[10:0:0:0]   disk    Generic  Storage Device   0.00  /dev/sdb
user@debian:~$

In my case the card reader device name is /dev/sdb and this name you will have to substitute instead /dev/SDCARD in the commands that will be given below.

Next you need to refresh cache for the SD card's partition table:


user@debian:~$ sudo fdisk -l /dev/SDCARD

Disk /dev/sdb: 7901 MB, 7901020160 bytes
244 heads, 62 sectors/track, 1020 cylinders, total 15431680 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00079b22

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1           61440    11562165     5750363    b  W95 FAT32
/dev/sdb2        11562166    12986367      712101   83  Linux
/dev/sdb3        12986368    13391871      202752   83  Linux

user@debian:~$

Mount the SD card partition that contains the patches:

user@debian:~$ sudo mount /dev/SDCARD1 /mnt
user@debian:~$

Copy the patches from the SD card:

user@debian:~$ cp -Rv /mnt/android.patches/ ~
`/mnt/android.patches/Android System.tar.bz2' -> `/home/user/android.patches/Android System.tar.bz2'
`/mnt/android.patches/aura_hd_android_kernel.uboot' -> `/home/user/android.patches/aura_hd_android_kernel.uboot'
user@debian:~$

Unmount the SD card:

user@debian:~$ sudo umount /mnt
user@debian:~$

Mount the Android's system partition on the SD card to apply the patch:


user@debian:~$ sudo mount /dev/SDCARD3 /mnt
user@debian:~$

Go to the partition that was mounted earlier:


user@debian:~$ cd /mnt
user@debian:/mnt$

Apply the patch:


user@debian:/mnt$ sudo tar xvf ~/android.patches/Android\ System.tar.bz2
system/
system/wifi/
system/wifi/bcmdhd.ko
system/wifi/sdio_wifi_pwr.ko
user@debian:/mnt$

Go to the home folder:

user@debian:/mnt$ cd ~
user@debian:~$

Unmount the SD card:

user@debian:~$ sudo umount /mnt
user@debian:~$

Go to the folder that contains the patches:

user@debian:~$ cd ~/android.patches/
user@debian:~/android.patches$

Apply the rest patch. (WARNING! Make sure you take the right device for the next steps.)

user@debian:~/android.patches$ sudo dd if=./aura_hd_android_kernel.uboot \
>  of=/dev/SDCARD seek=2048 bs=512
4851+1 records in
4851+1 records out
2484196 bytes (2.5 MB) copied, 0.802216 s, 3.1 MB/s
user@debian:~/android.patches$

That's all. You can boot the updated Android now.


I was asked on one of the forums: "Why are you tormenting us with this Linux? Would you make the new SD card where all those patches have already been applied?" Yes. That would be simplier for non advanced users and I made that image. It is here: 2014-02-28_Android_Kobo_Aura_HD.7z

Here is the homescreen screenshot:

And the photos:
The Front Light is turned on:

The Front Light is turned off:




15 comments:

  1. Wow good job..Thank so much...you are BEST!!

    ReplyDelete
  2. Excellent.
    Everything works fine except one thing.
    Slip covers are not working for me.

    Thank you!!

    ReplyDelete
  3. Great job. Lanscape mode is not working fine with Coolreader or Alreader.
    A lot of thanks, Angor00.

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. Is it possible to go back to the original firmware without leaving any traces of this patch on the internal SD Card?

    ReplyDelete
  6. Great job!
    Thanks !!!

    ReplyDelete
  7. This comment has been removed by the author.

    ReplyDelete
  8. hehe, this is so sweet! thanks for all the hard work!

    i just ordered a Aura HD and can't wait to try this.
    just wondering, would it be possible/advisable to install android directly onto the internal SD card & keep the removable one for storage space? (eg: abandon the Kobo software altogether?)

    ReplyDelete
  9. Can this patch my Kobo Touch so that rotated tap zones work?

    ReplyDelete
  10. Just wondering if you will be releasing any further updates? Excellent job getting this up and running!

    ReplyDelete
  11. good work! will your work spread over other kobo devices (wish android on aura 6)

    ReplyDelete
  12. I feel stupid: connecting my N204B to my computer via USB, I can't see anything else but the books in the library. No way to gain control of the android section, no.kobo dir, no way to unzip files in the reader.
    What I'm missing?
    Thank you

    ReplyDelete
  13. I cannot install Android anymore on my Aura HD with the latest firmware 3.3.0.
    Has anyone who upgraded found a way around?

    ReplyDelete
  14. Has anyone any instructions on how to get this working for the Kobo Aura (non HD) version?

    With thanks

    ReplyDelete
  15. Any hope of getting a newer version of Android up and running?

    Thanks for the good work!

    ReplyDelete