RIL: Make RIL subclassable

Conflicts:

	telephony/java/com/android/internal/telephony/RIL.java

Change-Id: I99c194c6baa6abe6f37e92d4f8df197b1cbf69f0
RIL: Support signal strength format from v3 vendor RILs

Enable by setting property ro.telephony.ril.v3=1
RIL: fix pin unlock for old ril

Change-Id: I27eb348233d41618875473ca9bdb93d339c359f9
RIL: handle the lack of version gracefully on older RILs

Change-Id: I8227c55968f502112c5b6ac334eee505c29924c2
Break the legacy ril shims into specific features. The ICC feature breaks crespo, but crepso needs the signal strength feature.
v3 RIL: Fix getDataCallState and PIN setting

Change-Id: Icf5cee33aeec58cffb23430f0f7b06b9971a71ad
telephony: Support broken RIL implementations without CALL_RING events

This is probably specific to the LGE star: Extend the call_ring.multiple
configuration to the ringing connection event, since the CALL_RING event
itself doesn't appear. Without this, only the first ring happens.

Enable with ro.telephony.call_ring.absent=true

Change-Id: Idd272583769757c6baa638fd644b5b919cf80fec
v3 RIL: another getDataCallState fix

Change-Id: Ie4e69e231956f46bc1b82550fdf4863c1367efaf
RIL: skip broken RIL_UNSOL_DATA_CALL_LIST_CHANGED

Some old RILs might produce events with type 'IP' containing the remote IP
address, normally 10.64.64.64. These events mismatch with the previously
generated ones and cause the system to take the connection down, even if
it was up and working correctly.

Add skipbrokendatacall to ro.telephony.ril.v3 to enable the workaround.

Change-Id: I3bc3c84735201a797011aafba2718638a826f31d
telephony: Use reflection to create command interface (RIL class)

This has the advantage over the method used in CM7 in that the
RIL class for each device does not have to be specified in this
file in an if statement. ro.telephony.ril_class needs to be upated
to contain the name of the class instead of an identifier as used
in CM7

Change-Id: I0aafdfc78d47f493a2e35819dbe873ea98787934
framework: Add RIL for qualcom basebands with no sim status
I will describe the behaviour below because I think it may be
useful for others with updated qualcomm basebands.

Semc recently upgraded to a new baseband version which changes
the way SIM status works. At the core of this changs is the fact
that basebands are now supporting multiple SIM cards and this means
that sending the app state as an extra of
RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED

CAF supports this behaviour in the gingerbread_rel branch but
the changes are unmergeable due to other complex that would break
all devices.

This is a workaround where the new state (radio status) is parsed
from RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED and this triggers a
thread which will in turn query the SIM card and send SIM/RUIM_READY
when appropriate.

Revised by Giulio Cervera for ICS

Change-Id: I5bbd10ec5bd0e4f6c4791def905fe5677ba8f690
telephony: Add LG RIL for Qualcomm basebands with no sim status

Change-Id: Idf1f769ff654f881b00950ef51f7826e1a66c505
telephony: Support for KSC5601 on SIM.

cherry-picked from f1c01bd69e6d209e15ddbd90f1fd2265715a7e57

Korean phones write to the ADN record of the SIM in a non-standard way.
When UCS2 is not used, the alphaTag will be written in the KSC5601
encoding. This contribution adds support for reading that format when
a Korean SIM card is used.

Also adds support for KSC5601 in SMS.

Change-Id: I81a4a6949359b4d23a937ac2d813bafed2b85ff6

Conflicts:

	telephony/java/com/android/internal/telephony/IccUtils.java
	telephony/java/com/android/internal/telephony/gsm/SmsMessage.java
frameworks_base: add SemcRIL for SonyEricsson phones

data is brocken for now

Change-Id: I30daee9ba301d338361f14e689678236e0037b5b
telephony: Added support for use of Honeycomb Radio (Modem).

-squashed (RIL: reference ICS and GB):
https://github.com/isimobile/android_frameworks_base/commit/7507127287aa8cf84b5e811977d95400b029f95b
https://github.com/isimobile/android_frameworks_base/commit/af2b84d1860b38952784ae116172e00a4b445a1d
https://github.com/isimobile/android_frameworks_base/commit/872156a81fb4185217e7642d10ec33da4893a2b3
https://github.com/isimobile/android_frameworks_base/commit/400bbc4e3ce8e9e0219b31bb985e6628c50d0f07
https://github.com/isimobile/android_frameworks_base/commit/7cb289d9e59ac69350dd2377eff63940641df603

-cleaned up some whitespace

Change-Id: I3a3474245bb336bc3f275605648f5f94f3f9b6e7

Conflicts:

	telephony/java/com/android/internal/telephony/DataConnection.java
telephony: Add SamsungRIL

Patch Set 2: Fix Emergency calling for Samsung CDMA

Patch Set 3: Do not extraneously send RIL poll requests due to extraneous HSDPA update

Patch Set 4: Remove extraneous import accidentally added in Patch Set 3

