Background on Timur’s Kernel

I got fed up with having a pretty crummy head unit in my 2012 Audi TT RS (named Ignantt), and decided that it was time to take matters into my own hands. Part of doing a Nexus 7 head unit install in a vehicle involves powering the tablet up with a USB on-the-go (OTG) cable and being able to not only power the device but also plug in USB devices into the tablet to use. In order to get this working, everyone seems to be relying on this kernel from Timur. As per Timur’s site:

This feature allows you to connect one or more USB slave devices to your tablet and charge it at the same time. This allows you, say, to operate an external USB DAC without the tablet ever running out of power. To use this feature you will need an “OTG charging” – or a std. OTG adapter combined with a USB-Y cable.

Right-o. So yesterday evening after work I spent almost the entire night trying to get this going (aside from eating dinner and hitting the gym). I really feel that this should have been significantly easier for me, and when I reflect on how the whole thing went down, the actual process IS actually easy… It’s just that there are a few points where if you deviate slightly based on your device, EVERYTHING stops working. With that said:

This guide is for ASUS Google Nexus 7 Tablet (7-Inch, 16 GB, Black) 2013 Model only (Android 5.1.1 build LMY48G). It can be adapted to work with other models, I’m sure, but I plan to explicitly call out where my missteps where so that anyone with the exact same hardware as me can have a smoother ride. I also take ABSOLUTELY NO RESPONSIBILITY if you brick your device.

Step-by-Step

Make a folder somewhere on your computer (like your desktop) that you are going to put all of your downloads into.

Make sure you have ADB and FastBoot on your path, OR you put all of the necessary files to run ADB and FastBoot from a command prompt into the folder you made in step 1.

Extract the contents of the LMY48T tar.gz file into your folder from step 1.

Run the flash-all.bat file that was extracted from the LMY48T download. When this completes successfully, you will have a phone in a brand new state…

Follow all the instructions on the device to get set up again with your new factory ROM

Go to “About tablet” in settings and check that build number is now LMY48T… If it’s not, then DO NOT CONTINUE. You’ll need to get LMY48T before continuing with these steps.

Follow all the steps again to get USB debugging available again

You’re going to need to flash a recovery onto your device next. I used TWRP for this. HOWEVER, not just any TWRP worked for me. I needed to use the “multirom” version of TWRP (specifically, I used TWRP_multirom_flo_20150328).

Download the TWRP multirom image to your folder created in step 1

Put your phone into bootloader mode by typing: adb reboot bootloader

Press enter to execute the command

Wait for your phone to enter bootloader mode

Type: fastboot flash recovery TWRP_multirom_flo_20150328.img

NOTE: if you did not download the EXACT same TWRP as me, then change it to the correct file name…

Press enter to execute the command. The device should inform you that flashing worked.

Use the volume buttons on the device to change selection to booting to recovery

Use the power button to select boot to recovery

… You should see the TWRP splash as you boot to recovery

Wait for this to load

You’re almost there!

We need to grab the timur files now. I was a little thrown off when navigating the FTP, but you only need TWO files: the host and the services files.

Download timur-services-N7-2-511e-v3-2015-10-06.zip (or whatever the latest version of services is with 511-e is) into your folder created in step 1

Download timur-usbhost-flo511-v3.0-2015-10-20.zip (or whatever the latest version of usbhost is with flo511 is) into your folder created in step 1

We need to push these two files to the device’s internal SDCARD, so…

NOTE: please use the correct file names in the following commands if yours are different…

Type: adb push timur-services-N7-2-511e-v3-2015-10-06.zip /sdcard/

Press enter to push the file… ADB should tell you if it worked.

Type: adb push timur-usbhost-flo511-v3.0-2015-10-20.zip /sdcard/

Press enter to push the file… ADB should tell you if it worked.

On the device, press the big “install” button on the main part of the TWRP recovery

Add both zips that you pushed to the device (remember, they are in the /SDCARD/ folder and you’ll need to make sure TWRP is filtering by zips)

Flash ’em…

Use TWRP to reboot… mine prompted me to install supersu. I opted for YES.

As the phone is booting up, it may say some stuff about optimizing apps… If it does this for forever and then reboots and keeps doing this again for forever, it’s very likely that you mismatched the timur files… I encountered this problem twice and had to reflash the correct stock ROM again… so head back to step 1 🙂

Once the phone boots up, go to about tablet under settings and check your kernel… It should say timur in there!

If you saw timur in step 15… You’ve done it!

NOTE:If anyone goes through this guide and wants to suggest clarifications, please comment and I’ll try to update it.

Gotchas

I had to use the correct version of TWRP (the multiboot one) to get anywhere with this. I tried latest releases of CWM and TWRP but neither could seem to mount my system partition when doing the zip installs. This was incredibly frustrating and probably chewed up around two to three hours of my time debugging. I tried rooting etc… Nothing would fix it. The ONLY thing that seemed to work was TWRP multiboot.

My first pass through getting timur kernel installed resulted in a bootloop, which was super frustrating. Timur called out specific builds of Android that his kernel works for, and even though LMY48G wasn’t listed, I guess at which files to use and it failed miserably. Lesson learned. This is why i suggested flashing one of the supported stock Android images RIGHT at the beginning. If you don’t get everything lined up (and he’s explicit about this… I was just being dumb) then you will very likely encounter problems and need to redo everything.

I work as a team lead of software engineering at Magnet Forensics (http://www.magnetforensics.com). I'm into powerlifting, bodybuilding, and blogging about leadership/development topics over at http://www.devleader.ca.