[Samsung Galaxy S 5 Unified Development] BLepers:
I dug a bit into the problem. I'm even more confused now :)

What I've done so far:

# adb shell dumpsys telephony.registry
mServiceState={mVoiceRegState=0(IN_SERVICE), mDataRegState=0(IN_SERVICE) .... # When in normal operation
mServiceState={mVoiceRegState=0(IN_SERVICE), mDataRegState=1(OUT_OF_SERVICE) .... #When in airplane mode

So data is off, but voice service is still on in airplane mode? Is that expected?

This also shows in the *#*#4636#*#* phone info app: when in airplane mode

"Current network: YES OPTUS"

"voice service: in service"

"voice network type: LTE"

"signal strength: -1dbm" (that I think is good)

I tried to call the telephony service functions directly (found a tutorial online, unfortunately I'm too new to post links :/)

#cat ./frameworks/base/telephony/java/com/android/internal/telephony/ITelephony.aidl | gcc -P -E - | tr '{};\n\r' '\n\n\n ' | grep -v ^$ | sed -e '1,/interface\s/ d' | cat -n
27	void toggleRadioOnOff()
31	boolean setRadioPower(boolean turnOn)
# e.g., adb shell service call phone 31 i32 0 # turn power off
Result: Parcel(00000000 00000001 '........')

I played a bit with these functions. These functions seem to do something more than the airplane mode. When I am in airplane mode and switch back to normal mode, I'm immediately connected to the network. With these functions, it takes some time for my mobile to reconnect (as I would expect after leaving airplane mode? Unless some optimization?)

The radio power however still shows as "on" on the *#*#4636#*#* info app so I'm not sure if these really work.

When calling the "setRadioPower" function I sometimes get errors in "adb logcat" (sometimes, not always, couldn't really find a reason why). Not sure if this is related... Error 42 doesn't sound good (unless it is a very geeky reference and extremely bad error naming practice :)) ):

11-19 14:52:31.710 403 403 I rmt_storage: rmt_storage_connect_cb: clnt_h=0x93 conn_h=0xa8b97038
11-19 14:52:31.711 403 403 I rmt_storage: rmt_storage_rw_iovec_cb: /boot/modem_fs1: clnt_h=0x1: req_h=0x98 msg_id=3: R/W request received
11-19 14:52:31.711 403 403 I rmt_storage: wakelock acquired: 1, error no: 42
11-19 14:52:31.711 403 623 I rmt_storage: rmt_storage_client_thread: /boot/modem_fs1: clnt_h=0x1 Unblock worker thread (th_id: -1464551056)
11-19 14:52:31.839 403 623 I rmt_storage: rmt_storage_client_thread: /boot/modem_fs1: clnt_h=0x1: req_h=0x98 msg_id=3: Bytes written = 1572864
11-19 14:52:31.839 403 623 I rmt_storage: rmt_storage_client_thread: /boot/modem_fs1: clnt_h=0x1: req_h=0x98 msg_id=3: Send response: res=0 err=0
11-19 14:52:31.839 403 623 I rmt_storage: rmt_storage_client_thread: /boot/modem_fs1: clnt_h=0x1 About to block rmt_storage client thread (th_id: -1464551056) wakelock released: 1, error no: 0
11-19 14:52:31.839 403 623 I rmt_storage:
11-19 14:52:31.843 403 403 I rmt_storage: rmt_storage_disconnect_cb: clnt_h=0x0x93 conn_h=0x0xa8b97038
11-19 14:52:31.952 403 403 I rmt_storage: rmt_storage_connect_cb: clnt_h=0x94 conn_h=0xa8b97038
11-19 14:52:31.952 403 403 I rmt_storage: rmt_storage_rw_iovec_cb: /boot/modem_fs2: clnt_h=0x2: req_h=0x99 msg_id=3: R/W request received
11-19 14:52:31.952 403 403 I rmt_storage: wakelock acquired: 1, error no: 42
11-19 14:52:31.952 403 624 I rmt_storage: rmt_storage_client_thread: /boot/modem_fs2: clnt_h=0x2 Unblock worker thread (th_id: -1465591440)
11-19 14:52:32.028 403 624 I rmt_storage: rmt_storage_client_thread: /boot/modem_fs2: clnt_h=0x2: req_h=0x99 msg_id=3: Bytes written = 1572864
11-19 14:52:32.029 403 624 I rmt_storage: rmt_storage_client_thread: /boot/modem_fs2: clnt_h=0x2: req_h=0x99 msg_id=3: Send response: res=0 err=0
11-19 14:52:32.029 403 624 I rmt_storage: rmt_storage_client_thread: /boot/modem_fs2: clnt_h=0x2 About to block rmt_storage client thread (th_id: -1465591440) wakelock released: 1, error no: 0
11-19 14:52:32.029 403 624 I rmt_storage:
11-19 14:52:32.032 403 403 I rmt_storage: rmt_storage_disconnect_cb: clnt_h=0x0x94 conn_h=0x0xa8b97038

Happy to do some more debugging. Any hint appreciated.