[Q] Editing and Compiling Custom Radio Firmware - Thunderbolt Android Development

I know I have less than 50 posts, and am not posting a ROM, but hopefully this is the correct place to ask this question. If it is not, then mods should feel free to delete or move this thread.
I am wondering if it is possible to edit and recompile the radio firmware images for rooted HTC Android devices, and am looking for any resources which might get me started down this path.
I am an engineering PhD student studying wireless communications and have spent a significant amount of time developing firmware and device drivers for a variety of experimental wireless platforms. One of the focus areas of my research is physical and data-link adaptability (i.e., sensing and decision algorithms for automated, real-time radio parameter modification) - and I am interested in exploring the interactions between the EVDO and LTE radios on the Thunderbolt.
As with many of you, I am growing frustrated with the connectivity issues present to some extent in all of the Thunderbolt radios, and am interested in diving into the firmware and Kernel API's to see if I can't make some improvements myself. I have plenty of experience in this regard, but am looking for any resources specifically discussing the modification and customization of radio firmware for android devices. I have two specific goals in mind - first is to reduce the time it takes the TB to recognize it has entered an LTE area, and improve the stability of the 4G connection in "edge of service" scenarios (I have found in certain situations it can take several minutes to switch from 3G to 4G, and that the phone will often incorrectly revert to 3G in slow fading environments). The second, larger, goal is to create a policy framework for Android which will allow a user to customize which networks are used for different data applications. For example, I would like the phone to always sync background data over 3G, and to automatically switch to 4G for browsing, app updates, maps, videos, etc.
The firmware images are obviously compiled binaries of some sort, but I am wondering if any dev's out there have been able to decompile or reverse engineer these images - or if there are any source packages from which to work? Any information to this end would be greatly appreciated.
I have long benefited from the hard work of the developers here on XDA, and am looking for a way that I can contribute some of my experience and skills to the community in an area which seems mostly untouched. Thanks in advance for any information!
Edit - I have done some homework and discovered that it is the RIL source I am after. I downloaded the source provided by HTC, only to discover that this critical piece is not included with their release (or at least I cannot find it). I have seen mentions around the web that at least one dev has been able to access/dump the RIL for certain phones. This is my focus at the moment, so any RIL based information would be helpful.

Sorry I can't point you in the right direction, but will gladly melt my extra phone testing .
Sent from my ADR6400L using xda premium

what you are looking for is in the framework. Inside the framework lie the communication between android and the radio. Use apktool to install a framework-res file and then use it to decompile a framework.jar file. You will be left with a decompiler classes file in smali format. In there are files that control connection and communication. A small team and you are working on this with miui. PM me if your interested more

A member of our community who goes by slayher has been able to rewrite the ril and has all the source posted to his github. This source is for AOSP, but you can dig through and see if you have anything to add.
source is here: https://github.com/slayher
android_framework_base is probably what you are looking for, but I'm sure that 4G had an impact across multiple packages, so it might be beneficial to get in contact with slayher himself and see if there is anything you can do.

Excellent, this is exactly the information I was looking for. PMs on the way.

Related

[Q&D Explanations] [Definitions]

