diff options
| author | Joey Hewitt <joey@joeyhewitt.com> | 2017-08-24 22:33:55 -0700 |
|---|---|---|
| committer | Joey Hewitt <joey@joeyhewitt.com> | 2017-08-30 21:50:54 -0700 |
| commit | 4314e83ce7bf8d2e41bacdff167dc0d81d2c0170 (patch) | |
| tree | 33f7bb34430b077ae95634c2d790e1597a06188c | |
| parent | b591bc3bce5d5b2cb26fd76cd6169ea17fc9f222 (diff) | |
| download | frameworks_opt_telephony_ril_ofono-4314e83ce7bf8d2e41bacdff167dc0d81d2c0170.tar.gz frameworks_opt_telephony_ril_ofono-4314e83ce7bf8d2e41bacdff167dc0d81d2c0170.tar.bz2 frameworks_opt_telephony_ril_ofono-4314e83ce7bf8d2e41bacdff167dc0d81d2c0170.zip | |
update README with current status
| -rw-r--r-- | README.md | 47 |
1 files changed, 35 insertions, 12 deletions
@@ -6,11 +6,7 @@ The goal of this project is to write an Android RIL daemon implemented on top of 1. Alpha implementation in Java 1. Write a RIL class that the com.android.phone app (via the telephony framework) will load. This class will interface with oFono. - 1. For simplicity, oFono will be running on Linux 1. The oFono instance will be using the `rilmodem` driver. Yes, this first version of the RIL will be built on a RIL! This will hopefully mean fewer "moving parts" and missing functionality to start, allowing us to focus on the basic architecture. - 1. The `rild` sockets for the original RIL will be mapped over something like `adb forward` so it's transparent -1. Port oFono to Android on-device - 1. This old port might help: https://github.com/nitdroid/platform_external_ofono 1. Pivot oFono onto the `qmimodem` driver 1. May need to write an interface for `qmuxd`, or stop using it at that point (this may kill other hardware) 1. Implement missing features in oFono's `qmimodem` (e.g. voice calls) @@ -24,21 +20,48 @@ The goal of this project is to write an Android RIL daemon implemented on top of * system/core/rootdir/init.rc - add dbus and ofono services * install dbus conf file in /system/etc/dbus.conf * sepolicy updates for dbus and radio interop -1. Build from CM12.1 checkout - * `mmm ~/Projects/qcril/android_hardware_ril_ofono` - * Might depend on the rest of android or at least RIL having been built before. - * Run the `start` script in the root directory. +1. Build from CM12.1 checkout with [this manifest](https://github.com/scintill/android/commit/424776d7635ddfae3591516e032cc5820f1dfc1a) + * `mmm ~/ril_ofono` + * (Might depend on the rest of android or at least RIL having been built before.) +1. Running + * Execute the `start` script in the root directory. + * Getting ofono up can be a bit of an ordeal, on my device at least, due to [apparent timing issues with the rilmodem backend](https://lists.ofono.org/pipermail/ofono/2017-August/017355.html) (my post), so it looks something like this: + * `adb shell stop` + * `adb shell start ofonod-debug` + * `adb shell dbus-send --print-reply --system --dest=org.ofono /ril_0 org.ofono.Modem.SetProperty string:"Online" variant:boolean:"true"` + * \# look for a bunch of SIM I/O calls in oFono logs. If not, `adb shell killall ofonod` and try the dbus-send again. + * `./start` + * `adb shell start` +1. Debugging + * You can forward the dbus to your PC: `adb forward localfilesystem:/tmp/dbus-android localreserved:dbus`. Then use the dbus address `unix:path=/tmp/dbus-android` for dbus-send, d-feet, etc. + * Look for log tags `RilOfono`, `OfonoUtils`, and `ofonod` (all in the radio log) + +# Features + +Nothing is thoroughly tested nor tried on a broad selection of hardware/networks yet. + +* Basic SMS sending and receiving + * Has issues with long messages (sending a long message will work, but it will arrive fragmented; receiving a long one will not work at all); see TODO below +* Basic voicecalls: dialing, receiving, answering, rejecting + * On my device, oFono seems unable to give Line ID (I think it's a RIL parcel mismatch), so numbers are displayed as "Unknown" +* User-intiated USSD (special dial codes, such as `#999#` which displays balance on my carrier) +* Basic data connections + * Might be a little flaky; see TODO below +* Reporting of phone #, ICCID, voicemail # to Android # Resources and Credit * https://github.com/nitdroid/ofono-ril for some help on mapping ofono properties to Android RIL -# TODO -* dexopt/proguard? - see notes in Android.mk -* make sure socket operations on the main thread trigger strict mode exceptions (are Unix sockets a loophole?) -* make dbus exceptions be checked exceptions, so the compiler will find them and I have to handle them +# Bugs and TODO * SMS send/receive - current implementation is limited when it comes to things like long messages. We could concatenate/split PDUs in the RIL to map on to Ofono's nice API, but we will not be able to implement a few things that raw PDUs can do. And duplicating the work is ugly anyway, so I think I will just patch Ofono with raw PDU APIs. +* look at and fix flaky data call setup. It seems the framework doesn't ask us to set up a connection, even if the user toggles the data slider. + * Toggling airplane mode, or restarting com.android.phone with the slider on, may help as workarounds. + * Also, turning off wifi may be needed to make sure the framework has a reason to enable mobile data +* make dbus exceptions be checked exceptions, so the compiler will find them and I have to handle them +* dexopt/proguard? - see notes in Android.mk +* crashes in airplane mode trying to query properties on probably not-up interfaces # License |
