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

Root [Boost Mobile] CM9 for Warp Development thread

hroark13

Android Expert
Recognized Developer
Jul 15, 2011
3,280
4,113
I have made some progress with CM9, and this is what I am focusing on, I am dropping CM7 and CAF

I want to especially thank joe.stone from XDA for letting me use his custom RIL files

There are a lot of other people to be thanked (too many to be mentioned)
So I am thanking everyone who reads this, (YES YOU) thank you for all that you have done, and thank you for keeping this thread clean by not posting off topic posts, and non-development posts, you are awesome.

You do not have to have to post any thank you posts here, just click on the thank you button, the rating stars, or that new "Like" thing they have.

If you are feeling generous, you can make a small donation, I had to recently make a new Android Build system, and it set me back $425.00, but I am now able to do a CM9 build in 40 minutes, as opposed to 2 hours, like on my old system that crapped out on me.



If I have helped you, and you like my work, please click on the Thanks Button and give my thread a rating by clicking on the stars above.

If you would like to buy me a beer cofee, you can click on the PayPal button






.
 
I am not going to write instructions on how to setup an Android Build system. there are many tutorials out there for that.

These instructions will assume that was done

If you do not have a lot of RAM in your build system, make sure you have a swap partition and it is turned on

Here is the source code I uploaded to github

https://github.com/hroark13/warp_cm9_config



First thing you want to do is Download the CM9 repo

Open terminal

Code:
$mkdir cm9
$cd cm9
$repo init -u git://github.com/CyanogenMod/android.git -b ics
hit enter twice when it asks about your name and email

Code:
$repo sync -j32
it will download the repo and take a pretty long time, it does not download everything, you still need to get some pre-builts

Code:
$vendor/cm/get-prebuilts
now copy my source code from github and overwrite any files that it prompts

Code:
$make clobber
$source ./build/envsetup.sh
$lunch ZTE_arthur-userdebug
$mka -j8 bacon
I use -j8 because I have an 8 core cpu now, if you have a dual core use

Code:
$mka -j2 bacon
It will start the build, it takes 40 minutes on my new system, it will probably take longer on older systems, can take a really really long time if you do not have a fast computer


when it is done, you should have this file

cm9/out/target/product/arthur/update-cm-9.0.0-RC0--UNOFFICIAL-signed.zip

I always take this file and replace the META-INF folder with my own because the update.script that CM9 makes does not set all the needed permissions, and the end result looks like this.

http://www.mediafire.com/?70czwywa7aurmau

WARNING TO NOT PLAY WITH THE CDMA SUBSCRIPTION MENU ITEMS
downthemachine HAS DISCOVERED THAT THEY CAN WIPE YOUR NAM SETTINGS AND YOU WILL HAVE TO REPROGRAM THE PHONE IN CDMA WORKSHOP



This is a dev test ROM and is not for regular usage, it is only for people who want to try and help get CM9 working on the Warp


Here is a kernel update for the above ROM, flash it in CWM after you flash the ROM, this kernel has more pmem stuff removed

http://www.mediafire.com/?6q4low14yddexgq




,
 
Upvote 0
There are a lot of issues that need to be fixed, and a lot of things do not work

We will need to modify the kernel more and refine the source code, this will probably take a while to be finished.

I do need help, so anyone that can help will be great


Things that do not work at all

WiFi
Camera
Blue toothe

All other things are somewhat working but need to be refined

The RIL does work, I have not tested data, because my Warp is not activated



.
 
Upvote 0
I had to make some major changes to the kernel, mostly for kgsl, and removing some pmem stuff, but I am sure we need a lot more kernel work to be done, the kernel source is here


https://github.com/hroark13/WARP_KERNEL

make sure you use the cm9 branch



This is how to make the kernel


edit the Makefile to point to the location of your arm-eabi-4.4.3 folder

like this
Code:
ARCH        ?= arm 
CROSS_COMPILE    ?= /home/hroark13/arm-eabi-4.4.3/bin/arm-eabi-
open terminal



Code:
cd WARP_KERNEL 
make mrproper
cp warp_cm9_config .config
make ARCH=arm
after a while you should get a zImage in arch/arm/boot

you will need to pack that zImage with a ramdisk


see my packer thread

Warp Kernel Packer





.
 
  • Like
Reactions: stingrays
Upvote 0
I remember in #cyanogenmod-dev or in pm's (pretty sure it was in the channel) that that's what the rule of thumb was and it should not be an odd number (i.e. -j9)

but if it takes the same time for you.. meh, i'd go for higher. can't really hurt


i tried doing -j1024 once

and the power for my entire neighborhood went out for 3 days
 
  • Like
Reactions: PH473
Upvote 0
both

ZTEQualcommUiccRIL
ZTEQualcommRIL.java

are from joe.stone of XDA

I have really not tried the ZTEQualcommRIL.java yet


