• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Root [Boost Mobile] For Discussion of Development for CM7 Only

Holy crap, I got telephone to work, problem is I made so many changes I don't know what did it. It also doesn't work the first minute after boot. Anyways I copied the /lib folder from my /system dump into the prebuilt. Also copied files to the /etc, but only the files that were a different size. And then I used the system.prop from quietstorm's cwm sources. I was able to make calls and "Boost Mobile" showed up as the carrier in the notifications pull down. I'll clean out my source and find exact reason it started working

Edit:
I still can't find the specific reason, it can't find the baseband, some reason su keeps force closing. Anyways there is alot of work here


what version ROM was your system dump ?
 
Upvote 0
I'll do some tests tonight if I get time, kids and work leave me about an hour to get to it every night
Reply, part 2: (ie, edit)
Cm7 is building su itself. I'm having trouble finding rom manager, but I agree, it should be removed. Currently on another building with some changes to the /root in sources, there seems to be alot of differences in those files and what's in b08c, hroark, Woodstock posted a nandroid of b08c. You should check it out and compare
Edit 2: fell asleep after i got a good build goinging. I was at a loss on why my builds were coming out 70megs,was a issue with my sources
Sources were missing, back to normal, I really don't know what damaged it, but a repo sync fixed it
 
Upvote 0
well I spent a lot of time this weekend trying to get this RIL to work properly


if you do not have this setting in the build.prop CM7 treats the phone as a GSM phone


ro.telephony.default_network=4


when you get CM7 functioning as a CDMA phone with that setting and other ways of doing it, the RIL starts but you can not make phone calls


if you do not have that setting and the CM7 treats the phone as GSM, you can make phone calls

I have tried using all the available RIL classes that are built into CM7 and have unsuccessfully tried to make some new ones

I have de-complied the RIL.Java from the stock framework.jar and tried to make a new RIL class with the commands that I found in it, and I failed at this


I am almost ready to put this project to the side and maybe start trying to fix the kernel source code, so that I can try to get CM9 working


CM9 handles RIL stuff differently and may be easier
 
Upvote 0
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
 
Upvote 0
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
 
Upvote 0
I have some java experience, as I have done a bit programming in my life (all the way to learning ASM fundamentals). I may be rusty but I think I can give it ago. I do remember most java syntax of what I learned from it. What is it your trying to figure out? What is your basic problem and where is it happening (so I know where to look)? There's a significant chance however that I may not be able to figure it out but I will apply logical reasoning to try to figure out whats happening in here.
 
Upvote 0
Great explanation... Have a couple possibly stupid questions. If stock uses the RIL.java, shouldn't CM7 be able to use it as well? (or is the issue that Zte customized RIL.java so it is different than the CM7 source)

Second thing is related to creating custom classes. Did you try using a known-good/unmodified classfile when creating a custom class just to see if the build finishes? If you copy/rename an existing .java file (unmodified) and associate it in PhoneFactory.java as a new class, the build *should* finish okay. Just a test to see whether it's something missing in class creation process or an issue with the contents of the classfile itself.
 
Upvote 0
Great explanation... Have a couple possibly stupid questions. If stock uses the RIL.java, shouldn't CM7 be able to use it as well? (or is the issue that Zte customized RIL.java so it is different than the CM7 source)

Second thing is related to creating custom classes. Did you try using a known-good/unmodified classfile when creating a custom class just to see if the build finishes? If you copy/rename an existing .java file (unmodified) and associate it in PhoneFactory.java as a new class, the build *should* finish okay. Just a test to see whether it's something missing in class creation process or an issue with the contents of the classfile itself.


The RIL.java from stock and RIL.java for CM7 is different, and they have different RIL commands to talk to the modem and stuff, the RIL.java from stock was made by ZTE but should be similar to other Qualcom based phones RIL.java


You can add an entry to the PhoneFactory.java for say ztewarp and then copy one of the other class files, but you do have to change the section at the top of the file that looks like this

