Timur Kernel on 2013 Nexus 7 WiFi (flo)

Timur Kernel on 2013 Nexus 7 WiFi (flo)

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

  1. Make a folder somewhere on your computer (like your desktop) that you are going to put all of your downloads into.
  2. 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.
  3. You’re going to need to unlock your bootloader if you haven’t already. Unlocking your bootloader WILL erase your device. Follow the steps outlined here. In short, these steps are:
    1. Enable USB debugging on the device
    2. Open a command prompt in your folder from step 1
    3. Type: adb reboot bootloader
    4. Press enter to execute the command
    5. Wait for the device to boot into the bootloader…
    6. Type: fastboot oem unlock
    7. Press enter to execute the command
    8. Use the volume buttons on the device to change selection to Yes
    9. Use the power button on the device to select Yes
    10. Unlocked!
  4. You’re going to need to flash a new stock ROM to your device. Timur doesn’t call out LMY48G as supported in his instructions, but LMY48T is!) so go to Factory Images for Nexus Devices and download the image for 5.1.1 (LMY48T).
  5. Extract the contents of the LMY48T tar.gz file into your folder from step 1.
  6. 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…
    1. Follow all the instructions on the device to get set up again with your new factory ROM
    2. 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.
    3. Follow all the steps again to get USB debugging available again
  7. 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).
    1. Download the TWRP multirom image to your folder created in step 1
    2. Put your phone into bootloader mode by typing: adb reboot bootloader
    3. Press enter to execute the command
    4. Wait for your phone to enter bootloader mode
    5. Type: fastboot flash recovery TWRP_multirom_flo_20150328.img
    6. NOTE: if you did not download the EXACT same TWRP as me, then change it to the correct file name…
    7. Press enter to execute the command. The device should inform you that flashing worked.
    8. Use the volume buttons on the device to change selection to booting to recovery
    9. Use the power button to select boot to recovery
    10. … You should see the TWRP splash as you boot to recovery
    11. Wait for this to load
  8. You’re almost there!
  9. 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.
    1. 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
    2. 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
    3. We need to push these two files to the device’s internal SDCARD, so…
    4. NOTE: please use the correct file names in the following commands if yours are different…
    5. Type: adb push timur-services-N7-2-511e-v3-2015-10-06.zip /sdcard/
    6. Press enter to push the file… ADB should tell you if it worked.
    7. Type: adb push timur-usbhost-flo511-v3.0-2015-10-20.zip /sdcard/
    8. Press enter to push the file… ADB should tell you if it worked.
  10. On the device, press the big “install” button on the main part of the TWRP recovery
  11. 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)
  12. Flash ’em…
  13. Use TWRP to reboot… mine prompted me to install supersu. I opted for YES.
  14. 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 🙂
  15. Once the phone boots up, go to about tablet under settings and check your kernel… It should say timur in there!
  16. 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.
author avatar
Nick Cosentino Principal Software Engineering Manager
Principal Software Engineering Manager at Microsoft. Views are my own.