commit 91cb0a82f785539986ee4f6ef95ccd8c789121d5
Author: Pawit Pornkitprasan <p.pawit@gmail.com>
Date:   Mon Dec 19 17:53:40 2011 +0700

    SamsungRIL: ignore setCurrentPreferredNetworkType

    Change-Id: Ifa87949da3d807803db932e31c6c2dd053040c9c

commit b578cdb7bf0222a05af65cb09cdfc53aa7457328
Author: Daniel Hillenbrand <info@codeworkx.de>
Date:   Mon Dec 12 18:32:35 2011 +0100

    SamsungRIL: added unknown unsol request 11010

commit 259ccc34d53a0067c730c616814c0ec5fc788d95
Author: Pawit Pornkitprasan <p.pawit@gmail.com>
Date:   Sun Nov 27 12:06:34 2011 +0700

    SamsungRIL: Always use v3 signal strength

    Our signal processing wouldn't make sense without it anyway.

    Change-Id: Ie101d6b220b00383aa18a9ac2c66e2ef786b7467

commit 1f5730d26e7e0dece905192b4dab6340336a8a21
Author: Pawit Pornkitprasan <p.pawit@gmail.com>
Date:   Fri Nov 18 21:15:34 2011 +0700

    SamsungRIL: Fix datacall

commit 1838b577a899a1f5259327361d95fe64f706c8e8
Author: Pawit Pornkitprasan <p.pawit@gmail.com>
Date:   Fri Nov 18 13:50:39 2011 +0700

    SamsungRIL: Fix signal strength

commit 1e23a1d363e7514b32703f604bdc96411cc35330
Author: Pawit Pornkitprasan <p.pawit@gmail.com>
Date:   Thu Nov 17 17:40:56 2011 +0700

    Brings back SamsungRIL

Change-Id: Ice09e25c8657aad0ddb345d240829789f28d18fb
Fix support for CDMA devices in SamsungRIL.

These fixes are ported from jt1134's fascinatemtd patches and CM7.  For
CM9, the fixes are applied to SamsungRIL directly instead of elsewhere in
the telephony framework.  They include:

- Signal strength reporting: pass raw integer values.
- Voice registration: convert base station values from hex to dec.
- Data call setup/deactivate: start/stop pppd_cdma service and pull network
  parameters from pppd ip-up script.
- CDMA subscription: add missing PRL version from system properties.

Changes from CM7:

Note use of "ril.cdma.data_state" property instead of
"ril.cdma.data_ready".  This property has three states:

- Disconnect(ed): ril.cdma.data_state=0: stop pppd_cdma service.
- Connecting:     ril.cdma.data_state=1: (re)start pppd_cdma.
- Connected:      ril.cdma.data_state=2: pppd_cdma has responded.

The disconnect (0) and connecting (1) states are set by SamsungRIL on the
deactivation and setup, respectively, of a data call.  Prior to setting the
connecting (1) state, SamsungRIL sets the "net.cdma.datalinkinterface" for
pppd_runner's use.

After setting to the connecting (1) state, SamsungRIL waits for pppd_cdma
to respond by (itself) setting the connected (2) state.  This should be
done at the end of a /system/etc/ppp/ip-up script, after that script sets
the following interface values, which SamsungRIL uses to complete the data
call state:

- net.cdma.ppp.interface: $IFNAME (typically "ppp0")
- net.$IFNAME.local-ip:   pppd's local IPv4 address
- net.$IFNAME.remote-ip:  pppd's remote IPv4 address
- net.$IFNAME.dns1:       pppd's primary DNS address
- net.$IFNAME.dns2:       pppd's secondary DNS address
telephony: add support for samsung smdk4210 boards

Change-Id: Id51618e4f4764121a60bbcbc629f4dc8147c4808
Telephony: Add "singlepdp" RIL feature

ICS appears to assume the radio implementation is capable of multiple
simultaneous PDP contexts; maguro, for instance, brings up a second
interface (rmnet1) alongside the primary rmnet0 whenever another APN
is needed.
Other devices (including, from tests, crespo) don't accept this, and
react in unpredictable ways when a SETUP_DATA_CALL request is made before
tearing down any other active context (making it impossible, or at
least hard, to switch APNs).

Since the old setup/deactivateDefaultPDP methods are gone, this patch
adds a back-compatibility "singlepdp" option to the ro.telephony.ril.v3
property, which enforces disabling the default PDP whenever another one
is enabled.

Change-Id: Ib4b030e3f1a32445102ac72aeb68715ef8cebd88

Conflicts:

	telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java
Add more CDMA SamsungRIL fixes.

Adds a collection of CDMA device fixes to SamsungRIL.  They include:

- Overriding ERROR_UNSPECIFIED fail cause with NORMAL_CLEARING, to prevent
  far-end hangups from displaying the "Call Lost" dialog.

- Adding, and ignoring the RIL_UNSOL_GPS_NOTI request, which is also
  ignored in the TW RIL, to keep the radio log clean of exceptions when the
  GPS is active.

- Workaround for Samsung CDMA "ring of death" bug.  See source comments for
  details on this problem.

Change-Id: Ida4797718ad3463d073a6fc27246cc916526d487