I've been using AutoEnginuity with the BMW extensions. Fully supported software, not pirated. Runs a few hundred bucks for the adapter and software. Primarily windows. Will run on a windows tablet.
I started looking around again recently for something easier to whip out than the laptop - preferably wireless, etc. BMWhat is now called "Carly for BMW" and is available on iOS and android. There is a free version to try and the full app is $45. Torque is also used widely here, but is just Android.
EDIT 11:15 pm: downloaded free version of Carly for BMW to try on iOS but when I select E53 X5, it says "to access these ECU's you need to use USB-OBD on Android" so, looks like no wireless support. Also noticed some features require $5 or $10 in-app purchases after the $45 you pay for the app and about $40 for the interface.
EDIT #2 - Wrote to Carly to ask about the warning and got a real human answer. E53 is supported using wired interface for Android only if the device has USB OTGAndroid using a wired interface. No wireless, No iOS.
"Hello,
With Android and a fully usb-otg capable Android device it is already
possible to do diagnoss and coding with iPhone it isn't possible yet.
Here you can read about it:
What are the current projects of Carly Connected Car? | Carly
Für sämtliche Fragen (sowohl zu Adapter als auch zu App) kannst Du Dich
jederzeit gerne an uns wenden./
You can write us for any kind of questions regarding the adapters or the
app.
Grüße aus München / Greetings from Munich,
Tina – Carly Connected Car"