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

Root [ROM][WIP] CyanogenMod 7 | Android 2.3.5 | Last Version: CM7-Triumph-09182011 (discontinued)

Just wanna say thanks to you Devs who are working on this. I'm tech savvy, but no programming skills, so I'm really grateful to those of you taking your time and talents to make our lives better! I can't even sport a donation right now, but please accept my thanks for now! If I can scrounge up even a little scratch, I'll send some. :D
 
No problem not looking for donations here folks.... just trying to make it work. If you want to toss something at someone, toss it at Isaac.

This MDN/MIN problem is a pain in the butt and is causing me some trouble; it's also the gateway to a fully-functional radio, so it's where my focus is right now. A couple of attempts turned into strikeouts and I am beginning to suspect this CDMA radio code is playing some rather interesting games. That's the key though - figuring out how to get it to talk to the NVRAM data store for the provisioning information it does have (or I couldn't SMS both ways) and pulling it up the stack. Once I figure that out data should come up.

If others are hacking on the code too the other big gating factor at present is audio, since without that you don't have a working phone - so if you want somewhere to point your skills, that looks like a good place to me :-)
 
Morning status: Still no data - went down a somewhat-different road on this. It appears CM7 has a (perhaps much) older version of some of the RIL code that doesn't include a number of what would appear to be - from other repositories - standard upcalls.

That shouldn't be, if CM7 is a "real" gingerbread branch, but it looks like it is. Oh, can I whine a bit? Embedding version numbers in your header and code files that are automatically updated by repository management and indicating when and where you forked them from other people is considered good coding practice everywhere in the "real world." The lack of this is making reconciliation with the code in question MUCH more difficult than it should be. Never mind comments - they're not that hard to insert you know, and they explain what you did and why. A pox on everyone's house for both being sparse or worse (and prevalent), missing!

And by the way, this isn't just a CM7 bitch - there are "outlier" RIL files for both LG and Samsung in the codebase. So we have two manufacturers (at least) that love to change documented interfaces to their own purposes too. "Pissed" isn't the right word for my reaction upon finding this sort of nonsense in what's supposed to be a standardized API and it comes close to driving me to fork the CM7 code. If I was going to make a practice of maintaining this code across devices long-term (not just for the Triumph) I would, but I don't and thus I won't.

Ok, the whine from a guy who's banged code for a living for thirty years is over, now back to work. And yes, I am marking and delineating my deltas with comments and I'm also doing my damndest to make sure that I don't break any of the other devices in the CM7 codebase while doing this (and if I do, you'll know EXACTLY where to look for the damage and who to blame - me.)
 
Morning status: Still no data - went down a somewhat-different road on this. It appears CM7 has a (perhaps much) older version of some of the RIL code that doesn't include a number of what would appear to be - from other repositories - standard upcalls.

That shouldn't be, if CM7 is a "real" gingerbread branch, but it looks like it is. Oh, can I whine a bit? Embedding version numbers in your header and code files that are automatically updated by repository management and indicating when and where you forked them from other people is considered good coding practice everywhere in the "real world." The lack of this is making reconciliation with the code in question MUCH more difficult than it should be. Never mind comments - they're not that hard to insert you know, and they explain what you did and why. A pox on everyone's house for both being sparse or worse (and prevalent), missing!

And by the way, this isn't just a CM7 bitch - there are "outlier" RIL files for both LG and Samsung in the codebase. So we have two manufacturers (at least) that love to change documented interfaces to their own purposes too. "Pissed" isn't the right word for my reaction upon finding this sort of nonsense in what's supposed to be a standardized API and it comes close to driving me to fork the CM7 code. If I was going to make a practice of maintaining this code across devices long-term (not just for the Triumph) I would, but I don't and thus I won't.

Ok, the whine from a guy who's banged code for a living for thirty years is over, now back to work. And yes, I am marking and delineating my deltas with comments and I'm also doing my damndest to make sure that I don't break any of the other devices in the CM7 codebase while doing this (and if I do, you'll know EXACTLY where to look for the damage and who to blame - me.)


Slightly OT -
This is a fascinating thread to watch as a computer science student and C++ programming intern. Now I'm encouraged even further to write maintainable and readable code in the future. Thank you for the narrative, tickerguy.

I hope you're still having fun :)
 
Yeah, this is pretty much par for the course. I've made a fair bit of money over the years going into other people's code that are no longer with the organization in question and "fixing" it. I don't mind billing the company that paid the clownface 3, 4, 5 or 10x as much as it should have cost them either, with that being due to the fact that they didn't insist on something that was maintainable in the first place and let the idiot they employed get away with that, much of time because they didn't keep a leash on their so-called "talent."

Of course in the open source world this happens all the time - well, sometimes it does. In others it doesn't. I've done a fair bit of hacking on both FreeBSD and Postgres, and in neither case did I feel like I was tossed into the middle of a forest with no GPS and a bunch of dragons lurking about. When I ran my ISP we had a rather-custom FreeBSD kernel that ran on our internal machines to support virtualization of web environments and custom authentication - something that at the time Apache didn't provide and which was poorly supported on the auth side.