I see a lot of confusion on the boards about kernels, files, formats and so on. This is simply a quick and dirty breakdown of some of the words you will see around here, and a hope that it will answer some of the questions I see. If I am mistaken on any of the terms please correct me.
Windows Mobile side of the HD2, applies to all winmo devices and was answered by RizwanKhan a few years back, and a good explanation of things.
http://forum.xda-developers.com/showpost.php?p=3007244&postcount=2
spl= Secondary Program Loader. Think of this in the same sense as bios on a pc. (it sets where your system boots from, intialises sub system process etc)
sspl = soft spl (this allows you to flash another spl or hardspl).
hardspl = hard spl .. basically it allows flashing of any rom. It protects you from bricking your device. If you have a bad flash it just forces the phone to load into bootloader, from where you can flash another rom using pc or storage card to get your phone working again. Using a hardspl you can flash any carrier rom without cid unlocking your device first.
***********************************************
radio = controls the transmitting of information from your phone to the tower, including all data inbound and out, different radios seem to work better for Android. .50's generally work well.
task29 = to keep it simple, it basically overwrites your internal memory with 0's or blank data. It ensures that when you go to flash a new ROM nothing is left behind from the old one and gives you a clean slate to work from.
ROM = read only memory, A file which when extracted and flashed holds all the files/folders and information that becomes your OS on your device which will reside on your ROM. You can find them in various forms around here from bare-bones to heavily tweaked and tricked out.
cid = carrier id, a lock basically that prevents you from flashing a ROM to your phone that is not from your official carrier. Fortunately cid locks can be removed easily.
ruu or custom ruu = ROM update utility, basically an exe that extracts the rom or nbh (signed rom) that gives you a nice gui to install/flash by, whether it be a complete ROM or partial.
***********************************************
Android side of this beast..
kernel = directly from wiki. In computing, the kernel is the central component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware level. The kernel's responsibilities include managing the system's resources (the communication between hardware and software components).[1] Usually as a basic component of an operating system, a kernel can provide the lowest-level abstraction layer for the resources (especially processors and I/O devices) that application software must control to perform its function. It typically makes these facilities available to application processes through inter-process communication mechanisms and system calls.
Zimage = A compressed kernel for linux/android. So many different versions that I cant possibly get into them in the scope of this quick breakdown. Basically though remember the newest build offers generally more features but also can be more unstable, more bugs as well. You can easily try a different zimage though so feel free to test them all!!
ROM = currently on the hd2 ROMs are a bit different than regular Android devices as they reside on the sdcard vs NAND, to get a clean ROM you format your sdcard fat32 with a sdcard formatter (hp has a good one) then create a folder called Android on the root of your sdcard, extract your choice Android ROM with 7zip or your choice of compression utility and copy the contents over to the Android folder.
NAND = in short NAND is your phones internal flash memory, hopes are high that with a ROM flashable to NAND our HD'2 will see better battery life, a bit more stable and a bit faster..although it remains to be seen at this point in time.
Modules = basically a driver, some ROMs or Zimages will have broken wifi or similar, you can often replace the driver with a working one that coincides with the Zimage your are using.
ROOT = default account or creation of account that has access to all commands and files, allowing you or an app to modify the file or file system as needed, without having to supply credentials each time.
ADB = Android Debug Bridge is part of the Android SDK, its a command line interface that allows you to modify, remove, replace or create folders/files/apps, basically anything in your phones working system. It is just what it says, a bridge between your device and your computer. Example would be
adb shell mount -o remount rw /system
adb pull system/app/
adb push appname.apk /system/app/
adb shell reboot
that will pull all the apps in your system directory to your computer, the next will push whatever app back to your phone as long as its in the same folder as adb, followed by a reboot. You have tons of commands available, and again, as this is not a detailed guide I wont go into details but wanted to give you a quick idea of what it can be used for. An alternative to ADB is Droid Explorer which offers you a gui to go with it, however I still prefer ADB personally.
APK = basically apps. Much like windows mobile cab files.
At the mention from faisalee, APK files can be installed from the market as well as using various app installers like Linda, App Control and so on. Another good one to have is Titanium Backup which can remove them system apps you may not want (amazon or something), App Monster is another great free app.
As with us on the HD2 currently we may find ourself from one build to the next and Titanium Backup or App Monster can backup all your apps and allow you to reinstall them from a backup folder on your SD. You can also push them over with ADB or use Droid Explorer to do a batch install directly from your pc, all you need is your apps in a folder on your pc and point Droid Explorer to them.
If you find yourself unsure of how to get the apps to your computer and arent to comfortable with ADB, simply grab App Monster or Titanium Backup , back them up then copy the corresponding folder over to your pc.
There are tons of apps that can do what these can, just listing a few to get you started..I am sure you will find your own favorite apps in time.
PPP = Point to Point Protocal, directly from wiki page. In networking, the Point-to-Point Protocol, or PPP, is a data link protocol commonly used in establishing a direct connection between two networking nodes. It can provide connection authentication, transmission encryption privacy, and compression.
PPP is used over many types of physical networks including serial cable, phone line, trunk line, cellular telephone, specialized radio links, and fiber optic links such as SONET. Most Internet service providers (ISPs) use PPP for customer dial-up access to the Internet. Two encapsulated forms of PPP, Point-to-Point Protocol over Ethernet (PPPoE) and Point-to-Point Protocol over ATM (PPPoA), are used by Internet Service Providers (ISPs) to connect Digital Subscriber Line (DSL) Internet service.
PPP is commonly used as a data link layer protocol for connection over synchronous and asynchronous circuits, where it has largely superseded the older, non-standard Serial Line Internet Protocol (SLIP) and telephone company mandated standards (such as Link Access Protocol, Balanced (LAPB) in the X.25 protocol suite). PPP was designed to work with numerous network layer protocols, including Internet Protocol (IP), Novell's Internetwork Packet Exchange (IPX), NBF and AppleTalk.
PPP is also used over broadband connections. RFC 2516 describes Point-to-Point Protocol over Ethernet (PPPoE), a method for transmitting PPP over Ethernet that is sometimes used with DSL. RFC 2364 describes Point-to-Point Protocol over ATM (PPPoA), a method for transmitting PPP over ATM Adaptation Layer 5 (AAL5), which is also sometimes used with DSL.
PPP is specified in RFC 1661.[1]
RMNET = Little is known to me about RMNET, outside of I find it slower on my builds that I have run, some find it more stable but with slower speeds, especially in regards to uploads. A general push is being made now to work with PPP only it seems by most of the Chefs.
APN = Access Point Name, from the wiki again, Access point name (APN) identifies an IP packet data network (PDN), that a mobile data user wants to communicate with. In addition to identifying a PDN, an APN may also be used to define the type of service, (eg connection to wireless application protocol (WAP) server, multimedia messaging service (MMS)), that is provided by the PDN. APN is used in 3GPP data access networks, eg general packet radio service (GPRS), evolved packet core (EPC).
I have read over and over on these boards about "my internets not working" or "I cant MMS" well..its your APN's. If you have a Android build that works for you do yourself a favor and write down the APN's. Or even better yet, go to the market and search for APN Backup and Restore, its a FREE app that does just what it says. Stop asking for XXX Carrier's APN's people, Google is your friend and won't let you down with this search, or like I said, find a build that has working internet and mms and BACK IT UP! Easy enough fix.
AXI = As per michyprima's definition in this thread, AXI scaling downclocks not only the cpu but also the ram to save battery, but can cause lag. use with caution.
FROYO = (frozen yogurt) Google's name for Android 2.2, it has several benefits over 2.1 (eclair) , mainly due to JIT (just-in-time) compiler. Google claims up to 5x faster and if you have used an older build not based on 2.2 you can tell a substantial difference. Several core apps have also seen an update.
Sense vs Stock = Sense is basically HTC's custom UI overlayed on top of stock Android. The differences are some pretty nice looking widgets for social networking, stocks, a people widget and so on. Sense seems to have better luck with Bluetooth and FM radio currently. Your stock HTC running WINMO is running another version of Sense, Androids IMO is a bit nicer. The down side is it is a bit lower then stock but to some its a acceptable trade off. The newer Sense builds are based off the HTC EVO. The EVO has a great deal in common with our HD2 and seems to work well. The stock builds are based off the Nexus One, and work very well as well. They tend to have proper working camera flash and a bit quicker.
***********************************************
Android is very stable now, if your having issues odds are you did something wrong, your issue has been covered here on these boards I am almost certain, search for your answer and generally you will find what your looking for.
Stop asking what the best Android Build is..these Devs have literally hours upon hours of work in these builds...take a few minutes of your time and try it out, read others comments, if you see a lot of people saying feature XXX or whatever is not working move on to another build.
I know I have left some things out, but my intent was to simply allow new users a quick and dirty way to get caught up on some of the terms they may see around these and many other forums, hopefully cutting down on some of the questions. If a MOD feels this is redundant or should not be posted in the Development section, feel free to remove it or move it to general. My reasoning for posting here was this seems to be where I see most questions asked that this quick guide aims to answer.
If anyone feels I have something incorrect or something needing to be added post away.
Thank you for this. Hope this eliminates the flaming and the noob questions!
Sent from my HTC HD2 using XDA App
thus post might help someone
Sent from my HTC HD2 using XDA App
i think you did a lot of people some good with this , give it some bold print and some highlighted stuff and you got yourself a sticky i believe ...but would probably do better in general , but either way this will help a lot of noobs
thanks for the suggestion, added bold and colors..if it answers one question then good deal
I vote for this to be stickied
x2 on sticky
+1 for sticky!
Sent from my HTC HD2 using XDA App
good thread
+1 for sticky vote
Yup! +1 from meee too
Great post for some one not too lazy to search before posting
Since you added a section about APK, I think it will be a good idea to write a bit about how these "apk" files can be installed on your android without the market place
STICKY?
I agree that this is a most excellent post and well done to OP for undertaking the effort , however I would not support it being stickied and would prefer to see this content added to this thread http://forum.xda-developers.com/showthread.php?t=732380 to consolidate all information about Android in one spot.
Just my two cents worth!
thanks for the kind words
ajt320 said:
I agree that this is a most excellent post and well done to OP for undertaking the effort , however I would not support it being stickied and would prefer to see this content added to this thread http://forum.xda-developers.com/showthread.php?t=732380 to consolidate all information about Android in one spot.
Just my two cents worth!
Click to expand...
Click to collapse
yeah, but I reckon that the people who SHOULD read that ^^^ thread usually dont.
Maybe the word "Definitive" scares noobs away because they think its will be a War and Peace-style guide.
If this got stickied and had the title changed to 'Noobs guide to Android', I reckon it would be used much more than the sticky linked above.
Just my oppinion
PS I'm not a fan of the word noob, but whatever works
updated a bit more, thanks for the suggestion's.
you might put the definition of "Kernel" in there as well.
Cool and usefull
+1 for sticking
Sent from my HTC Desire using XDA App
Excellent post, this may or may not get moved but wherever it is I think it should be stickied, or at the very least link this thread in the Definitive guide sticky
great guide!
Sent from my HTC HD2 using XDA App
Great thread, great write out. This should save a lot of confusion for newbies. +1 on sticky!
Great info. Thanks...