public class SamsungRIL extends RIL implements CommandsInterface {

private boolean mSignalbarCount = SystemProperties.getInt("ro.telephony.sends_barcount", 0) == 1 ? true : false;

private boolean mIsSamsungCdma = SystemProperties.getBoolean("ro.ril.samsung_cdma", false);

public SamsungRIL(Context context) {
super(context);
}

public SamsungRIL(Context context, int networkMode, int cdmaSubscription) {
super(context, networkMode, cdmaSubscription);



or else you will get errors


but if you change the 3 sections that say SamsungRIL to the right name it will compile OK
 
  • Like
Reactions: bads3ctor
Upvote 0
I have some java experience, as I have done a bit programming in my life (all the way to learning ASM fundamentals). I may be rusty but I think I can give it ago. I do remember most java syntax of what I learned from it. What is it your trying to figure out? What is your basic problem and where is it happening (so I know where to look)? There's a significant chance however that I may not be able to figure it out but I will apply logical reasoning to try to figure out whats happening in here.


well the first thing I would ask you to look at, is to see if you can get the RIL.java from the stock ROM, so that it can be used in CM7 as a RIL class

can you de-compile the stock RIL.java a better way that I did ? so it is more useable

are you able to look at this de-compiled RIL.java

package com.android.internal.telephony; import android.content.BroadcastRecei - Pastebin.com

and fix it so that it looks like similar to this

package com.android.internal.telephony; import java.util.ArrayList; import j - Pastebin.com


and then be able to add it as a RIL class in CM7, with CM7 not giving errors during the compile process





This stuff is not easy and I do not expect you to be able to do it, but anything that you can contribute will help
 
  • Like
Reactions: bads3ctor
Upvote 0

O_______O THAT WHOLE THING?! :eek:

I don't know if I can do this or not.. I'l...... try.. :SSSSSSSS

That first one is about 3600 lines O.O

Well I skimmed through the file and it seems like it uses a lotta external files.. I will see what I can do and where the errors are at

edit: I'll have to try to do it tomorrow.. my hw just mentally exhausted me from school
 
  • Like
Reactions: bads3ctor
Upvote 0
here are some more of my findings


we know that in order to tell CM7 that the phone is a CDMA Phone, we need to specify this

ro.telephony.default_network=4


in the build.prop, otherwise it will create a GSM phone on first boot

if you were to add this to the build.prop, you would need to do a facory wipe, so that a new phone can be created (like on first boot)



when I have the setting ro.telephony.default_network=4 in the build.prop


telephony will keep crashing and force closing constantly, unless I also have either of these settings in the build.prop


ro.telephony.ril_class=lgeqcom

or

ro.telephony.ril_class=semc



If we specify either of those ril classes we can not make phone calls


when you have those settings in the build.prop LGEQualcommRIL.java or SemcRIL.java will be used


now those two RIL files are not full RIL java files, they are extensions of QualcommNoSimReadyRIL.java

QualcommNoSimReadyRIL.java can not be used as its own class

QualcommNoSimReadyRIL.java is not a full RIL java file, it is an extension of RIL.java


when these files extend other files, they can overide commands and functions and stuff

you can read more about this here

https://gist.github.com/CyanogenMod...mmit/0b3ea727aed89f20eb7e8b00a5dd923a978cfe0c


I think one of the problems is those RIL files (QualcommNoSimReadyRIL.java, LGEQualcommRIL.java, SemcRIL.java) are designed for GSM phones


I think we need to somehow modify one or two of those files to also work with CDMA
 
  • Like
Reactions: bads3ctor
Upvote 0
This is everything I know about CDMA and Sprint. This is from my work on ICS for the Samsung Intercept. Some of this won't apply but some might be helpful.

rild.libpath=/system/lib/libsec-ril40.so
rild.libargs=-d /dev/ttyS0

keyguard.no_require_sim=true
ril.ecclist=112,911,#911,*911

net.interfaces.defaultroute=cdma
net.cdma.ppp.interface=ppp0
net.connectivity.type=CDMA1
ro.telephony.ril_class=samsung
ro.ril.samsung_cdma=true

ro.config.vc_call_vol_steps=15
ro.telephony.default_network=4
ro.com.google.clientidbase=android-sprint-us

Edit: The whole build.prop: http://min.us/mbfBmUiOxN
 
Upvote 0
did u try using the original system.prop that came with the phone? Im building cm7 using your source as I type to test that out, if that doesnt work ima try a few other things. Im still trying to figure out why the kernel isnt booting, I got about as far as you did hroark. Wouldnt mount partitions, was able to start adb.. etc etc. mind racking crap here..
 
Upvote 0
did u try using the original system.prop that came with the phone? Im building cm7 using your source as I type to test that out, if that doesnt work ima try a few other things. Im still trying to figure out why the kernel isnt booting, I got about as far as you did hroark. Wouldnt mount partitions, was able to start adb.. etc etc. mind racking crap here..

yeah, I have tried everything

this is my latest cm7 source, some minor corrections, and all the pre built files are B06, the B06 RIL files seem to start quicker, and also BlueToothe works

arthur-4-17-12.zip

for the kernel did you compile your own zImage or use mine
 
  • Like
Reactions: bads3ctor
Upvote 0
yeah, I have tried everything

this is my latest cm7 source, some minor corrections, and all the pre built files are B06, the B06 RIL files seem to start quicker, and also BlueToothe works

arthur-4-17-12.zip

for the kernel did you compile your own zImage or use mine

I compiled my own zimage a while ago, just a few weeks after source was released. then used dsixda android kitchen to pack the zimage and ramdisk.

[EDIT]
yeh, same errors as before as you in regards to kernel, wont boot, but adb works. curious as to why it isnt mounting partitions.
 
Upvote 0
I compiled my own zimage a while ago, just a few weeks after source was released. then used dsixda android kitchen to pack the zimage and ramdisk.

[EDIT]
yeh, same errors as before as you in regards to kernel, wont boot, but adb works. curious as to why it isnt mounting partitions.


were you able to get to adb before, or did you use my new test ramdisk with your zImage
 
Upvote 0
were you able to get to adb, before, or did you use my new test ramdisk with your zImage

I was able to do it before, I did the same edits to init.arthur.rc that you did. I really dont understand why it wont mount partitions at boot. I didnt do a mount command tho, so didnt really test. I feel like building the kernel again and checking if the default config has ext4 modules built in. Last time I built the kernel using the .config that was on the phone, it didnt have the ext4 modules selected. That might be the issue, but I really dont know. I wonder if sebastian got a hold of zte, cuz that would really help right about now.
 
Upvote 0

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones