I'm using a database backend to store the programs and commands. It turns out that's easier than manipulating raw files. I'm also using the same service abstraction I used for TinyG for Android that allows selection of either network or USB host mode interaction. So that means that I should be able to roll this USB Accessory mode capability into the core program without a lot of pain.
I've started to think about refactoring the existing TinyG for Android code. Instead of having a separate app with the USB support, I'm probably going to make a multi-ADK release. So this means that folks who can use the advanced features will automatically download one app with all the code, and the ones who can only use a subset of a capabilities will get another. It should make some of the handling a little less tortured.