Protecting Privacy - Compiling TaintDroid into Kernel to find leaky apps

Most people don't yet know that many Android software leak all sorts of information to the internet with only scant user acknowledgement (basically what you accept when you install the app).
Due to this and the fact that there are already privacy information harvesting apps for Android on the marketplace - a team of security experts have created TaintDroid:
What is TaintDroid?
From the project's web page: "A realtime monitoring service called TaintDroid that precisely analyses how private information is obtained and released by applications "downloaded" to consumer phones."
From: http://appanalysis.org/index.html
How can I install TaintDroid?
As TaintDroid is currently compiled into the kernel, you cannot easily install it, but you have to cook your own kernel. Instructions (for Nexus 1) are available at the project web site: http://appanalysis.org/download.html
How does TaintDroid work?
Here's a video demonstrating how TaintDroid works once it is installed and configured:
http://appanalysis.org/demo/index.html
Why would you want to install this?
There can be many reasons for installint TaintDroid:
- You want to learn about privacy features and play with Android kernel
- As it is currently impossible to differentiate between innocent and sneaky Android apps based only on what access rights they request, you may want to dig in deeper
- You are worried about what apps are doing behind your back and you want to know which apps to uninstall
- You want to help create Android a more secure and privacy-protected platform, instead of the swiss cheese it currently is
What can you do?
As compiling kernels is mostly beyond the reach of mere mortals currently, consider cooking TaintDroid into your kernel, if you are cooking one yourself and offering it available for others to try and use.
Hopefully increased awareness and usage will bring this program eventually into other modders and perhaps even Google's attention and something more easily accessible is offered for the public at large.
BTW, I'm just a user, interested in getting TaintDroid on my own Galaxy S. I'm not affiliated with the research program, but I like what they are doing. This information is purely FYI.
+1 for the idea
Sent from my GT-I9000 using XDA App
+1
Since we cannot expect information gatherer Google to come up with a good privacy protection mechanism soon I think we are forced to take measures ourselves.
I also learned that several of my bought applications are constantly forcing me to enable synchronisation and/or 3G internet. They either randomly uninstall (Asphalt 5), their icons disappear (for example: Mini-squadron) or won't start, with (Schredder Chess) or without a message. Angry Birds Beta2 lite (free game) and Hungry Shark are 2 more examples. So much for an incentive to buy games...
It would be great if applications used a well-defined mechanism to check their validity on-line, and not have this sneaky, lingering attack from all sides to any privacy or battery consumption aware user.
I can not cook Kernels, but this is something i want to use.
Not that i am worried, but i dont know what apps are sending when you open them. Thats something i want to know!
I am sure i am not the only one.
+1
Yes please... This should be in all android phones... as a security option you could turn on!!!
Antonyjeweet said:
Not that i am worried, but i dont know what apps are sending when you open them. Thats something i want to know!
Click to expand...
Click to collapse
And do some of these applications only send stuff when you open them?
--
From a user perspective it currently is really difficult to judge applications that need to start at boot-up and deal with many facets of your computer (Launchers, tools combining lots of divers features).
Do you know some ROM where Taindroid is included?
I've posted in hardcore and laststufo kernel threads to ask if they could add it.
We just need more people wanting it so they think about adding it
exadeci said:
I've posted in hardcore and laststufo kernel threads to ask if they could add it.
We just need more people wanting it so they think about adding it
Click to expand...
Click to collapse
glad you did that
+1 support the idea. hope some of our hardworking kernel builders will add this in.
My concern is how much another real time service will affect battery life. For people trying to make the leanest, fastest kernel I'm not sure it's viable.
I have been wanting TaintDroid built into android by default since the day it was announced, but I really do not think google cares about this, so please, please ROM cookers out there (Maybe Doc?), lets add this into our galaxy S roms.
Well, this seems to work only on android 2.1
Make it so.
+1
Combined with walldroid (or other firewall) this could put back power into users hands. Would really love to see this inside hardcores kernel. Maybe as an option for the stable releases?
+1
This should be the next standard in aAndroid
idea about spoofidroid application
how about a program to spoof or make the phone send fake:
GPS location,
IMEI,
phone number,
simcard id,
etc... information to applications that ask without permission.
this way you can feed these application with information they want but without breaking your privacy. (both end sides are more than happy)
-----
nice option to have:
1) enable/disable auto generate different id every time.
2) allow list / ban list of application to have real or fake id.
3) enable/disable notify for application request.
-----
there are all ready applications that fake your simcard PLMN mobile network codes without the need of kernel rights, but you need to enable disable the flight mode to restore the default code.
===========
good luck to spoofidroid or similar applications.
Jumba said:
My concern is how much another real time service will affect battery life. For people trying to make the leanest, fastest kernel I'm not sure it's viable.
Click to expand...
Click to collapse
I hope there will be developers out there who prioritize privacy/security over speed/battery and storage usage.
I'm the project lead of the TaintDroid system. We are currently working on a few extensions of TaintDroid but unfortunately are short on engineering resources to port TaintDroid onto other systems than Nexus One that we originally developed. We'd greatly appreciate it if XDA developers would take on this effort! Many ongoing projects would hugely benefit from having easy-to-run TaintDroid ROM available for many different devices and upcoming Android systems let alone user benifit.
Thanks,
Jaeyeon
Research Scientist @ Intel Labs Seattle
Ettepetje said:
I also learned that several of my bought applications are constantly forcing me to enable synchronisation and/or 3G internet. They either randomly uninstall (Asphalt 5), their icons disappear (for example: Mini-squadron) or won't start, with (Schredder Chess) or without a message. Angry Birds Beta2 lite (free game) and Hungry Shark are 2 more examples. So much for an incentive to buy games...
Click to expand...
Click to collapse
beta2 lite? i think that was malware, make sure it came from rovio otherwise it's fake and you should delete it.
It's really scary to see with the lookout app how many apps can access to your imei, telephone number "Read Identity Info", can access your contacts, track your position, and can send out all this data.
Here a HTC Desire user, asking for some privacy.
Best regards!