It's acceptable to write code like that if you're the only person who will ever maintain it and if you die or stop working on it, it disappears - because the documentation is all in your head. I have a lot of code like that myself and have written my share of it - for my own purposes.

But it's flatly unacceptable to do that in an environment where you expect others to maintain what you write down the road.

CM7 is an interesting bird. I have a nasty suspicion that I'm going to find more uglies in here, and one clue that this may be coming is found in the fact that while I was hacking this morning my g/f tried to send me an MMS and instead of queueing it because there was no data available it came through in the SMS bucket with all sorts of really BIZARRE encoding and source information....

I hope that's not a harbringer of things to come as it could be no fun at all to fix a problem with MMS triggers.....

Still trying to get CDMA subscription confirmation and MDN/PRL up-stack.... not there yet but as I learn where it's failing I'm slowly fixing the broken pieces that are preventing it from happening.

(If I'm boring people with all this let me know and I'll stop ;-))
 
Damn - got the reg info and now RILD is blowing up.... the interesting thing about this particular crash is that it appears to be happening as a consequence of the ERI file being uploaded from the radio (which in turn happens when the provisioning upcall works) - while that can (and does) error out, it shouldn't crash the phone interface and then RILD, but it does. (ERI is the "cutesie" roaming options that can give you a flashing roam diamond, etc and in the case of Virgin won't do anything - in theory - because you can't roam.)

Noodling....

It's not the ERI that's killing it - the registration data passed back has an invalid network ID in it - it's the reserved value. Oh yeah the MIN is missing too which makes it worthless. Need to figure out what the original VM code does to get that data from the radio - it can be done as the trace on the original shows it happening....
 
Any idea when the rest of the bugs will be fixed? Motorola released the source, so it shouldn't be too long. I don't wanna go back to stock, but I'd like to be able to use it as a phone.
 
I installed it and WiFi didn't work, bluetooth didn't work, and I couldn't even connect to virgin mobile, it always said searching for service :(
 
Any idea when the rest of the bugs will be fixed? Motorola released the source, so it shouldn't be too long. I don't wanna go back to stock, but I'd like to be able to use it as a phone.

Don't ask for timelines. It's obvious the man is making a herculean effort to help all of us. The last thing he needs is people pestering him. He;s been FAR more communicative than I'bve seen other devs be
 
What motorola released was indeed some of the source code, but from my understanding it was not the code for specific bits that these gentlemen need to make this sing easily. Please just sit back patiently as there is no set in stone completion date. These devs are putting in tons of their own time to figure this out for us.
 
The code Motorola released was the kernel and a couple of drivers. It did NOT include the changes made to the RIL (the radio abstraction layer) or any of the other fun "bits."

CM7's CDMA code is, shall we say, crusty. There's another version of Android out there (Aurora) that has MUCH more-complete RIL and related bits for CDMA phones, but it's radically different than CM7 and there's basically no chance of being able to graft it in. I took a shot at it and made a hell of a mess, ultimately having to back it out. I've got that codebase here and it's given me some direction but that's all. The good news is that it shouldn't matter if its crusty once I can get the registration data to populate properly - it should just plain work. Then we have the other issues to resolve the most-critical being audio.

Oh, on the CDMA side, it's even better. The Motorola code uses an (undocumented in CM7) call to get the PRL version. The Aurora code has a different definition of that function. And the common CDMA function that's supposed to return that in the 5th element is tagged as not for Samsungs, and guess what - it doesn't on Triumphs either. This is the sort of crap I'm working around right now - with an interface (RIL) that is claimed to be an abstraction and thus device-independent at the code level. Whoever coined up this bad joke deserves to be slathered in honey and chained down on top of a fire ant mound!

