How can I control the Android UI (especially back & home button) on Android 6 with a USB gamepad?

I have the Docooler R39 Android TV Box (running 6.0) and a cheap generic USB gamepad with the USB ID 0079:0006 ("Dragonrise Controller"). Unfortunately, any button (except for dpad and left joystick, which I can use to move selection focus in most apps and system UI) triggers a "select" action, so I still need a USB keyboard to have full control to get "back", "home" and "recent apps" working.

On other platforms, e.g. Kodi on Linux or LibreELEC on Raspberry Pi, I can map all buttons of the same controller. However, in Kodi for Android, only the dpad gets recognized by the app. Same issue in emulator apps like Mupen64plus for Android. On my Galaxy S5 running Android 7.1 I have the same problem with that controller.

I know Android introduced official Gamepad support in like 5.0, but it doesn't seem to support full UI navigation with my controller and instead intercept all gamepad actions.

Both my phone and the TV box are rooted, if that helps with changing the mapping.


I use an Xbox 360 USB gamepad and it maps the Xbox and Back buttons to Android Home and Back. I wish it wouldn't, it's very annoying to have Chrome back-navigate when you're trying to play a game! That said, it sounds like it would work perfectly for your case.

Gamepad->keycode mappings on Android are configured in .kl files. It looks like Android doesn't have a mapping for DragonRise 0079:0006 so maybe you just need to create one. Here's the file for the Xbox 360 USB:


  • 1
    So I can just put my custom .kl in /system/usr/keylayouts and reboot or do I have to rebuild Android? – cbix Aug 13 '17 at 17:25
  • 1
    Just tried it and it works! – cbix Aug 16 '17 at 12:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.