[INFO REQ] Details on CIQ from DEV's

We have all seen this CIQ information in SFR thread and repeated all over the internet on various forums and blog sites.
Code:
What Is Carrier IQ? Why Should We Care?
3/31/2011: Hello, Slashdotters!
Put simply - and bluntly - Carrier IQ is a software package buried deep within Android by Samsung at the behest of Sprint. It has been in active use since the time of the Moment, if not before. The company that develops it, also known as Carrier IQ, bills it as "Mobile Service Intelligence". In their own words,
[T]he combination of the MSIP and IQ Insight lets you move seamlessly from broad trend data across many users, through comparative groups down to diagnostic data from individual devices. Now, not only can you identify trends, you have the power to drill down to specific instances, giving you the insight your specialists need to make a difference.
On its own, that description can vary from harmless, to worrying, depending on how you look at it. It's not until one drills deep down into the system and ferrets out every piece of the software that one truly knows what it contains. As some of you might remember, ACS took the first steps toward disabling the Carrier IQ software with the release of SyndicateROM and Xtreme Kernel 1.0. That, however, didn't even scratch the surface.
Carrier IQ's native libraries are plainly visible - libiq_client.so and libiq_service.so in /system/lib. During every boot, this service is launched - you can see it in Settings > Applications > Running Services as "IQAgent Service". These native libraries are called by non-native (Android application) libraries located in ext.jar (the client) and framework.jar (the service). Removal of these (rather obviously-named) libraries alone, be it the .so files or the libraries in framework or ext, will, obviously, break boot. So I - k0nane - had to dig deeper. To make a long story short, reference to the IQ Service and IQ Client were littered across the deepest portions of the framework, and some of the most basic functions of the Android system as we know it.
Carrier IQ as a platform is designed to collect "metrics" at any scale. What I found it to hook into is far beyond the scope of anything a carrier needs - or should want - to be collecting. Carrier IQ sits in the middle of, and "checks" the data of, SMS and MMS messages. It listens for and receives every battery change notifications. It hooks into every web page you view, and every XML file your device reads. It receives every press of the touch screen. It 'sees' what you type on the physical keyboard. It reads every number you press in the dialer. It can track which applications you use, what 'type' they are, how often, and for how long. It hooks into data sent and received.
.................
What I am asking in this thread is for any specific information about CIQ that Dev's who have worked with it are willing to provide from their personal experience with investigating and removing it. I am also asking Dev's and Forum Members who have come across other articles, threads in other forums, etc, to please provide information with links.
Code:
Provided by chris41g
to be effectively removed you only need to remove it from 4 files. it is referenced elsewhere scattered throughout... but the four main files are
DialerTabActivity.apk
ext.jar
framework.jar
services.jar
then in the kernels initramfs, you have to disable the service in the init.rc
Provided by mkasick
Here's all the files that reference "CIQ", "carrieriq", or "libiq" with instances unrelated to Carrier IQ removed:
/ (initramfs):
- init: /dev/ttyCIQ0 UART, presumably to communicate with radio.
- init.rc: Start iqmsd service if property:service.iq.active=1.
- lib/modules/dpram.ko: Implements ttyCIQ UARTs.
/system:
- app/DialerTabActivity.odex
- app/FactoryTest.odex
- bin/iqmsd
- framework/ext.odex
- framework/framework.odex
- framework/sec_feature.odex
- framework/services.odex
- lib/libiq_client.so
- lib/libiq_service.so
Of these, bin/iqmsd is a purpose-unknown daemon, and libiq_client.so & libiq_service.so the client & service native code. The client & service managed code is implemented in framework/ext.odex & framework/framework.odex respectively.
In addition, the following framework classes reference Carrier IQ in some fashion:
framework/ext.odex:
- org.apache.http.impl.client.DefaultRequestDirector
framework.framework.odex:
- android.inputmethodservice.InputMethodService
- android.net.http.Request
- android.webkit.{BrowserFrame,CallbackProxy,LoadLis tener,WebViewCore}
- com.android.internal.telephony.SMSDispatcher
framework.services.odex:
- com.android.server.BatteryService
- com.android.server.WindowManagerService
- com.android.server.am.UsageStatsService
Finally, libiq_service.so is used exclusively by framework/framework.odex (com.carrieriq.iqagent.client.NativeClient), and libiq_client.so is used by:
- bin/iqmsd
- framework/ext.odex (com.carrieriq.iqagent.service.IQService)
- lib/libopencore_player.so
I am seeking facts, file names, files, information on CIQ in the framework, specifically what files CIQ hooks into, etc. Thank you for taking the time to read this.
I received a response yesterday (June 15, 2011) from a group that has disassembled IQAgent & CarrierIQ.
in response to questions about CIQ's capabilities.
We have actually disassembled IQAgent/carrierIQ and captured its behavior to find exactly what it is sending back to sprint on the samsung optimus phone. The information we found it to collect was basic, such as cell towers, signal strengths, device battery. Nothing alarming on that phone, but Sprint could send a remote update to enable the surveillance features without the owner being aware.
Click to expand...
Click to collapse
Now while the above statement is about the Optimus, I was able to confirm through another source that IQAgent & CarrierIQ collection and transmission capabilities are set the same across all Sprint Android offerings.
During a telephone call with Sprint and in a follow up email Sprint responded to requests for information on Carrier IQ, who was responsible for the installation on Sprint's hardware and asked to directly address concerns over its potentially invasive nature.
the software that is in the Android phones is supplied by Google themselves as well as the manufacturer. We
(Sprint) has no control over the actual operating system supplied to us such as the Carrier IQ as it is indigenous to the Android platform.
Click to expand...
Click to collapse
Off the record, Google has denied this referencing that the Nexus S did not have CIQ installed on it because they would not let carriers install such software on their native Android devices.
In the same conversation and follow up email Sprint stated;
removing the Carrier IQ software from your Samsung Epic device can void your manufacturer warranty.
Click to expand...
Click to collapse
The representative was questioned on Sprint's use of the word "can" but could not elaborate on under what circumstances removal of CIQ would not void the warranty.
Update July 5, 2011
Sprint still refuses to address the concerns over Carrier IQ's potentially invasive nature. When directly questioned on if CIQ as it is installed on Sprint hardware is capable of the level of invasive data collection as previously reported by Steve Toplez, Sprint responds with complete silence.
I have since requested contact and an official response from both Sprint's compliance department and General Counsel. Once again, the silence is deafening.
Good thinking
Sweet ... but this might just start another debate ..
Lets hope it doesn't. I would really like to see this community come together and allow this information to be provided with little or no flaming, thread hijacking or warring.
Description of CarrierIQs Service
Mobile Service Intelligence
Mobile Service Intelligence is the process of analyzing data from phones to give you a uniquely powerful insight into mobile service quality and user behavior. Carrier IQ's Mobile Service Intelligence Platform (MSIP) is the smart database at the heart of our solution. It receives raw data (known as Metrics) from phones and converts them into reliable, repeatable Measures which feed into analytic applications. The MSIP delivers true enterprise grade performance, with its proven ability to process data submitted by millions of phones with outstanding integrity and security.
Get the Insight
We know you don't just want data, you want to solve business problems and identify new business opportunities. The IQ Insight application suite uses data from the MSIP to deliver true Actionable Intelligence, tailored to specific business areas. From the performance information to support the launch of a new phone or service to historical information to understand in detail customer behavior and usage patterns, the IQ Insight suite cuts through the complexity to allow you to focus on critical business issues, create and track Key Performance Indicators (KPIs) and all in the knowledge that the data is measured at the point the customer experienced it – in the phone.
What's more, the combination of the MSIP and IQ Insight lets you move seamlessly from broad trend data across many users, through comparative groups down to diagnostic data from individual devices. Now, not only can you identify trends, you have the power to drill down to specific instances, giving you the insight your specialists need to make a difference. That is the power of Mobile Service Intelligence.
Click to expand...
Click to collapse
http://www.freshnews.com/news/383257/carrier-iq-powers-android-platform-mobile-service-intelligence
twolostminds said:
Lets hope it doesn't. I would really like to see this community come together and allow this information to be provided with little or no flaming, thread hijacking or warring.
Click to expand...
Click to collapse
as info is provided, you should compile it (in an easy to read format) in the first post so others don't have to read through (potentially) pages and pages of stuff.. (you can use 'code' HTML tags to 'condense' longer text into smaller boxes I think)
Just my .02
and hopefully the community can come together and compile good/relevant info without all the drama.
http://www.carrieriq.com/overview/IQInsightServiceAnalyzer/ServiceAnalyzer.datasheet.pdf
by the way, as far as framework.. to be effectively removed you only need to remove it from 4 files. it is referenced elsewhere scattered throughout... but the four main files are
DialerTabActivity.apk
ext.jar
framework.jar
services.jar
then in the kernels initramfs, you have to disable the service in the init.rc
http://www.carrieriq.com/overview/IQInsightDeviceAnalyzer/DeviceAnalyzer.datasheet.pdf
this datasheet, makes it sound like its installed for testing the phone, then turned off and can be turned on if needed for support..
daddymikey1975 said:
as info is provided, you should compile it (in an easy to read format) in the first post so others don't have to read through (potentially) pages and pages of stuff.. (you can use 'code' HTML tags to 'condense' longer text into smaller boxes I think)
Just my .02
and hopefully the community can come together and compile good/relevant info without all the drama.
Click to expand...
Click to collapse
I will be updating the OP on a regular basis and once enough verifiable information is gathered I will be creating a Wiki-like posting.
i would think that if we are rooting and also using custom roms or taking features Sprint has built into the phone (Carrieriq) then would we not be violating the terms and conditions of service. And lets not forget that google can tell if we are rooted as we can not get movie rentals from the market. Also google and sprint are able to see what apps we have installed and if they see super user app then its a safebet we are rooted. If google wants to get rid of rooted apps they can by simply removing them from the market upon carrier request like vzw and att did for wifi tether.
chris41g said:
...
then in the kernels initramfs, you have to disable the service in the init.rc
Click to expand...
Click to collapse
sorry noob here, I'm running stock EC05, how do I remove it from init.rc?
chris41g said:
http://www.carrieriq.com/overview/IQInsightDeviceAnalyzer/DeviceAnalyzer.datasheet.pdf
this datasheet, makes it sound like its installed for testing the phone, then turned off and can be turned on if needed for support..
Click to expand...
Click to collapse
I don't know much about it but I do know it runs in the background at boot. To me, that's not "turned off."
dchawk81 said:
I don't know much about it but I do know it runs in the background at boot. To me, that's not "turned off."
Click to expand...
Click to collapse
The service is running, with logging and reporting turned off, and can (presumably) be remotely activated..
Sent from my SPH-D700 using XDA App
chris41g said:
The service is running, with logging and reporting turned off, and can (presumably) be remotely activated..
Sent from my SPH-D700 using XDA App
Click to expand...
Click to collapse
Right. So it's not truly off. Standby isn't off.
Since it's not off, I prefer it gone.
From what I've been able to gather from it it doesn't do much of anything. It has the potential to track stuff, but i'd bet stuff for marketing purposes and possibly troubleshooting remotely.
Everyone is all up in arms over removing it, but there or not it doesn't have any effect on your phone, or battery life.
As far as security purposes, you may as well stop using your phone all together, because thats similar to the kind of stuff google can collect from your phone at any point. Its not a big deal, its not important, and the performance gain for removing any of it is nil.
Well if it doesn't do anything at all, it doesn't need to be there.
chris41g said:
http://www.carrieriq.com/overview/IQInsightServiceAnalyzer/ServiceAnalyzer.datasheet.pdf
by the way, as far as framework.. to be effectively removed you only need to remove it from 4 files. it is referenced elsewhere scattered throughout... but the four main files are
DialerTabActivity.apk
ext.jar
framework.jar
services.jar
then in the kernels initramfs, you have to disable the service in the init.rc
Click to expand...
Click to collapse
Does anyone have a list of every file that references CIQ?
twolostminds said:
Does anyone have a list of every file that references CIQ?
Click to expand...
Click to collapse
That would be an almost impossible task, without going through the source... and even then there are likely to be closed source files too....
The list I gave you is what is edited in a nociq rom though..
Sent from my SPH-D700 using XDA App
chris41g said:
That would be an almost impossible task, without going through the source... and even then there are likely to be closed source files too....
The list I gave you is what is edited in a nociq rom though..
Sent from my SPH-D700 using XDA App
Click to expand...
Click to collapse
You are probably right, it would be impossible without access to both open and closed source. My goal is to put together the most complete and comprehensive information source on CIQ's implementation and capabilities as installed in Android. So any other references that have been found would be greatly appreciated.

