This is a decompiled (using smali2java decompiler) MifiService.apk from chinese 4G modem UZ801 running Android 4.4.4.
The smali2java compiler is not perfect, there are some bugs. I have fixed critical bugs manually.
This is the Android Studio project. To build the project, had to modify the SDK android.jar to make hidden methods available. Also, the official SDK19 lacks methods (TelephonyManager:enableDataConnectivity(), android.net.wifi.WifiDevice class etc). I have manually added all these to android.jar classes. Replace your default android.jar in Android\Sdk\platforms\android-19 folder with the modified one.
- Added useful information to the "Device Information" page, such as temperature, RSSI, LTE RSRP, RSRQ RSSNR, eNB/Cell, PCI parameters.
- Wifi AP is optional now. Requires manual reboot. When mobile connection is lost, rndis network breaks also for a few seconds. I don't know how to fix this issue. This modification also requires
services.jarandinitmifiservice.shto be updated on your device.
- SMS managing (at least reading).
- USSD sending.
- LTE band managing (I have no idea, but it is related with NV items reading/writing, maybe qualcomm diag port etc..). Currently we can use QXDM to enable/disable LTE bands.
- Enable adb by visiting usbdebug.html (if not yet)
- Download modified MifiService.apk and other modified files from cloud drive
- Push these files using adb and reboot the device:
adb remount
adb push ./system/framework/services.jar /system/framework/
adb shell chmod 644 /system/framework/services.jar
adb push ./system/bin/initmifiservice.sh /system/bin/
adb shell chmod 755 /system/bin/initmifiservice.sh
adb push ./system/priv-app/MifiService.apk /system/priv-app/
adb shell chmod 644 /system/priv-app/MifiService.apk
adb reboot