the ZTEQualcommUiccRIL seems to work for the most part, but may need some changes

Using ZTEQualcommRIL dropped sim not loaded messages on SmartTab . They are modified versions of LGE's RIL .
For data connection to work netmgrd was needed on the tab.
To be sure every RIL_Requests and RIL_Unsol_response is correct you should check libril-qc-qmi-1.so (if WARP using the same). Maybe the ril verson used by warp is different . The tab is using ver 6. Other problem can be with the datacall routines in ZTEQualcommUiccRIL. Maybe the the unsol data are in different order or format on the two device.
If the logs shows that the apn is read , then I think the datacall routines should be OK and if the device not getting IP try to push netmgrd to /system/bin.
 
Upvote 0
Using ZTEQualcommRIL dropped sim not loaded messages on SmartTab . They are modified versions of LGE's RIL .
For data connection to work netmgrd was needed on the tab.
To be sure every RIL_Requests and RIL_Unsol_response is correct you should check libril-qc-qmi-1.so (if WARP using the same). Maybe the ril verson used by warp is different . The tab is using ver 6. Other problem can be with the datacall routines in ZTEQualcommUiccRIL. Maybe the the unsol data are in different order or format on the two device.
If the logs shows that the apn is read , then I think the datacall routines should be OK and if the device not getting IP try to push netmgrd to /system/bin.


Hi Joe, welcome to Android Forums, and thank you for your help.

Warp uses libril-qc-1.so

these are the prop settings I have so far for the RIL
Code:
ro.telephony.ril_class=ZTEQualcommUiccRIL
ro.ril.def.preferred.network=4
ro.telephony.default_network=4 
ro.config.multimode_cdma=false
rild.libpath=/system/lib/libril-qc-1.so
rild.libargs=-d /dev/smd0
persist.rild.nitz_plmn=
persist.rild.nitz_long_ons_0=
persist.rild.nitz_long_ons_1=
persist.rild.nitz_long_ons_2=
persist.rild.nitz_long_ons_3=
persist.rild.nitz_short_ons_0=
persist.rild.nitz_short_ons_1=
persist.rild.nitz_short_ons_2=
persist.rild.nitz_short_ons_3=
ril.subscription.types=NV,RUIM
ro.ril.disable.power.collapse=0
DEVICE_PROVISIONED=1
I was getting phone force closing when I tried using

ro.telephony.ril_class=ZTEQualcommRIL

but I did not spend much time trying to figure it out, and just switched back to

ro.telephony.ril_class=ZTEQualcommUiccRIL



when you say "you should check libril-qc-qmi-1.so"

what is the best way to check a RIL .so file, with a hex editor, or is there a better way

the current CM9 ROM does have a netmgrd binary and libnetmgr.so that comes from the stock GB ROM, should we be using those files, or will CM9 build them for me

The stock build.prop has this setting

Code:
#
# system props for the data modules
#
# lllccc open the netmgrd, 2011.02.28
ro.use_data_netmgrd=true
I have not added it to the CM9 prop yet, but I will try it.


regarding the apn in the log file, do you mean a regular logcat or a logcat -b radio

If I open Voice Dialer and say "OPEN APNS" and open the APN app

I do see my Boost Mobile APN listed there, so I am not sure if that means anything


I am sorry for all the questions, but I am still a noob when it come to some of this stuff



.
 