[Q] Confused on the structure of things

After perusing the forums for a while I'm considering loading a new ROM/Kernel. Maybe I'm to much of a noob to know but I can't find a thread that lays out the structure of Android. The stuff I can find assumes that I am already on intimate terms with this stuff, but I'm not.
I flashed CWM 3.1.0.1 which allowed me to clear caches and reset the battery gauge which has really helped. In trying to go further I'd like to piece the structure of the system together so I know where I am in the bigger scheme of things. I rely on the Epic for work. I can't afford to go down the wrong path and find myself in a far away town relying on a hotel internet connection to get back up off the ground. The picture I have is this:
Root lets me do the things I have mentioned before. Namely clear caches, backup my phone, reset battery meter, run some utilities to aid in device management. Similar to root or SU on *nix systems.
ROM drives the hardware and basic user interface, seems to me to be equivalent to the boot ROM and some lower level of OS functionality
Kernel is the actual software that runs on the device. This would be some OS and phone system overlay and the basic applications that show up in your applications folder. This provides your Sprint connection, network interface and the like
Applications are the other things that you actually run on the phone like games, social media programs GPS etc. Some come wrapped with a kernel, or they could be pick and choose.
I'm a bit fuzzy on where the ROM leaves off and the Kernel begins, maybe someone can clarify this.
Which leaves me here:
I see stuff that makes flashing new kernels and ROMs sound as if they are a magic elixir. I see posts that make it sound as if its a playground for folks who are hobbyists. Some posts talk about things that don't work any more with this flash or that. Where is the list of stuff that works and does not work for various mods?
My needs are very basic.
I need a reliable phone.
I need reliable Google mail & calendar (there are a few advantages to outsourcing corporate email to google).
Usable but not mission critical texting and GPS.
Better battery life.
This phone is for business. I do not need: social media, games, gadgets, widgets, toys.
Any light you can shed on the subject to help a brother out is appreciated.
Root = Elevated privilege access.
Kernel = The software that drives the phone.
Rom = The files on the phone's storage.
Apps = Also files on the phone's storage.
Root gives you the ability to do things the phone manufacturer did not intend for you to be able to do. (Think limited user account on Windows/Linux).
The Kernel is like the "engine" of the phone, w/o it the phone does nothing.
The Rom is the files on the phone, some are used by the kernel in order to make the phone work.
Apps... you know what these are. =]
The kernel controls the device, it has the drivers for hardware to make that hardware work.
The kernel is a Linux kernel built specifically for the device (phone) it will be run on.
The Rom is a collection of files to be installed onto the phone.
The Rom contains the operating system (the part that makes it an "android").
A Rom also includes apps, might include a theme (modifications to images, colors), and possibly numerous other modifications to the "stock" files.
The "stock" files, or a "stock" Rom, is what we are given by Sprint.
The different custom Roms you see available here on XDA are basically the stock files, modified by someone to their liking.
Some include a theme to give a custom look, most include modifications to make things "better" (ie hacked Sprint Hotspot, the 6 or 8 Lockscreen mod, etc).
There are many other aspects at play here, and much more that could be said about each item you listed, but the above is a generalized rundown.
Android runs on top of Linux, so the more familiar you are with Linux the better off you will be.
Do yourself a favor and take the time to read as much as you can, Google is your best friend.
=]

