USB ROM for Nexus 7

USB ROM for Nexus 7 is an enhanced ROM based on CyanogenMod and Timur's USB Host kernel. This ROM offers extended USB functionality and support for powered USB host operation. USB ROM enables you to run your N7 in 24/7 stationary mode with many USB slave devices attached.

Kernel features

  • Timur's kernel for USB host mode charging
  • Fixed-Installation mode (sleep on power loss, optional)
  • Firm sleep (stop wake timers while in deep sleep, optional)
  • 1800mA fast charging in USB host mode (optional)
  • USB audio kernel driver enabled
  • USB audio plug&play patches for DAC plugged at boot
  • NTFS auto-mount via embedded nls_utf8 (special character support)
  • FAT auto-mount as read-only (optional)
  • USB DVB kernel drivers modules included (rtl2832, others)
  • Ath9k.ko wifi driver module included
  • Powermate + Atiremote driver modules included
  • FTDI + CP210x serial driver modules included
  • Kexec support

System features

  • USB audio plug&play handler for DAC plugged post boot
  • PowerEventManager pauses audio playback and puts device in deep sleep in case of a sudden power loss
  • Kernel monitor view for power and slave device state
  • Landscape UI (optional)
  • Fast media scanning
  • Use tethering phone as USB modem
  • Wake-up alarm control GUI
  • On-device access to kernel + system logs, upload funtionality
  • SuspendView providing access to deep-sleep history
  • Boot with ADB-over-network (optional)
  • Media buttons (volume, play/pause + next track) on nav-bar
  • USB DAC + on-device microphone
  • No device tracking, no analytics, no CaptivePortal checks
  • /etc/hosts adblock by StevenBlack
  • Scala 2.10 libraries

The only feature removed from CM is the update functionality.

Extended Settings

Live kernel state - updated while you plug power and new devices
Puts your device to sleep on power loss - and wakes it up on return of external power
Use GPS + WiFi + Bluetooth + full brightness screen. Charge battery at the same time
Keep your device sleeping until you wake it
Stop apps from executing themselves
Your phone as a USB modem
Always ADB over WiFi
Continue audio playback from where it stopped last time
Prevents data corruption due to sudden power loss
Full MediaScanner control
Fast MediaScanner
Use higher density to enlarge all UI elements
Optimal USB DAC handling

Landscape UI

Indispensable for car installations. Using the notification bar from the bottom of the screen, is the more natural approach when the device is in landscape UI all the time. Comes with navigation bar media buttons.

Media buttons on navigation bar

On the navigation bar you find four media buttons: Volume down + up, Play/Pause and Next track. The last two are shown as dark dots only. In order for these buttons to work reliably, you should only use one media application on your device. If you have more than one installed, either de-install the ones you don't use, or 'force stop' them, or disable them (pm disable PACKAGENAME). Media buttons are only available in Landscape UI mode.

Firm sleep

Firm sleep allows you to disable all wake-up alarms while the device is in deep sleep. This way, a fully charged Nexus 7 can stay in sleep mode for many weeks - much longer than it usually would.

Control wake-up alarms individually

Android allows apps to execute themselves at random times (wake or sleep). But it does not provide the user any control over this. You might want to allow only a small number of apps (Calendar) to do this. USB ROM gives you control over this.

Fast media scanning

When using .nomedia files to prevent specific folders from being scanned, what really happens, is that media files, contained in these folders, are not being moved to the media DB. But Android will still scan these folders. In USB ROM, when you activate ".nomedia results in no scan", the folders marked with .nomedia files, will also not being scanned. This can make the media scan process a lot faster.

Boot with ADB over WiFi

Whenever you connect USB slave devices, you also loose one thing: ADB over USB. In order to still be able to use Android Debug Bridge, for instance to view log files in realtime, you need to activate "ADB over network". Turn on Boot with ADB over WiFi, so you don't have to activating this manually after every reboot.

Fast charging while in USB host mode

Fast charging allows your N7 to draw up to 1800 mA (instead of up to 500 mA) from the attached power supply, while in USB host mode. Despite the name of this optional feature, it's main purpose is not to charge your battery faster (it will do this, too), but to allow the system to fetch more energy, while in heavy use. When fast charging is activated, the system will have less need (or no need at all) to make use of battery power, for it's runtime operations. Your battery will also reach 100% charge faster. But once there, the system will switch to trickle charging, despite the 1800 mA it is allowed to draw.

Supported USB audio devices