Upvote 0
I did not know what is the vendor ril lib on warp , that's why I said libril-qc-qmi-1.so . (It is used on smarttab) . So you should check libril-qc-1.so with a hex editor . Unfortunatelly these files(libril-qc-1.so , netmgrd and libnetmgr.so) are closed source so cm9 wont compile it , you need to copy them from the stock rom.
About the apn: In the settings-wireless settings-mobile networks-access points should show ap-s (at least on gsm models for example internet.vodafone.net, I do not know cdma ) . On my device until the datacall routines were not correct it shows nothing . You should see something like this in the log : SETUP_DATA_CALL 1 0 internet.vodafone.net 3 IP and then DataCallState: {version=6 status=0 cid=0 active=2 type=' ifname='rmnet0' addresses=[xx.xx.xx.xx] dnses=[xx.xx.xx.xx,xx.xx.xx.xx] gateways=[xx.xx.xx.xx]} .
When I made these files I changed logd_write.c to enable logging of ril related things without -b radio. Also modified the ril.java and the two ril files to verbose log everything.( boolean RILJ_LOGV = false; to true ) and there was printouts about unsol responses in datacall routines .Maybe I forgot to remove them .
ro.use_data_netmgrd=true is needed , because init scripts reads this property to start the netmgrd service .

I am still a noob ,because I am not a programmer , so maybe you can see some ugly coding .

You will have a lot of work to do . I am fighting with the BT this time , the camera was not started yet . These are the two components not working in my smarttab cm9 port .
I dont know about the touchscreen of the warp , but it was a big fight in my case . I had to rewrite the routine in the kernel to avoid using legacy touchscreen. KGSL was not big deal and you can download the new adreno libs from qualcomm. Genlock backport also needed in the kernel , then qtaguid and quota2 also needed to backport .I used caf 3.0.8 kernel source to backport from.
 
  • Like
Reactions: hroark13
Upvote 0
About the apn: In the settings-wireless settings-mobile networks-access points should show ap-s (at least on gsm models for example internet.vodafone.net, I do not know cdma ) .

In my Mobile Network Settings, I have

8376079.png



I have never seen the access points option in CyanogenMod on a CDMA Phone


I am fighting with the BT this time

make sure you have this in your update.script

set_perm_recursive(0, 2000, 0755, 0755, "/system/etc");

there are scripts there that need execute perms


the camera was not started yet


I think you have the same camera as me

mine is

CONFIG_OV5640=y
CONFIG_OV5640_GLOBALOPTICS=y


yours is

CONFIG_CAMERA_OV5640_ZTE=y



I have tried using a ZTE pre-built libs for the camera from the ICS ROM for the ZTE N880 and I think it is the same camera "OV5640"

I try to use the lib by renaming the camera.msm7627a.so to camera.msm7x30.so and pushing it to my lib/hw and pushing the libgemini.so liboemcamera.so libcameraservice.so libcamera_client.so to the lib folder

but after I do that CM9 will not boot anymore because it crashes media server

if you want access to the ZTE N880 ICS ROM let me know and I will upload it for you

I dont know about the touchscreen of the warp , but it was a big fight in my case . I had to rewrite the routine in the kernel to avoid using legacy touchscreen. KGSL was not big deal and you can download the new adreno libs from qualcomm. Genlock backport also needed in the kernel.


I am using legacy touch screen but it seems to be OK, is there any reason I should not use it ?

I have updated KGSL and genlock in the kernel, and I have the new adreno libs,


then qtaguid and quota2 also needed to backport


I have not done this yet

The issue I am dealing with now is pmem

I can not get the launcher to stop restarting unless I reduce the size of the pmem-adsp device from my board-zte-arthur.c

I guess I am gonna have to delete some of my old stuff from github so I can upload some of this new CM9 stuff, so people can look at it easily



sorry for the long post



,
 
Upvote 0
make sure you have this in your update.script

set_perm_recursive(0, 2000, 0755, 0755, "/system/etc");

there are scripts there that need execute perms
These sripts are called from init with exec , and they runs as they should , so I did not changed the permissions in updater-script.
I plan to port the camera sources from caf because ZTE is using their sources as a base.

About APN : I told I dont know cdma , but on gsm there is access point settings.
qtaguid and quota2 needed for wifi to work correctly.
gsmsettings.png


On the tab there was a stupid circle while was using legacy touchscreen and multitouch was not working as expected.

On the smarttab this is set #define MSM_PMEM_ADSP_SIZE 0x2000000
and there is no problem with the launcher.
 
  • Like
Reactions: hroark13
Upvote 0
On the tab there was a stupid circle while was using legacy touchscreen and multitouch was not working as expected.


To get touch screen to work I had to copy synaptics-rmi4-ts.idc to the usr/idc folder

this is the contents of synaptics-rmi4-ts.idc

Code:
touch.deviceType = touchScreen


as far as multitouch, I can go into gallery and open a picture and zoom in and zoom out by pinching my fingers, I guess that means it is working, that is the extent that I have tested it



I really appreciate your help by the way, I hope that I will be able to some how help you with your ROM
 
Upvote 0
I really appreciate your help by the way, I hope that I will be able to some how help you with your ROM

I learn cdma , and if ztequalcomril files work with your cdma device then I know it should work on the cdma version of the tab (Sprint Optik /V55) because this time the cdma version is not working at all . I have no device and network to test and on xda there is no other dev at all for my device. I know now that these ril files should be OK on cdma (at least voice call) and possibly some settings not correct with the device config .

You are lucky because of the synaptics touchpad. The tab has atmel mxt224 and 1386 with calibration built-in and ZTE modified the standard driver in kernel a lot . To test it I used touchtest from play . It can handle 10 touches same time.
 
Upvote 0
I learn cdma , and if ztequalcomril files work with your cdma device then I know it should work on the cdma version of the tab (Sprint Optik /V55) because this time the cdma version is not working at all . I have no device and network to test and on xda there is no other dev at all for my device. I know now that these ril files should be OK on cdma (at least voice call) and possibly some settings not correct with the device config .

You are lucky because of the synaptics touchpad. The tab has atmel mxt224 and 1386 with calibration built-in and ZTE modified the standard driver in kernel a lot . To test it I used touchtest from play . It can handle 10 touches same time.


Just so you know, the ZTE Warp is for Boost Mobile only

Boost Mobile is owned by Sprint and it uses Sprints CDMA network

So there may be a lot of the same stuff




,
 
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