Contest: Win a ARM CORTEX M0 Development Board

We're giving away a STM32 F0 DISCOVERY development board.
Contest
Enter your idea in this thread
add pictures, links, video or whatever else you can add.
Do anything you can (except create new accounts) to get people to click the thanks button
Contest ends Saturday, 23 June 2012
Winner gets a STM32f0 Discovery board
Rules
Anyone caught creating new accounts will be disqualified. There are automated systems in place for detecting this which alert admins and senior moderators to pay attention to your new account for review.
One post per person. Multiple posts will be deleted. No exceptions
Use of social media (Google+, Twitter, Facebook, Youtube) are encouraged.
TLDR
You have one week. Put your idea in this thread, then get on your favorite social media service to get people to click that thanks button on your post.
I'm going to use it to educate myself.
I'm going to use it to write a High performance micro kernel (i will later fix up for cortex-A8, HD2 ) and for testing the ARMASM code i write, (which i currently test on my only phone, HD2 and it's painful to do so thanks to HTC's SPL, MPU, NAND fatigue and the fact that i need it working the next day).
It has Thumb (2) support so i will try my hand at that too, thumb2 promises quite a lot of code density with somewhat the same performance.
Also I'd be porting the Little Kernel to it, which already has support for cortex-M3
I'll use it to make the word a better place........just joking ......mass destruction awaits if i get that........so don't give it to meh.
Basically because I have no idea how to use a development board, I'm gonna use it to learn how to use one and also learn to code which is something I have been looking into. So yeh....
i will use it to develop a better wireless usb card. i already have one. a arthos 2255. i would like to mod these too together for use with any O.S. my idea would be that you just plug and play. kida like a gui. you plug it in and a window comes up and you can see the progress of it emulating it self into your system O.S and any hardware without internet. might have to put bigger a storage device. but it can be done.. AND I WILL DO IT!
Nerdie stuff
Well im going to mod my phone and learn how to be a android developer
I want to add it to my LEGO collection >
I am joking around ... I love u developers
I'm going to find out what it is.
Unboxing video and then blend it
Sent from my XT910 using Tapatalk 2
What I'll do with it...
I would try and create a WiFi cracker with it by connecting a WiFi midule to it and also try to run the Android OS on it, and finally I would do some home automation on it, DLNA and remote controlling various things.
Please hit thank you!
I really really want this...
I will build full framework that connects your Discovery to internet (home network => public IP, if you have one), runs web server, gathers data from all over the house via NRF24L01-based wireless network (another small ATTiny based modules with humidity, temperature, .. sensors, controlling lights and power etc) and provides them on web page.
I would give it one of the devs for the lg optimus thrill/3d because I'm not a dev but it would probably help development for my device greatly and mabie we could get some good stuff going on this phone
I would use it to play around with android.
*se-nsei. said:
I'm going to find out what it is.
Click to expand...
Click to collapse
Hahaaha, I'm in the same boat with you
I would use it to develop a custom AOSP-based image for use as a low-cost media tablet, with IR, DLNA, Remote Control and a TV tuner for the ultimate lounge room accessory.
A Real Car-puter
I would use it, in conjunction with an application board, to build a carputer...not one that allows you to listen to or watch pirated media. One which will automate things such as wipers and headlights. For the wipers, my car has only one intermittent setting so I would like to add in more settings. Maybe also look into rain sensors at some point but not initially. Headlights will be controlled by time (automatically coming on at night)and light sensors to turn on lights during daytime hours when lighting conditions are poor or if I am driving through a tunnel). Also use speed limit information hacked from gps maps to light up my dash gauges with different colours depending on my current speed and the posted speed limit (Red > 5% over speed limit, green for 10% under to 5% over the speed limit blue > 10% under the speed limit and no colour for missing speed limit information.
I know the usage is light for such a board but it leaves room for expansion and the projects I have here seem to be a good starting point for learning with.
Future projects could include controlling things such as ignition, doors and windows, heating etc from my phone and eventually building a customised alarm system. Also, some sort of laser mounted to a servo that will project a line/image onto the road to give following drivers a guide to what distance they should be from you depending on the speed you are travelling.
Good luck to everyone that enters.
First, I would learn how to use it then use it to get the Robitics merit badge(im in scouts) and show other scouts how to do it. I would also integrate it somehow into my science project that will help people(still have some planning to do :/) for school.
Good Luck
I'm going to use it to build a giant robotic Obama
im going to use it for education and i will be using it for my 2 final years of high school making automated systems in my engineering and IT Classes!

Categories

Resources