The version you have up here is an extremely early one. If you guys want I can (once I get one that doesn't blow up instantly) upload a build, but look up above at what works and what doesn't. Wifi does, you'll have to push the Google stuff on manually into the system/app directory to be able to link the market though. Bluetooth does, but there's no audio, so you're instantly screwed for trying to make or receive a call. Poke the wrong things in the audio area and you get an instant reboot - it's pretty badly broken and is likely a driver problem of some sort, but I haven't even looked at that yet. I can send and receive text messages and dial and receive calls, but no MMS since there's no data. The only sensor that works is the orientation and Lux - GPS doesn't and neither does the compass, nor does the camera.

In short what's there right now is not worth loading. When I'm actively hacking on the code there's a hell of a lot of "hurry up and wait" since changes have to be compiled, loaded, then examined. Only the examining and coding parts require my time, so the "wait" part is when I can post messages like this.

I have absolutely no clue how far away from something that "reasonably works" we are and I can't give you an expectation on time. Once I figure out why this version blows up data I can probably fix that other one too - if it's just data not coming up I bet I know why - it's almost-certainly the same reason it doesn't come up on CM7.

However, that other version that people are talking about doesn't appear to be a public development repository, and besides, I'm hacking on this one right now.
 
I installed it and WiFi didn't work, bluetooth didn't work, and I couldn't even connect to virgin mobile, it always said searching for service :(

The slightly more updated one (with working WiFi and bluetooth) is on post 50 of this thread. However, calls nor sms is working in that build. Also, you have to flash gapps if you want to get the market and other google apps.
 
Hey I'm not a Dev or anything like that but if u need me to help, in any way, let me know. And thanks for all you Devs do!
 
With a bit of luck I may have working data tonight. I now have MIN/MDM/PRL/MEID all properly loaded - but in doing so I managed to bork something and am now killing the radio after I get the data back. Once I find that it should come up.

No guarantees on time as I do have other obligations - and lots of them during the workweek.
 
Any idea when the rest of the bugs will be fixed? Motorola released the source, so it shouldn't be too long. I don't wanna go back to stock, but I'd like to be able to use it as a phone.
mistake #1
never ask for an ETA
mistake #2
read the thread... from start.

I'm not trying to be a #%$& head,but it's very un polite to ask devs for an eta on a rom,a rom they are working on for free... in their own time. It;s just plain rude... and seriously.. read the thread you'll learn more that way then just jumping to the last page.

i cant wait for it to be complete either.. but like the rest of us... we have to wait.
 
also, do you even know how hard building from source is! its not like a dev can just pull a perfectly good cm7 rom out of there @$$! *end of rant*
 
Won't be tonight folks.

I have the directory number, MID and all the other pieces up and properly populated but no data yet - there's a state I need to find a way to poke for it to come up. Stay tuned.....
 
I lied. :cool:

Data is working. Here it is.

Note: None of the other things have changed, and I wouldn't call data STABLE. It's swapping down to 1x a lot on me, and I don't know why - but the state I see on the screen does match what I see on the status screen, so there you have it. What the network says is what you have.

There are two other notes: First, what I did to make this work is an ugly hack. Way beyond ugly, in fact. I still need to figure out how not to make it a hack, but it's running for now. Motorola's bastard radio is responsible for this (see my previous rants) but that's ok - I can hack around it and did.

Google's stuff is not in the load so you can't register an account for sync and such. If you want to, pull the Google files off your existing load from /system/app (they start with "Google") plus "vending" and then push them using adb to the phone after mounting the /system area for writes. Yeah, I know - look, this is base development stuff guys, so if you don't know how to do this you probably shouldn't be screwing with it right now. Expect Google's stuff to crash a couple of times before it stabilizes - the load in your base software is the old Market, and when it updates it will blow up once or twice - but it will work. I've had it on here.

Do not expect support or help with this version, it's not even an ALPHA and I have less than 10 minutes of runtime on it. Note that audio DOES NOT WORK AT ALL and as such you cannot make or receive actual calls, although you can place them and they will come up on your screen.

MAKE DAMN SURE YOU HAVE A CLOCKWORK BACKUP BEFORE LOADING THIS. If you bork your phone screwing with this file I'm not responsible.

To install:

0. Place this file on your SD card, in the root.
1. MAKE A NANDROID BACKUP!!!!!!
2. Use Clockwork to CLEAR DATA (Factory Reset) from the top screen - this load WILL CRASH ON BOOT if you don't.
3. Go to "mounts and storage" and format /system (DO NOT format any of the others!!!!) This may not be necessary, but I do it to be safe.
4. Back out and select the ZIP file you downloaded.
5. Update it.

First boot takes a couple minutes. If you see the CM7 guy doing his thing within a couple of minutes of the power-on splash screen, it's working.

Link to download: update-cm-7.1.0-RC1-Triumph-KANG-signed.zip
 
Sweeet Gonna try it now..... i love testing :)

EDIT: Formatted all 3 partitions and installed .ZIP and it booted perfectly!
I get DSPManager FC's but i remember that from my OptimusV as well so no beef there.
Really Thankful for the work on this ROM can't wait till its done!

EDIT: Second Boot really fast! 3G seems to be functioning fine for me! Signal strength seems better.

EDIT: WIFI is quite fast, scrolling is smooth, processor scaling/overclocking is not an option in the CM settings, and of course no audio of any kind phone or music; but that will come with time.

EDIT: all in all, i like it; seems to be very functional except for the few bugs left.
 
once this build is fixed, it will be another step to release candidates and nightly builds.

thank you guys for making this phone become Triumph-ant.
i am also willing to test some of the builds for you guys each night. just pm me.
SamuraiFox18@gmail.com
 
Thanks for your hard work, tickerguy.

What do you mean by audio not working? Is this general audio on the device, which would mean I won't be able to hear anything at all? No system sounds, no music, no Youtube, nothing? Or is it in-call only?
 
Back
Top Bottom