Has anyone tried the android source tweaks listed in this blog? According to the author, the android source is buggy too and that certain changes are required in order for the ril to build right. I made the required changes to the android source and did a build. It finished okay, but won't be able to do any further testing until later. Just curious if anyone else has already tried this.
Working with the Radio Layer Interface (RIL) in Android afewe
at this time, we are really not messing with the lower level RIL source files, we are trying to use the pre-built RIL .so files from stock
I was trying to mess with the higher level java files
these files are located in the cm7 source folder in this location
system/frameworks/base/telephony/java/com/android/internal/telephony
The default RIL file is
RIL.java
and then you have some custom RIL classes that come with CM7
HTCRIL.java
LGEQualcommRIL.java
LGEStarRIL.java
MotoTegraRIL.java
MotoWrigley3GRIL.java
SamsungRIL.java
SemcRIL.java
QualcommNoSimReadyRIL.java
if you look at
system/frameworks/base/telephony/java/com/android/internal/telephony/PhoneFactory.java
you will see the valid RIL classes you can specify in the Build.prop
//reads the system properties and makes commandsinterface
String sRILClassname = SystemProperties.get("ro.telephony.ril_class");
Log.i(LOG_TAG, "RILClassname is " + sRILClassname);
if("samsung".equals(sRILClassname))
{
Log.i(LOG_TAG, "Using Samsung RIL");
sCommandsInterface = new SamsungRIL(context, networkMode, cdmaSubscription);
} else if ("htc".equals(sRILClassname)) {
Log.i(LOG_TAG, "Using HTC RIL");
sCommandsInterface = new HTCRIL(context, networkMode, cdmaSubscription);
} else if("lgestar".equals(sRILClassname)) {
Log.i(LOG_TAG, "Using LGE Star RIL");
sCommandsInterface = new LGEStarRIL(context, networkMode, cdmaSubscription);
} else if ("semc".equals(sRILClassname)) {
Log.i(LOG_TAG, "Using Semc RIL");
sCommandsInterface = new SemcRIL(context, networkMode, cdmaSubscription);
} else if ("lgeqcom".equals(sRILClassname)) {
Log.i(LOG_TAG, "Using LGE Qualcomm RIL");
sCommandsInterface = new LGEQualcommRIL(context, networkMode, cdmaSubscription);
} else if ("mototegra".equals(sRILClassname)) {
Log.i(LOG_TAG, "Using Motorola Tegra2 RIL");
sCommandsInterface = new MotoTegraRIL(context, networkMode, cdmaSubscription);
} else if ("motow3g".equals(sRILClassname)) {
Log.i(LOG_TAG, "Using Motorola Wrigley 3G RIL");
sCommandsInterface = new MotoWrigley3GRIL(context, networkMode, cdmaSubscription);
} else {
sCommandsInterface = new RIL(context, networkMode, cdmaSubscription);
CM9 does this differently than CM7, so this info is for CM7 only
So if you want to add a new RIL class you would need to edit the PhoneFactory.java and add a file BlahBlahRIL.java
But there must be something else you need to do, because when I tried doing this I was getting symbol errors during the compile
I tried modding the QualcommNoSimReadyRIL.java with some of the stuff I found in the de-compiled RIL.java that I pulled from the stock framerwork.jar as show in the link below
package com.android.internal.telephony; import android.content.BroadcastRecei - Pastebin.com
as you can see de-compiled java files are pretty useless, but you can look at them and get a hint of what is going on
I was trying to add the RIL_REQUEST and RIL_UNSOL commands and make my own RIL class, but as I mentioned before I failed at this, CM7 would not finish compiling and would stop when it got to that file and complain about symbols and other crap
I am not a programmer and do not know any programming languages, so this stuff baffles me