I am using BTSSM as an access port replacement for my 2019 STI, of course this ECU is not supported so you have missing fields, knock detection doesn't work, etc.
The developer is MIA, the app isn’t open-source, and there was basically no way to add new ECU IDs. I tried to reach out to the developer to offer my assistance in updating the app, never heard back... so I ended up reverse-engineering the APK myself.
Good news: it is possible to add new ECU IDs and field definitions.
I put together a video showing exactly how I got it working on
YouTube. Make sure to check the comments as well!
Steps:
1. download APK tool: Apktool
2. Install APK tool: Install Guide | Apktool
3. install android command line tools
3a.
https://developer.android.com/studio | command line tools at the bottom
3b. extract the tools to a location
3c. add the tools to your PATH
4. decompile BTSSM: apktool d btssm-20250101.apk -o btssm-decompiled
5. Identify your ecu:
this will be in your ece definition xml
6. Identify the last character of your ecu id
example: AE5T201V = V
7. open the corresponding ecu{char}.enc file from \btssm-decompiled\assets\ecu{char}.enc
8. decode the encoded file using a base64 decoder
example:
https://www.base64decode.org/ (check decode each line separately.)
9. add lines for your ecu
example: copy the definition closest to yours, and then go line by line replacing it with your information
10. open ecuindex.enc, decode the base64, and add a line for your ecu \btssm-decompiled\assets\ecuindex.enc
example: AE5T201V|I|A62A907107|USDM;16;IMPREZA;STI;MT;3395;0.36;2.5
11. re-encode ecuindex.enc as base64 and save it
12. re-encode your ecu{char}.enc as base64 and save it
13. if you added any new permanent fields to ecu{char}.enc, you need to add their IDs to gauges.txt
example: DMSDVEB|0|150|11|10|
14. generate a key using keytool
example: keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000
15. build the apk with the changes using apktool
example: apktool b btssm-decompiled -o btssm-new.apk
16. zipalign the apk
example: zipalign -v 4 btssm-new.apk btssm-modified-aligned.apk
17. sign the apk using apksigner and your keystore
example: apksigner sign --ks debug.keystore --ks-key-alias androiddebugkey --ks-pass pass:123456 btssm-modified-aligned.apk
18. backup your existing BTSSM settings
19. uninstall existing BTSSM
20. install your modified version and enjoy