These are just some of the supported USB DAC's: CM106-F, FiiO E07 + E10 + E17, Hifimediy Sabre, VIA USB Audio Dongle, Behringer UFO202 + UCA202 + UCA222, Syba SD-CM-UAUD, Miditech Audioface2 (PCM 2902), FujitsuSiemens PortReplicator (CM 108), Aune T1 (TE7022), Turtle Beach Micro II, BERESFORD Caiman, Teralink x2, Headroom Total Bithead, Fostex PC-100USB.
Basically all standard USB audio devices should work.
Problems have been reported only with TAS1020B based DAC's.


  • You need a rooted Nexus 7.

  • For those emergency cases, please create backups of your current system!

  • If you are NOT currently running CM 10.1 or USB ROM, you need to first do a factory reset (wipe data partition). This will remove all your apps and custom settings. You may want to install GApps on top:

  • If you are already running CM 10.1 or USB ROM, you can just roll USB ROM installer "over". It will not harm your apps or custom settings.

  • To install, copy the USB ROM ZIP-archive to the internal sd-card and install via recovery.


USB ROM installers are about 168 MB in size.
USB ROM may not be used for commercial purposes.

Download images have been offered until September 28. 2014

  • Release Notes 2013-07-12

  • Release Notes 2013-06-20
    • USB tethering for all apps
    • Volume change fix (06/20)
    • included: audio policy patch for headphone jack (06/04)
    • included: PowerEventMgr standby usbrom-powerdown.jpg (06/07)
    • StevenBlack /etc/hosts (updates 03/18 -> 06/06)
    • based on CM 10.1 (updates 05/24 -> 06/20)

  • Release Notes 2013-06-07
    • The new PowerEventMgr allows you to use a custom fullscreen image for the standby transition. Just copy a JPG image with the dimensions of your screen (1280x736) to /sdcard/usbrom-powerdown.jpg and it will be shown on power loss, before the devices goes into standby mode. Please flash this ZIP installer in recovery.
  • 2013-06-04
    • The audio-policy-patch resolves an issue with audio-over-headset-jack. Please flash this ZIP installer in recovery. You should use audio-policy-patch only, if you intend to use the headset jack.
  • 2013-05-23
    • MediaScanner
      • current state being shown (idle / scanning)
      • can be invoked manually
      • fast media scanning (".nomedia results in no scan") (optional)
    • Wake-up events can be disabled individually (new GUI)
      • stop apps from starting themselves at random times
    • NTFS partition special character support
      • ntfs_nls module now included in kernel
      • auto-mount now done with "nls=utf8" by default
    • Auto-Mount external FAT partition as read-only (optional)
    • Use tethering from a phone connected via USB
      • Reverse USB tethering only works with a subset of apps (Firefox, BeyondPod and others work).
    • Volume steps: 30 instead of 15
    • USB device ID's shown under USB SLAVE DEVICES
    • FIXED: issue with OTG adapter pluged in deep sleep
    • FIXED: issue with power-button wake from deep sleep while in OTG mode
    • FIXED: Apollo starting playback post sleep, when it wasn't playing before
    • new default value for audiofocuspause to 4500 (ms)
    • Media buttons on nav-bar (by Kookie_Monster)
      • volume- / volume+ / play/pause / next-track
    • config_forceDisableHardwareKeyboard enabled (by jayman488)
    • ath.ko wifi kernel driver added as module
    • based on CM 10.1 RC2 (2013-04-11 - 2013-05-23)

  • Release Notes 2013-05-06
    • kernel stability improvements
      • in the area of "WiFi Optimizations"
      • in the area of power-events and OTG-events
    • new PowerEventManager included
      • handles transition to deep sleep on power loss
      • offers manual "Sleep now" functionality
    • "Firm sleep" support
      • if enabled, will ensure uninterrupted deep sleep
    • "excludeCreatorPackagesFromSoftEvents" (experimental)
      • provides individual control over wake-up events
      • more (see: "Alarms and "soft" wake-up events") / info / here
    • "Lock USB disk" support (experimental)
      • if enabled, will keep your /storage/usbdisk virtually mounted through power loss situations. Some apps may benefit from this, by providing continuous service
      • Apollo, for example, will be able to continue playback audio tracks loaded from the external filesystem post power-loss
    • USB ROM specific bootanimation for landscape mode built-in (contributed by Kookie_Monsters)
    • USB ROM specific bootanimations for portrait and inverse-landscape mode separately available for downloaded (contributed by Kookie_Monsters)

  • Release Notes 2013-04-29

    • PowerEventMgr released. Automatically activated by FI-mode. On power loss: will request AudioFocus, set SCREEN_OFF_TIMEOUT to 15 sec and activate AIRPLANE_MODE. On return of external power: will set SCREEN_OFF_TIMEOUT to it's original value, deactivate AIRPLANE_MODE and release AudioFocus.
  • Release Notes 2013-04-23

  • Release Notes 2013-04-17

    • USB slave discovery related issue fixed (replacing 2013-04-15 beta)
    • "wifi optimization" disabled for improved stability (on external power only)
    • better handling of WAKE interrupts
      • pulling of powered otg adapter while in deep sleep
    • SuspendView - deep sleep tracking tool
    • LogView - support for larger logs
    • Apollo - added support for AudioFocus
    • Scala 2.10 libraries available in system/framework
    • device tracking removed
      • CM and Google Analytics reporting disabled
      • CaptivePortal requests againt disabled
    • ambrosa rtl2832 dvb-t driver added; tested with: Dexatek DK DVB-T Dongle Logilink VG0002A + TERRATEC DVB-T Cinergy
    • improved log output for diagnostics
    • Screen density switcher (160 - 320 dpi)
    • based on CyanogenMod 10.1 M3 as of 2013-04-11
  • Release Notes 2013-04-01

    • Superuser security update + CM updates 03-24 - 04-01
    • Static wallpaper issue resolved
  • Release Notes 2013-03-25

    • integrated updater for alternative UI
    • WebView fling-snap (setFlingBoundries() in OverScroller)
    • integrated Screen Density changer
    • "Boot with ADB over network" unlocked (removed admin requirement)
    • WiFi AdHoc (IBSS) patches
    • CM-10.1 updates 2013-03-06 - 2013-03-24 (Apollo, Superuser, BlueDroid, mount UTF8, ...)
    • StevenBlack /etc/hosts updates
    • Kernel modules added: powermate, atiremote, nls_utf8
  • Release Notes 2013-03-07

    • based on CM 10.1 2013-03-06, including new Superuser
    • Note: To enable static wallpapers, check "Wallpaper quick render" under Settings, Launcher, Homescreen. For Nova Launcher, go to Desktop, SCROLL, Wallpaper Scrolling and check on "Force".
  • Release Notes 2013-03-06

    • LogView:
      • push to clipboard
      • push to
      • additional access to /etc/hosts
    • added "CP210x USB to UART Bridge" kernel module (/system/lib/modules)
    • merged AOSP wifi kernel patch
    • based on CM 10.1 M2
  • Release Notes 2013-03-02

    • LogView
      • additional access to previous kernel log
      • logs can now be shared (email, bluetooth, etc.)
    • CM: Fix Brightness Tile
  • Release Notes 2013-03-01

    • Added 280 media + dvb + remote control kernel modules in /system/lib/modules
    • Added 31 dvb firmware images in /system/etc/firmware
    • Added device startup scripts in /system/local for AverMedia AF9015 DVB-T
    • Live updating kernel state in USB Host setup page:
      • USB host mode
      • external power available
      • battery charging: USB / USB fast / host mode / host mode fast + charge level
      • slave charging
      • list of all connected/detected USB slave devices
      • new LogView app providing on-device access to Main, System + Kernel logs
    • Integrated StevenBlack's /etc/hosts file
    • New CM 10.1 features: secure ADB (requires adb v1.0.31 from latest SDK) and others
  • Release Notes 2013-02-16

    • based on CM 10.1 / 4.2.2
    • feature set identical to 2013-02-14
  • Release Notes 2013-02-14
    • resolved FI-mode issue: "DAC not accessible post deep sleep"
    • audio stream MUTE function (physical button) implemented
    • Boot with ADB-over-network option implemented
    • GrabFocus: automatically activated in FI-mode only
    • GrabFocus: changed audio focus method
    • GrabFocus: added 750ms delay between POWER_CONNECTED and audio focus release
  • Release Notes 2013-02-10
    • support for multi-channel DAC's (FiiO E10/E17, Hifimediy Sabre) in p&p mode
    • FI/OTG-mode selection will be kept through reboots
    • resolved two additional causes for OTG adapter pull freeze
    • separate installer for Nexus 7 / 3G tilapia (alpha)
  • Release Notes 2013-02-06
    • initial release
    • based on CM 10.1 / 4.2.1