This Post Has 18 Comments

  1. Ciao Mongolis

    Nice write-up Nick – I appreciate you sharing your very detail oriented instructions!
    I’m fairly saavy with Android but having a nicely laid out list like you’ve provided is still invaluable.

    I just purchased a 2013 Nexus 7 for in-car purposes and will be following your instructions to a tee while I have some time to myself this holiday season!

    Unfortunately, Timur has deactivated the “Donate” button until next year and I have no access to the files you list – is there anyway you could upload the files you sourced from Timur to your cloud storage of choice and shoot me a link?

    I would be immensely grateful!

    Either way, thanks for the write-up!

    Ciao.

    1. ncosentino

      Hey!

      Thanks for the kind words–I appreciate it. I’m glad that you’ve found the write-up helpful. (There’s much more over at http://www.ignantt.com where I have my vehicle’s build progress being posted).

      Unfortunately, I won’t be able to upload the files provided by Timur. Don’t get me wrong, I’d love to, but it would be going against the redistribution agreement. It’s unfortunate, really.

      It looks like the button is only disabled until January 4th (which shoots your holiday project in the foot, I realize), but that’s not so bad really. There’s a lot of other stuff to get figured out in the meantime, honestly. If you have the time, I suggest checking out the link I mentioned to see if you can cover some more ground while you wait for Timur.

      Sorry 🙁

      1. Ciao Mongolis

        Completely understand Nick… I wasn’t sure on what the redist agreement would and wouldn’t allow.

        Someone over at XDA quoted Timur as being OK with his work being mirrored but that was likely before he was mandating donations for access (an oxymoron in my book but each to their own).

        Either way, I’ve shot him an email on the off chance he’ll fix me up before Jan 4 but as you said yourself – I’ve got a ton of other work in front of me before I can get too intimate with the Nexus!

        Nice ride BTW… interestingly enough, we’ve shared the same frustrations of trying to get an accurate representation of vehicle colour!
        A few years back I was contracted to photograph a private collection of historic Australian production and race cars… one car in particular presented a real challenge with a shade of red that was nigh on impossible to portray accurately.
        I’d say it was very similar to your own wrap colour but I wouldn’t know unless I saw it in the flesh!

        Despite best efforts with various colour calibration tools, I ended up having to make changes manually by eye to get the desired results.

        Anyway mate, thanks for the response – I’ll keep tabs on your build progress…

        1. ncosentino

          Haha, yes, exactly. Before the “mandatory donations” I would have had less of an issue re-hosting some of that work. I’m still kind of bummed out that I had to pay for it (especially because it was a gamble that it would even work in the first place), but he is actually donating the profits which is cool.

          Thanks for the compliments! The car has been a fun project for me. Pretty funny that you had some of the same struggles with a similar shade of red… It’s a challenge! Most pictures I snap I have to modify after to get the right shade of red showing through.

          Keep me posted on how you’re progressing and don’t hesitate to chime in on the comments! If there’s stuff I can cover in a post, I’d be happy to write up about it if I know how to solve it 🙂

  2. Baxter

    Nick, this is a godsend to me. I’ve been working on this on and off for months with no success. Your step-by-step was perfect and got me up and running. In particular, it was that I was using LMY48G, which everyone said should work. With your help, I loaded LMY48T, plus the multirom TWRP, and now everything is up and running.

    If you had a bitcoin address, I’d toss you a tip.

    1. ncosentino

      Hey Baxter!

      Honestly, I’m so glad to hear that this post was actually helpful. I was beating my head against the wall trying to figure where I had gone wrong originally, and decided it’d be worth the write up if just ONE person got caught on the same problem.

      Let me know how the rest of your setup goes (is it going into a vehicle?)! The rest of my install is over here. Check it out 🙂

  3. Baxter

    Update. I broke down and got a 4G LTE version of the Nexus 7. LMY48T is for the Wifi. It won’t load on the LTE (deb) version. I’m currently downloading LMY48* (where *=P, U, X, Z). I’ll start with LMY48U and go from there if it doesn’t work. Wish me luck!

    1. ncosentino

      Oh snap! Good luck!

      I’m waiting on a new radio harness and time delayed relay… And I should be all done!

      Let me know how it goes.

  4. Baxter

    Looks like LMY48U worked! I also used a more recent version of TWRP: TWRP_multirom_deb_20150630.img and, of course, the deb version of Timur’s Kernel: timur-usbhost-deb511-v3.0-2015-10-20.zip.

    Thanks again for your help, Nick. I’ll try to remember to post a photo when it gets all spiffed up. It’s going in a 2008 Mazda MX-5.

  5. fuzzie

    Where’d you get the deb version?

  6. ian

    Thanks mate, your instructions are easy to follow compared to timur’s…thanks for taking the time to help out. I am a noob to this and appreciate it!!!

    1. ncosentino

      Hey man! Glad I could help you out! That’s awesome to hear 🙂

  7. Ravi

    Thanks again for your help in getting my Nexus 7 2013 project completed. Does anyone have a link to an EasyCap device that is supported by Timur’s USB ROM? The one I picked up one online and unable to get it to work 🙁

    1. ncosentino

      Hey man, glad it helped!

      I picked up two really cheap ones from aliexpress, but unfortunately the links turn over super fast. There’s EZ cap, and EasyCap… One works and one doesn’t, but I can’t recall which is which. This is why I grabbed one of each for pretty cheap 🙂

  8. TapOutMs

    Help someone i’m new on this and i want to use my table in the car can some one help i got everything almost done but i need this two files timur-services-N7-2-511e-v3-2015-10-06.zip and timur-usbhost-flo511-v3.0-2015-10-20.zip or some othere kernel please HELP

  9. TapOutMs

    Ok do you know where i can get the Timur’s kernel so i can flash it on my (LMY48T)please let me know if you can thank you

    1. ncosentino

      Timur states in his setup instructions that LMY48T is supported, but the only way you can get the Kernel is by purchasing it from him. I’d suggest trying to contact him if you have more questions in particular about it though.

Leave a Reply