[XMM6260][X-GOLD 626] Modem Specification / Documentation / Hack-Pack - Hardware Hacking General

Intel / Infineon XMM6260 & X-GOLD 626 Modem Hack-Pack Release!
After several unsuccessful months of trying to get my phone (application) to
talk AT-commands with the baseband processor (BP), I've had to learn a lot of
hardware and internal Android and OEM based tricks and secrets. Although this
have not been enough to make anything of practical use, it is definitely worth
sharing. If not at least some more talented people may be able to continue
where I have left of...
Now, it should be immediately stated that there is nothing revolutionary
in here, apart the Infineon manual for tuning your GSM modem, using the
AT CLI and GTI sequencer. This is something that could potentially be very
useful for better understanding the advanced features that the modem
platform incorporates. However, it is also a sure way of making a an
expensive brick out of your phone! You have been warned...
Brief Modem Description
The XMM6260 is the "platform" that consists of:
The X-GOLD 626 baseband processor
The SMARTi UE2 RF-transceiver DSP
The 3GPP Release 7 HSPA+ protocol stack with:
Downlink: Category 14, Uplink: Category 7
The X-GOLD 626 baseband processor (labelled "PMB 9811") is communicating
with the DSP RF-tranceiver chip called SMARTi-UE2 (labelled "PBM 5712 A1"),
using a communication interface that corresponds to the MIPI DigRF-3G
(V.3.09) standard. Through this protocol the BP can control some or all
aspects of the RF DSP.
Alternative Names
Infineon IFX6260
Intel IMC6260
Intel XMM626
Some other devices using this platform:
Code:
- Lava XOLO X900 [Phone] FCC ID: ???
- Lenovo K800 [Tablet/Pad] FCC ID: ???
- LG-P920 (LG ?) [Phone] FCC ID: BEJP920
- LG-P925 (LG Optimus 3D?) [Phone] FCC ID: BEJP925
- Huawei E369 (3G Hi-Universe) [USB 3G Modem] FCC ID: QISE369 (Russian distrubutor: Merlion)
- Huawei MU733/MU739 [PC/CE Module] FCC ID: QISMU739
- Samsung Galaxy Nexus (I9200) [Phone] FCC ID: ???
Other devices that may (!?) also contain the X-GOLD 626:
---------------------------------------------------------
- LG Optimus 4X HD [Phone] FCC ID: ???
- HTC One X [Phone] FCC ID: ???
- Huawei Ascend D Quad [Phone] FCC ID: QIS ???
- Huawei E392 (E392u-511) [LTE Multi-mode USB stick] FCC ID: QISE392U-511
- Huawei E353 (E352s-6) [HSPA+ USB stick] FCC ID: QIS ???
Hack-Pack Content
Code:
- Pictures/Diagrams:
- XMM6260 colored pinout map
- XMM6260 mounted in a Samsung Galaxy S2
- SMARTi UE DSP RF-tranceiver chip mounted in the SGS-2
- IPC xxxxxx stuff
- Infineon PhoneTools testing program
- Raw 1byte greyscale PNG of modem.bin from XXKI1
- PDF files/documents:
- ITA-RF-Adjustment-GSM (XMM6260 Specification)
- Infineon MIPI-HSI Product Brief
- X-GOLD 616 Product Brief
- Fairchild FSA9280/88A USB/UART switch/MUX datasheet
- Similar Modem AT sets/documents:
- AT_Command_Set_3GPP-TS-27007-940.pdf
- AT_Command_Set_AMOD_HSPA.pdf
- AT_Command_Set_Gobi.pdf
- AT_Command_Set_Motorola_XM7200S.pdf
- AT_Command_Set_Teltonika_TM3.pdf
- AT_Command_Set_iWOW_TR-900.pdf
- Text Files:
- 3GPP 27.007 AT-list
- XMM6260 official AT-set
- XMM6260 internal AT-set
- XMM6260 homebrew specifications
+ X-GOLD 626 Modem pinouts
+ MUX pinouts
+ AP connections (SGS2)
+ AP relevant info
- Strings of modem.bin (stock firmware image: [B]XXKI1[/B])
- Strings of drexe
- Strings of rild
- Strings of libril.so
- Strings of libsec-ril.so
- GT-I9100 stock (GB 2.3.4) binary files:
(Taken from: PDA:[B]XWKI4[/B], Phone:[B]XXKI1[/B])
- libKiesDataRouter.so
- libril.so
- libsec-ril.so
- libsecril-client.so
- drexe
- rild
- Android hardware hacking binaries (tools):
- dbus-monitor
- dbus-send
- hciconfig
- hcidump
- hcitool
- i2cdetect
- i2cdump
- i2cget
- i2cset
- ipcfilter
- ipcdump
- ipctool
- procmem
- showmap
- showslab
- strace
- tcpdump
- viewmem
+ various other content
Download Here! (57.72 MB)
The modem firmware referred to and studied can be
found here (Modem.bin.7z) or here, under "XXKI1".​-------------------------------------------------------------------------------
DISCLAIMER:
All the material in this collection was found on internet by
appropriate Google-Fu and/or by laborious manual creation.
Nothing is stolen or reversed, so I am not held responsible
for the origin or problems affiliated with the use of these
documents, programs or other binaries.
-------------------------------------------------------------------------------
​If you are a developer or other corporate official of Intel or Infineon:
Please contact your superiors and ask them to release the proper
datasheets and documentation of these products to the public.
Why? Because:
It would significantly increase the sales of your hardware, by promoting
a much more open approach to hardware development. There are currently
more than 10 open-sourced and open-hardware smartphone projects around
the world, who would benefit from the use of a more modern baseband than
what is currently and openly available.
.
It would significantly promote your hardware in front of your competitors,
as your company would be the first one to open up your documentation to the
public. Thus increasing public technical knowledge of your hardware, which
would ultimately lead to you having an easier time to find qualified
developers that cost you less!
.
It would significantly reduce the cost and time for firmware development,
while increasing the firmware code-quality and compatibility, as you
would be able to benefit from the large community and knowledge from
other professional developers as well as hardware-hackers.
(Yes, there are several bugs found in your firmware, but since there is
no way to report and discuss these with your developers, they will
continue to cost you money and head-scratching for all developers
having to deal with your platform.)
.
Your competitive advantage due to 1-3, would promote new and better
future hardware developments, that would not only benefit your
company/business but also society as a whole.
.
Its simply the right thing to do!
The thread where all this become crisply relevant is this one:
[A][SGS2][Serial] How to talk to the Modem with AT commands
There you will find all documents which I have found to date, which
is essentially none. At least nothing that can be of ANY practical use.

UPDATE: [2012-04-17]
As soon as I get a chance I'll update the HackPack (HP) with new data regarding the MUX
and some other hardware used in the SGS2. This data, as presented within HP, is simply wrong!​

Reserved 2 me 3

Awesome info I was also thinking looking at the ServiceMode application in the SGS2 could provide interesting information. BTW, do you know if the X-GOLD has a diagnostic mode similar to the one usually found in Qualcomm modems?

xd.bx said:
Awesome info I was also thinking looking at the ServiceMode application in the SGS2 could provide interesting information. BTW, do you know if the X-GOLD has a diagnostic mode similar to the one usually found in Qualcomm modems?
Click to expand...
Click to collapse
Thanks! The ServiceMode app is mostly interesting because its code actually reside inside the Modem firmware, where the java app is acting as a wrapper. I'm not familiar with the Qualcomm modems, could you elaborate on what that "diagnostic mode" does? (The x-gold firmware is FULL of various modes. Just depends on what you want to do, and to get the proper documentation on how to use it!)

Just found ... a bit older, but still very interesting
http://hwplatform.googlecode.com/svn/trunk/Infineon/

RNC States from libsec-ril.so
Hi
Very valuable information! Does anyone have an idea about how to get the information displayed from serviceMode programatically? Looks like most of it is being polled directly to the libsec-ril.so. In my case I'm interested in obtaining information about the RNC states on the handset

Thanks for this information
Thanks for the info E:V:A. I did quite some figuring out about the Radio/DSP unit of the Nokia DCT3 back in the day and also the GSM protocol (anyone remember Project Blacksphere / OpenGPA?).
Things have likely come a long way since then. One thing that is clearly different is that the baseband processor is completely isolated from the application processor. In the DCT3 there was one ARM processor that drove both the user interface and parts of the GSM protocol, and connected to a DSP for the low-level radio stuff.
I wonder how other things have changed with 3G. I may get back in the game. This will give me an headstart

Memory map and boot process
It appears that modem.bin consists of multiple partitions that are loaded separately at bootup of the device, reflecting the modem boot up sequence in libsec-ril.so:
Code:
Offset Size Address Description
0x000000 0x00f000 0x00800000 PSI
0x00f000 0x019000 0x60000000? EBL
0x028000 0x9d8000 0x60300000 Main image
0x9ff800 0x000800 Used for verification (buliding ReqSecStart command)?
0xa00000 0x200000 0x60e80000 NV data (file contains default data)
0xc00000 0x000200 Unused?
Offset is offset in file, address is flash/ram offset on device. Whereabouts about the EBL are a bit unknown, address 0x60000000 is based on a guess the others are sure.
Also I did an attempt at constructing the run-time memory map of the device, based on static analysis but as I've not found a way yet to actually probe it there are quite a few question marks.
Code:
Device memory map:
0x00000000 RAM/ROM? (what is here?)
0x00080000 PSI bootloader *RAM*
0x40000000 Flash (what is flashed here?)
0x60000000? Code (EBL)
0x60100000 Flash
0x60300000 Code (Flash)
0x60e80000 NVram data (Flash)
0xe0000000 Peripheral mapping for memory-mapped I/O (256MB)
0xffff0000 Memory (initial stack)
As for I/O devices in peripheral mapping, my understanding is still very limited and based on the bootloader only. I have a longer list of addresses from static analysis, but as I can't yet label anything it is pointless to publish. As usual, the upper bits (how many? 8?) select which peripheral, the lower bits (20?) select a port within that peripheral.
Code:
0xe4d00164 ? status bits
0xe4d00384 ? status bits
0xe8000070 ? status bits
Entry points:
Code:
Offset Address Description
0x000000 0x00080000 Boot loader
0x00f400 0x60000000? EBL
0x1a8000 0x60480000 Main stack
I'm trying to run this in QEMU and created a basic environment, but as my understanding of ARM kernel space (interrupt handling, timers, etc) is very limited, it currently gets stuck in a loop waiting for some other thread (or interrupt handler) to update an address.

just thought it might be of interest and help - http---en.samaanet.com/?p=2390

direct link:
http://en.samaanet.com/?p=2390

Polarfuchs said:
direct link:
http://en.samaanet.com/?p=2390
Click to expand...
Click to collapse
That's a direct rip-off of my XDA thread!
Any more posts with such links will be removed!

How should I know, I just posted the link as "service" because the user above me could't post links.

I've been informed that the download link doesn't work. i will upload again as soon as I have time...

Really interesting stuff you have got here.
One thing I've been searching for a while now: I own a Galaxy Nexus, which has a XMM6260 modem. Samsung had on their stock ROM a feature in service mode where you can check the power modes of the 3G data connection. Since the Galaxy S2 has the same modem, thus it should be possible to get that feature.
I'm interested in this stuff because my Galaxy Nexus likes to drain like crazy on the 3G network that I use and I suspect that it has to do with the 3G data power modes. 3G+wifi is extremely efficient in power use but 3G+mobile date is al big battery hog.
I hope you post a working link soon, than I can start reading this stuff.

Seems like this might be the best place to ask this... I also asked in the "fun with AT commands" thread so my apologies up front for the spam.
I'm looking for a fastboot friendly radio baseband I can flash with a 4.2.1 friendly RIL. This may be more than what I actually need but I've got a full telephony build of the Nexus 7 3G going and while SMS and MMS are fully functional I'm getting a CME ERROR: 4 when I try to do voice dialing and don't see anything coming in via logcat on an inbound call.
The mobile plan I'm using is full voice capable and verified as functional.
Doing a strings of the included RIL (libxgold-ril.so) shows all the necessary voice functions listed (although I guess this could be a false positive if it is interface based).
The modem mounts up on /dev/ttyACM0 and I'm able to do all the basics with radiooptions, except voice dialing and answering of course.
Any pointers / advice / direction would be greatly appreciated... coming up to speed real quick in this area.

XGold626 One X Pinout
I have removed my BB CPU and here is the pinout if it helps anyone

How to start?
I'm a rookie so is anyone can provide a step-by-step tutorial about how to send AT commands to the baseband processor directly? Right now I only can use i2cdetect to list i2c channels, but how to do next?
Thanks,
Andong

XGold 626 Reversing
witchspace said:
It appears that modem.bin consists of multiple partitions that are loaded separately at bootup of the device, reflecting the modem boot up sequence in libsec-ril.so:
[snip]
Click to expand...
Click to collapse
Hi!
Nice work. I'm working on reversing the xgold626 baseband as well. Specifically, I'm looking at the NELK2 baseband for my GT-i9300.
Perhaps we could join forces? Anyone else working on reversing the xgold626 baseband is welcome to contact me as well.
I'm reachable at: je at clevcode.org, or on my ircd (irc.clevcode.org, port 7000, SSL, nick je).
Cheers,
Joel

witchspace said:
It appears that modem.bin consists of multiple partitions that are loaded separately at bootup of the device, reflecting the modem boot up sequence in libsec-ril.so:...
I'm trying to run this in QEMU and created a basic environment, but as my understanding of ARM kernel space (interrupt handling, timers, etc) is very limited, it currently gets stuck in a loop waiting for some other thread (or interrupt handler) to update an address.
Click to expand...
Click to collapse
clevcoder said:
Specifically, I'm looking at the NELK2 baseband for my GT-i9300. Perhaps we could join forces? Anyone else working on reversing the xgold626 baseband is welcome to contact me as well.
Click to expand...
Click to collapse
Yep, that is very interesting. Send me PM if there are more interest in pursuing this further! What's the primary interest of doing this?

Related

BadaSI - System Tool (bada App)

http://www.samsungapps.com/topApps/topAppsDetail.as?productId=G00000688645&listYN=Y
This system information tool knows everything about your device. It allows to take a deeper look into your powerful hardware by listing all important information. All important values are dynamically updatet.
Available Information Areas
- System Information: CPU, RAM, GPU, Storage, Power, Sensors
- Network Information: Cell, WiFi, Bluetooth, SIM-Card, GPS, Statistics
- Settings Information: Software, Features, Config, Other
Click to expand...
Click to collapse
Feel free to write comments to Developer:
http://www.badanation.de/topic.php?t=3948
Thanx to darijoa
Best Regards
Very good app a must have!!
Just got my new Wave 3 and realized that BadaSi sees the CPU as a 1Ghz A8. At least i know exactly what GPU i have...
Like all System Tools... known from PC...
sometimes static Text included...
Best Regards
lol
Bada SI is outdated now
Team VEA will work on it after my exams end & after Lareito's work end too...Maybe in February
We got great plans for it already but no time right now
Best Regards
It's not my fault, samsung doesn't offers any APIs to get such informations so i must add them static, and on the other site badasi is nearly a year old and the wave III is currently out in the current alpha running much of these things are solved by only adding the 2.0 manifest like battery level and so on.
Don't worry after replacing the old 1.2 gui with new one we will also fix it for wave III
Only the Wave, WaveII, WaveIII are supported, simply cause of i cannot find any hardware specs about the low devices, nothing clearly. So an update for this devices is simply currently impossible.
hi there, just wondering if there had been any updates on slyfer samsung app ? anything you guys working on at the moment ?

[INFO] WaccoPedia - Sharing is Caring

Sharing is Caring - Caring is Helping - Helping is Sharing​
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Purpose of this thread is to share some useful basic information as gathered using my (rooted) HTC Desire HD, and is meant as non posting/replying reference only thread.
Thanks to all who've posted useful info, helped me with all my questions and contributed their knowledge and skills with the community.
Special thanks to Mike1986 and all ARHD team members for showing skills, respect, patience and humor.
and
BIG respect for all great people I've met on various forums and sites for making great Android ROMs, MODs Themes, Apps, Scripts etc. and for all the posts containing useful and friendly information.
Kernel: "abbreviations"
Governors:
Radio: Preferred Network types and info
RUU (ROM Upgrade Utility):
Android Partitions:
Android: Anatomy and Physiology
CID: Carrier ID (+ some codes)​
GLOSSARY
Code:
[B]2G[/B]
The second generation of mobile telephony systems uses digital encoding. 2G networks support high bit rate voice, limited data communications and different levels of encryption. 2G networks include GSM, D-AMPS (TDMA) and CDMA. 2G networks can support SMS applications.
2.5G
2.5G extends 2G systems, adding features such as packet-switched connection and enhanced data rates. 2.5G networks include EDGE and GPRS. These networks support WAP, MMS, SMS mobile games, and search and directory.
[B]3G[/B]
The third generation of mobile systems provides high-speed data transmissions of 144Kbps and higher. 3G will support multimedia applications such as full-motion video, video conferencing and Internet access.
[B]4G[/B]
As of the end of 2009 it was consensus that 4G would designate Mobile Network technologies beyond 3G and its extensions "3,5G" (HSPA) , "3,75G" (HSPA+). These would logically include WiMax and LTE. In the beginning of 2011 carriers in the US started to misuse the term, advertising their HSPA networks as 4G press coverage on thisismynext Officially, the term 4G has been defined by the ITU to include LTE-Advanced and WirelessMAN-Advanced (WiMax2), none of witch are deployed anywhere still. GSMA PR
802.1X
As the IEEE standard for access control for wireless and wired LANs, 802.1x provides a means of authenticating and authorizing devices to attach to a LAN port. This standard defines the Extensible Authentication Protocol (EAP), which uses a central authentication server to authenticate each user on the network.
802.11
The IEEE standard for wireless Local Area Networks. It uses three different physical layers, 802.11a, 802.11b and 802.11g.
802.11a
Operating in the 5 GHz band, 802.11a supports a maximum theoretical data rate of 54 Mbps, but more realistically it will achieve throughput somewhere between 20 Mbps to 25 Mbps in normal traffic conditions. In a typical office environment, its maximum range is 50 meters (150 feet) at the lowest speed, but at higher speed, the range is less than 25 meters (75 feet). 802.11a has four, eight, or more channels, depending on the country. WLAN products based on 802.11a technology are rapidly coming to market in 2003, making them more affordable and widely available.
802.11b
Most WLANs deployed today use 802.11b technology, which operates in the 2.4 GHz band and supports a maximum theoretical data rate of 11 Mbps, with average throughput falling in the 4 Mbps to 6 Mbps range. In a typical office environment, its maximum range is 75 meters (250 feet) at the lowest speed, but at higher speed its range is about 30 meters (100 feet). Bluetooth devices, 2.4 GHz cordless phones and even microwave ovens are sources of interference (and thus create poor performance) for 802.11b networks. Minimizing interference can be difficult because 802.11b uses only three non-overlapping channels. 802.11b products have been shipping in quantity for several years so you will find that products are plentiful and affordable.
802.11e
802.11e provides Quality of Service (QoS) support for LAN applications, which will be critical for delay-sensitive applications such as Voice over Wireless IP (VoWIP). The standard will provide classes of service with managed levels of QoS for data, voice, and video applications.
802.11g
The 802.11 task force is still developing 802.11g, and it is expected to be ratified as a standard by mid-2003. 802.11g offers the throughput of 802.11a with the backward compatibility of 802.11b. 802.11g will operate in the 2.4 GHz band but it will deliver data rates from 6 Mbps to 54 Mbps. Like 802.11b, it will have up to three non-overlapping channels. 802.11g uses orthogonal frequency-division multiplexing (OFDM) modulation as does 802.11a, but, for backward compatibility with 11b, it also supports complementary code keying (CCK) modulation and, as an option for faster link rates, allows packet binary convolutional coding (PBCC) modulation.
Its "backward compatibility" with 802.11b means that when a mobile 802.11b device joins an 802.11g access point, all connections on that access point slow down to 802.11b speeds.
802.11h
This standard is supplementary to the MAC layer to comply with European regulations for 5GHz WLANs. European radio regulations for the 5GHz band require products to have transmission power control (TPC) and dynamic frequency selection (DFS). TPC limits the transmitted power to the minimum needed to reach the furthest user. DFS selects the radio channel at the access point to minimize interference with other systems, particularly radar. Pan-European approval of 802.11h is not expected until the end of 2003.
802.15
This IEEE working group addresses the standard for WPANs. It has four active task groups.
802.15.1 had the job of delivering the standard for low-speed, low-cost WPANs and is based on the Bluetooth spec.
The 802.15.2 task group is developing the recommended practices on how 802.11 WLANs and 802.15 WPANs can co-exist in the 2.4 GHz band. It is mainly working on the interference problem between Bluetooth and 802.11.
The 802.15.3 task group is delivering a standard for higher speed WPANs from 10 Mbps to 55 Mbps at distances less than 10 meters.
The 802.15.4 task group is preparing a standard for simple, low-cost, low-speed WPANs. Data ranges from 2 Kbps to 200 Kbps and uses DSSS modulation in the 2.4 GHz and 915 MHz ranges.
.apk or APK's
An .apk file extension denotes an Android Package (APK) file, an .apk file can be opened and inspected using common archive tools
.tar
Similar to a zip file, a tar file archives multiple files into one file
.tgz
TGZ files are commonly used as install packages for Slackware Linux.
ActiveSync
This program by Microsoft is what we all use to connect to our computers at work or at home. It allows contacts, tasks, emails and Calendar events to be synchronised with Outlook as well as such things as media and favorites. In Windows Vista this has been replaced by the Windows Mobile Device Center. In addition ActiveSync allows browsing of the device in Windows Explorer and programs can be installed via an 'InstallShield' type package installer. AES - Advanced Encryption Standard.
Security issues are a major concern for wireless LANs. AES is the U.S. government's next-generation cryptography algorithm, which will replace DES and 3DES.
AKU
Adaptation Kit Update - Starting with Windows Mobile 5 Microsoft began a policy of updates similar to that of the desktop windows. Rather the replacing the whole OS some functionality may be added. For example AKU 2.0 introduced push mail. These updates are distributed through the OEMs and are given to the consumer in form of ROM updates. Note that OEM may choose not to create an update with the latest AKU for their devices. Getting an AKU for your phone is like getting the SP2 (Service Pack 2) for your Windows Xp.
AP - Access Point.
Wireless devices, such as laptops or PDAs, connect to a wired LAN via an AP, which is a hardware device or a computer's software that acts as a communication hub. APs provide heightened wireless security and extend the physical range of a wireless LAN.
Application Unlock
Most Windows Mobile phones only allow you to load applications that have an acceptable digital signature. If you try to edit the registry or load an application it will give you an error. Application Unlocking removes this barrier and allows you to install any application or edit the registry to your liking.
Bluetooth
A wireless technology developed by Ericsson, Intel, Nokia and Toshiba that specifies how mobile phones, computers and PDAs interconnect with each other, with computers, and with office or home phones. The technology enables data connections between electronic devices in the 2.4 GHz range. Bluetooth would replace cable or infrared connections for such devices.
Bootloader
The bootloader is the first thing to load once you turn on the device, this does the job of booting up the device hardware and loading various items into memory before the ROM starts in the device. The bootloader is also responsible for enabling the flashing of new ROMs and other components such as the Radio and the Ext_ROM. Two modified bootloaders for the Hermes are HardSPL and SSPL.
To enter the bootloader, press and hold the OK and POWER buttons while inserting the stylus into the reset hole on the bottom of the Hermes.
BREW - Binary Runtime Environment for Wireless
Developed by Qualcomm, BREW is an open source application development platform for wireless devices. BREW developers can create portable applications that work on any CDMA handset. Applications include SMS, e-mail, location positioning, games and Internet radio.
When first introduced, BREW was solely for CDMA handsets. BREW has since been enabled for GSM handsets and expects to add TDMA handsets. BREW and J2ME are competing head-to-head for the wireless application development market.
CDMA - Code Division Multiple Access
A digital wireless technology that uses a spread spectrum technique to scatter a radio signal across a wide range of frequencies. CDMA is a 2G technology. WCDMA, a 3G technology, is based on CDMA.
CDMA has multiple variants, including CDMA 1X, cdma2000, CDMA2000 1X, CDMA2000 1xEV-DO and cdmaOne.
CID
The CID (Carrier ID) of the device is a setting which determines which carrier ROMs should be allowed to run on the device. All bootloaders (apart from HardSPL and SSPL) will only allow a ROM with the correct CID to be flashed onto the device. A device which has been CID unlocked will have SuperCID which allows ANY ROM to be loaded onto the device, SuperCID also unlocks the Ext_ROM and allows it to be mounted.
CID Unlock
Load any carrier ROM (in any language) on the device.
CLDC - Connected Limited Device Configuration
CLDC outlines the basic set of libraries and Java virtual machine features that must be present in each implementation of a J2ME environment.
Cooked
Refers to ROMs which have been modified and optimised by users to offer better performance than a carrier ROM
CustomRUU
CustomRUU is an RUU (Rom Upgrade Utility) which has support for ALL SPL versions including HardSPL and SSPL.
Dalvik (cache)
Dalvik cache is a program cache area for the program dalvik. Dalvik is a java based virtual machine that is the bases for running your programs (the ones that have the .apk extension). In order to make access times faster (because there's not JIT (just in time) compiler installed by default), the dalvik-cache is the result of dalvik doing a optimization of the running program.
De-Odex
Android uses a a java based virtual machine as the bases for running programs. This virtual machine is called Dalvik. A .dex file contains the cache used by the Dalvik VM (called Dalvik-cache) for a program and is stored inside the .apk. A .odex file is an optimized version of the .dex file which gets stored next to the .apk as opposed to inside the .apk. This process is done by default to system apps. Deodexing is the process of converting the .odex files back into .dex to be stored inside the .apk so that things can be more easily modified. So a deodexed rom is one that has been through the deodexing process. Deodex can just as easily be called Unodex or any other pre-fix you wish to use.
EDGE - Enhanced Data GSM Environment
A 2.5G technology that enhances GSM. EDGE increases transmission speeds on GSM networks and enables the transmission of large amounts of data at 384Kbps. With EDGE, mobile operators can deliver multimedia and other broadband applications to mobile phones.
EPOC
EPOC is an operating system developed by Symbian for small, portable computer-telephones with wireless access to phone and other information services. EPOC is based on an earlier operating system from Psion, the first major manufacturer of personal digital assistants (PDAs). The term is no longer in use and is now referred to as Symbian OS.
Ext_ROM or ExtROM
The Ext_ROM (or Extended Rom) is a dedicated part of the ROM memory that is (by default) hidden to the user. This area typically includes cab files that are loaded upon Hard Reset. Also, if the author of a ROM wishes, the flashing process can preserve the Ext_Rom. This space is frequently used by carriers, or others creating ROMs, to store cabs that load settings onto the phone.
Firmware
This is a piece of software that is stored in a device to make it function. It is, unlike ordinary software, usually semi-permanent and resides in a non-volatile storage area which is unaffected by "hard resetting" a device. The term usually refers to low-level code that controls individual hardware components such as a radio rom.
Flash
Term meaning to write something (usually a ROM image) to a non-volatile chip. The term originates from original chip writers (EPROM blowers) which used to write to a chip by fusing tiny areas in the chip making individual links either short circuit or open circuit.
GPRS - General Packet Radio Service
GPRS is a radio technology for GSM networks that adds packet-switching protocols. As a 2.5G technology, GPRS enables high-speed wireless Internet and other data communications. GPRS networks can deliver SMS, MMS, email, games and WAP applications.
GPS
This stands for Global Positioning System. It is technology whereby your device communicates with satellites in orbit around the planet to determine your location within an error margin of a few meters.
GSM - Global System for Mobile communications
GSM, a 2G technology, is the de facto European standard for digital cellular telephone service, and it is also available in the Americas. GSM is the most widely used of the three digital wireless telephone technologies (TDMA, GSM and CDMA), and it supports voice, data, text messaging and cross-border roaming. The SIM (Subscriber Identification Module), a removable plastic card that contains a users data, is an essential element in a GSM network.
GSM operates in multiple frequency bands, GSM 900, GSM 1800, GSM 1900. When GSM is working on a radio frequency of 1800 MHz, it is sometimes referred to as DCS 1800, GSM1800 or PCN.
H.323
H.323 is the standard for interoperability in audio, video, and data transmissions, as well as Internet phone and Voice over IP. The standard addresses call control and management for point-to-point and multipoint conferences, as well as gateway administration of media traffic, bandwidth, and user participation.
HardSPL
This modified bootloader allows a much safer flashing process to take place since it reduces the chance of permenently bricking your HTC based device. It also removes the need to CID Unlock the device since it ALWAYS reports SuperCID when flashing.
Hard Reset
Similar to a soft reset, by performing a hard reset you completely wipe your device and restore it to the position it was in when you first turned the device on after it was purchased or after a new ROM is flashed.
HDML - Handheld Device Markup Language
Handheld Device Markup Language is used to format content for Web-enabled mobile phones. HDML allows Internet access from wireless devices and is derived from HTML. Openwave created this proprietary language, and it can only be viewed on mobile phones that use Openwave browsers.
HDML was created before a WAP standard was defined. It uses Openwave's Handheld Device Transport Protocol (HDTP) instead of WAP. HDTP - Handheld Device Transport Protocol.
This protocol is optimized for HDML. It presents the HDML to the HDML interpreter in an appropriate format.
Heimdall
is a cross-platform open-source tool suite used to flash firmware (aka ROMs) onto Samsung Galaxy S device
IDEN
A specialized mobile radio network technology that combines two-way radio, telephone, text messaging and data transmission into one network.
IPL
Initial program load - usually paired with Secondary Program Load (SPL), is the boot loader of your phone, much like the BIOS is the boot loader for your PC. Note: IPL/SPL are highly hardware dependent, flashing the wrong IPL/SPL is much more serious than a flashing the wrong ROM. It may be noted that, sometimes a ROM package also contains the IPL/SPL which will be flashed into your phone. Hence be extra careful what you are flashing.
J2ME - Java 2 Micro Edition.
Java 2 Platform, Micro Edition (J2ME) is the edition of the Java platform that is targeted at small, standalone or connectable consumer and embedded devices, such as cellular phones and personal digital assistants (PDAs). The J2ME technology consists of a virtual machine and a set of APIs suitable for tailored runtime environments for these devices. The J2ME technology has two primary kinds of components--configurations and profiles.
Java
Industry standard object-oriented language and virtual machine, invented by Sun Microsystems and formally released in 1996. Some phones support downloading of Java applications over the WAP connection. Sun's Java specifications include many Java APIs and platforms, including the JavaPhone API and PersonalJava platform.
Kang
The process of creating a code based of someone else's code or reapplying code that someone else created into your own code (e.g. git cherry-pick)
Kernel
The central or core software component of most operating systems. Its responsibilities include managing the system's resources (the communication between hardware and software components) and can provide the lowest-level abstraction layer for resources (especially memory, processors, and I/O devices).
Messaging
SMS (Short Message Service) is a feature available with some wireless phones that allows users to send and/or receive short alphanumeric messages.
Picture Messaging allows users to send and receive picture messages along with text. Users can choose from several preset and/or received pictures stored in their phones. Some phones also contain a picture editor.
Chat Messaging lets users "talk" using SMS messages.
MMS (Multimedia Messaging Service) is a new standard that is being defined for use in advanced wireless terminals. The service allows for non-real-time transmission of various kinds of multimedia content, such as images, audio, and video clips.
MexE - Mobile Station Application Execution Environment.
Mobile Station Application Execution Environment is a framework to ensure a predictable environment for third-party applications in GSM or UMTS handsets. MExE does this by defining different technology requirements called "classmarks." MExE classmark 1 is based on WAP, classmark 2 on PersonalJava and JavaPhone, and classmark 3 on J2ME CLDC and MIDP. Other classmarks may be defined in the future. MExE specifies additional requirements for all classmarks, for instance a security environment, capability and content negotiation, a user profile, user interface personalization, management of services and virtual home environment. A handset can support multiple classmarks.
Microbrowser
Also called a mini-browser. Software built into a wireless device that allows users to access and display specially formatted Internet content, such as stock reports, news, and sports scores using a handset device.
Mobile Information Device Profile (MIDP)
Set of Java APIs that is generally implemented on the Connected Limited Device Configuration (CLDC). It provides a basic J2ME application runtime environment targeted at mobile information devices, such as mobile phones and two-way pagers. The MIDP specification addresses issues such as user interface, persistent storage, networking, and application model.
Nandroid or Nandroid Backup:
A file typically created in the custom recovery program, such as 4EXT Recovery, that is a carbon copy of whatever state your phone is in. The file is typically stored on the SD card for later use in case something should go wrong in a ROM or Update, or a Boot Loop occurs
.NET Compact Framework
The .NET Compact framework is a smaller version of the .NET Common Language Runtime, optimized for the deployment of mobile applications running on resource-constrained devices such as PDAs. .NET CF supports only devices running Microsoft operating systems-specifically, Windows CE 3.0 (used in Pocket PC 2000 and Pocket PC 2002 platforms).
OBEX - Object Exchange
Object Exchange is a set of protocols allowing objects such as vCard contact information and vCalendar schedule entries to be exchanged using either IrDA or Bluetooth. Symbian OS implements IrDA for exchange of vCards, for example between a Nokia 9210 Communicator and an Ericsson R380 Smartphone, and vCalendar.
OS
Operating System - the platform software for your phone, much like Windows 7 for your PC. Upgrading the OS is like, in PC terms upgrading from Windows Vista to Windows 7.
OC - OverClocking
Overclocking is the process of running a computer component at a higher clock rate (more clock cycles per second) than it was designed for or was specified by the manufacturer
PAN - Personal Area Network
Allows devices to work together and share information and services. Using technologies such as Bluetooth, Personal Area Networks can be created in public places, in the home, in the office, in a car. This network enables everyday devices to communicate wirelessly. For example, a PAN allows users the ability to wirelessly synchronize with a desktop device to access e-mail or the Internet.
Protocol
Similar to `Radio`. Both terms refer to the radio protocol stack, which is the software which handles communications with the mobile network.
QoS - Quality of Service
Quality of Service is a measure of network performance that reflects the network's transmission quality and service availability. QoS can come in the form of traffic policy in which the transmission rates are limited, thereby guaranteeing a certain amount of bandwidth will be available to applications. Or QoS may take the form of traffic shaping, which are techniques to reserve bandwidth for applications but not guarantee its availability.
Radio
The radio stack is responsible for the phone functionality of the device. This includes GPRS, GSM, UMTS, and GPS operations. The version you use depends on who your carrier is as users have reported versions working better on one carrier than the other.
ROM - Read Only Memory
The ROM holds the Operating system and other components such as the bluetooth and wifi stacks. The ROM is accompanied by the Radio, Ext_ROM, SPL and IPL. Carriers such as T-mobile or Vodaphone taylor the ROM to their specifications and version numbers do not carry the same meaning across different carriers. IF the carrier you use supports the device well they will usually release regular ROM updates.
Root
Common word associated with giving a user "super user" access to their phones programming and other various asspects that would normaly not be possible.
RTM
Release to manufacturing or Ready to market.
RUU
The RUU (Rom Upgrade Utility) is the program which runs on the pc when a new ROM is flashed.
Sense
HTC Sense is a user interface, based on the TouchFlo 3D user interface, developed by HTC for mobile devices running Android and Windows Mobile. HTC Sense is a “design experience, an architecture that is all about how people use the device, making their content personal to how they use the device.” However, HTC has confused the issue by calling HTC Sense a user interface in press releases about the launch of the HTC Hero in India. Announced June 24, 2009, the first phone running Android to feature HTC Sense was the HTC Hero, and the first Windows Phone to feature HTC Sense (an updated TouchFlo) was the HTC HD2, announced October 6, 2009.
SIM - Subscriber Identity Module
Cellular systems using GSM technology employ SIM modules to store user provisioning information. Non-volitale storage for contact information is also available on these modules. This is also commonly used in the form `SIM unlock`. Some phones are locked to the specific telco from which you purchase your phone, eg you can't use a locked O2 phone using a Vodaphone SIM/smart card. To use SIM card from other telco, you need to SIM unlock your phone. Note: In general, the phrase 'unlock your phone' usually refers to SIM-unlock, not CID unlock.
SIM Unlock
Use any carrier's SIM in the device.
SIP - Session Initiation Protocol
SIP is the real-time communication protocol for Voice over IP (VoIP), and it has been expanded to support video and instant-messaging applications. SIP performs basic call-control tasks, such as session set up and tear down and signaling for features such as hold, caller ID and call transferring. Its functions are similar to Signaling System 7 (SS7) in standard telephony and H.323 or Media Gateway Control Protocol in IP telephony.
With SIP, most of the intelligence for call setup and features resides on the SIP device or user agent, such as an IP phone or a PC with voice or instant-messaging software. In contrast, traditional telephony or H.323-based telephony uses a model of intelligent, centralized phone switches with dumb phones.
SOAP - Simple Object Access Protocol
SOAP is a way for a program running in one kind of operating system to communicate with a program in the same or another kind of an operating system using HTTP and XML.
Soft Reset
Soft resetting the device will lose all the data currently in RAM and any unsaved information, much like pressing the reset button on your pc. A soft reset is the first thing to try if your device has stopped responding.
SPL
Secondary Program Loader. Refer to `IPL` or `Bootloader` for further information.
SU
"Super user", or root permissions
SuperCID
By CID unlocking your device the value of the CID is changed to 'SuperCID'. This allows the flashing of ANY ROM to the device regardless of the carrier and also unlocks the read/write capability of the Ext_ROM.
UMTS - Universal Mobile Telecommunications System
The 3G mobile telephone standard in Europe, standardized by ETSI. It supports a theoretical data throughput of up to 2 Mbps. Initial trials began in 2001, and it should be rolled out in most of the world by 2005.
UV - UnderVolting
Undervolting is the process of lowering the voltage supplied to the processor in order to achieve lower temperatures and/or saving battery
VoIP - Voice Over IP
VoIP is a set of technologies that enables voice to be sent over a packet network. While few corporations use VoIP today, its usage for messaging is expected to explode in the coming two years.
Users can communicate using VoIP as easily as they do with today's PBXes and public phone network. By leveraging the existing data network, companies can save significant amounts of money by using VoIP for toll-bypass, which is particularly important for multinational corporations. VoIP will also speed the adoption of unified messaging by transmitting voice, fax and e-mail messages. VoIP is also known as IP telephony.
Over the next several years, companies will deploy VoIP in conjunction with 802.11 wireless LANs, enabling workers to have WLAN-based mobile phones when in the office.
VoWIP - Voice over Wireless IP
Combining VoIP with 802.11 wireless LANs to create a wireless telephone system for offices is an emerging market segment. VoWIP enables businesses to leverage their wireless LANs to add voice communications, enabling companies to deploy and manage voice and data over a single wireless backbone.
From a network perspective, VoWIP applications require some reservation of bandwidth to support the real-time nature of voice. Proprietary standards like Spectralink Voice Priority (SVP) are today's solution; however, the IEEE is developing the 802.11e standard for quality of service as a long-term solution.
NOTE:
Thread is under construction, so please accept my appologies regarding not finished/updated posts or typo's
No claims can be made regarding content that I share. Consider this thread as "my private reference"
Kernel: "abbreviations"
A kernel is a layer of code that allows the OS and applications to interface with your phone's hardware. The degree in which you can access your phone's hardware features depends on the quality of code in the kernel. The homebrew (rooting) community for HTC has made several kernel code improvements that give us additional features from our hardware that the stock kernel does not. When you flash a custom ROM, you automatically get a kernel. But you can also flash a standalone kernel on top of the existing one, effectively overwriting it.
A quick and brief overview of some kernel "abbreviations" I've found ..
OC 1.6 - Over Clock max 1,6GHz
OC+1.9 - Over Clock max 1,9GHz
2WCR - Two Way Call Recording support - now you can record incoming and outgoing calls (takes the audio direct from the chipset line in/out)
NCR - No Call Recording support
BFS - Brain **** Scheduler is a task scheduler - major performance increase over stock CFS (Completely Fair Scheduler) -> is not recommended for ROM with Sense
VIO - V(r) Input/Output scheduler - controls data input and output (memory card, disk, etc..) - stock kernel has CFQ
SLQB - a low level memory allocator/manager
MIUI - kernel for MIUI ROM
CFS - Completely Fair Scheduler
CIFS - Common Internet File System (is a virtual file system for Linux to allow access to servers and storage appliances compliant with the SNIA CIFS Specification)
TUN - VPN support
VR - I/O scheduler (better than NOOP)
NOOP - The NOOP scheduler is the simplest I/O scheduler for the Linux kernel.
VDD - Voltage Drain Drain (refers to the positive operating voltage of a field effect semiconductor device.)
NLS - National Language Support
Governors:
CPU governors control exactly how the CPU scales between your "max" and "min" set frequencies.
- ondemand -> Available in most kernels, and the default governor in most kernels.
When the CPU load reaches a certain point, ondemand will rapidly scale the CPU up to meet demand, then gradually scale the CPU down when it isn't needed.
- conservative -> Available in some kernels. It is similar to the ondemand governor, but will scale the CPU up more gradually to better fit demand.
Conservative provides a less responsive experience than ondemand, but can save battery.
- performance -> Available in most kernels. It will keep the CPU running at the "max" set value at all times.
This is a bit more efficient than simply setting "max" and "min" to the same value and using ondemand because the system will not waste resources scanning for the CPU load. This governor is recommended for stable benchmarking.
- powersave -> Available in some kernels. It will keep the CPU running at the "min" set value at all times.
- userspace -> This lets programs that runs on the OS decide the CPU frequency.
- interactive -> The 'interactive' governor has a different approach. Instead of sampling the cpu at a specified rate, the governor will scale the cpu frequency up when coming out of idle.
When the cpu comes out of idle, a timer is configured to fire within 1-2 ticks. If the cpu is 100% busy from exiting idle to when the timer fires then we assume the cpu is underpowered and ramp to MAX speed.
If the cpu was not 100% busy, then the governor evaluates the cpu load over the last 'min_sample_rate' (default 50000 uS) to determine the cpu speed to ramp down to.
- smartass -> Is an improved version of interactive governor (Best explanation i've found paraphrases to: based on interactive, but better.)
(smartass is a "double" governor (near interactive - awake mode, near conservative (but not the same) - sleep mode), so when you use it in sleep mode, actually you use only a "half" of it.
- smoothass -> (improved smartass)
- brazilianwax -> Very agresive version of smartass
- interactiveX -> Tweaked Interactive governor by Imoseyon by adding more features like suspend/wake profile
- ondemandX -> Tweaked and ported from 2.6.38 base Ondemand governor by Imoseyon by adding more features like suspend/wake profile
It's got its own sleep profile built in, so it doesn't play well with the OC daemon ..!
- smartassV2 -> smartassV2 is generally based on the implementation of interactive with some major changes and the addition of a built in sleep profile (behaves a bit differently when screen is off vs. on).
The smartassV2 improves the very naive scheme which the first smartass had.
- lagfree -> lag free, but not that battery friendly as ondemand
Note: as far as I could find it, smartass2 = smoothass. Original it was called smartass2, but the name has been changed into smoothass.
* wake_min_freq = setting -> minimal frequency for device while it's awake
* wake_max_freq = setting -> maximal frequency for device while it's awake
* sleep_min_freq = setting -> minimal frequency for device while it's sleeping
* sleep_max_freq = setting -> maximal frequency for device while it's sleeping
* wake_governor = governor for device while it's awake
* sleep_governor = governor for device while it's sleeping
Radio: Preferred Network types and info
GSM => GSM(2G), GPRS(2.5G), EDGE(2.75G), UMTS(3G), WCDMA(3G), HSDPA(3.5G/3G+) HSUPA(3.75G) {Cell Carrier examples: AT&T and T-Mobile}
CDMA => CDMA(2/3G) EV-DO(3G) WiMax(3/4G) {Cell Carrier examples: Verizon and Sprint}
HSPA+ Evolved High Speed Packet Access (84 Mbit/s in the downlink and 22 Mbit/s in the uplink)
H: HSDPA High Speed Downlink Packet Access (Category 8 - 7.2 / Category 10 - 14,0 Mbit/s in the downlink)
H: HSUPA High Speed Uplink Packet Access (Category 6 - 5.76 Mbit/s in the uplink)
3G: UMTS Universal Mobile Telecommunications System (384 kbit/s -> (max 2 Mbit)
E: EDGE Enhanced Data Rates for GSM Evolution (384 kbit/s)
G: GPRS General Packet Radio Service (52 kbit/s)
GSM Global System for Mobile Communications (14.4 kbit/s)
Remark:
The ROM has a file called "build.prop" with various important settings in it.
One of these settings is "ro.ril.hsxpa=2", this means you (might) have/use a HSDPA/HSUPA network (also called "HSPA") with high speed downloads and uploads, and this setting gives you the "U" in the radio name found in "Settings - About phone - Software information - More - (Baseband version)"
Code:
ro.ril.hsxpa indicates hsxpa support of the target network:
#
# Network parameters
#
#ro.ril.hsxpa : inidcates hsxpa support of target network :
# 0 - UMTS r99
# 1 - HSDPA
# 2 - HSDPA/HSUPA
#
#ro.ril.gprsclass : inidcates GPRS class of target network :
# Class 2 : 3 slots : 8 - 12 kbps upload / 16 - 24 kbps download
# Class 4 : 4 slots : 8 - 12 kbps upload / 24 - 36 kbps download
# Class 6 : 4 slots : 24 - 36 kbps upload / 24 - 36 kbps download
# Class 8 : 5 slots : 8 - 12 kbps upload / 32 - 40 kbps download
# Class 10 : 5 slots : 16 - 24 kbps upload / 32 - 48 kbps download
# Class 12 : 5 slots : 32 - 48 kbps upload / 32 - 48 kbps download
#
#ro.ril.hsdpa.category :
# Cat 1 = 1.2 Mbit/s
# Cat 2 = 1.2 Mbit/s
# Cat 3 = 1.8 Mbit/s
# Cat 4 = 1.8 Mbit/s
# Cat 5 = 3.6 Mbit/s
# Cat 6 = 3.6 Mbit/s
# Cat 7 = 7.2 Mbit/s
# Cat 8 = 7.2 Mbit/s
# Cat 9 = 10.1 Mbit/s
# Cat 10 = 14.0 Mbit/s
# Cat 11 = 0.9 Mbit/s
# Cat 12 = 1.8 Mbit/s
# Cat 13 = 17.6 Mbit/s
# Cat 14 = 21.1 Mbit/s
# Cat 15 = 23.4 Mbit/s
# Cat 16 = 27.9 Mbit/s
# Cat 19 = 35.3 Mbit/s
# Cat 20 = 42.2 Mbit/s
# Cat 21 = 23.4 Mbit/s
# Cat 22 = 27.9 Mbit/s
# Cat 23 = 35.3 Mbit/s
# Cat 24 = 42.2 Mbit/s
# Cat 25 = 46.8 Mbit/s
# Cat 26 = 55.9 Mbit/s
# Cat 27 = 70.6 Mbit/s
# Cat 28 = 84.4 Mbit/s
#
#ro.ril.hsupa.category :
# Cat 1 = 0.73 Mbit/s
# Cat 2 = 1.46 Mbit/s
# Cat 3 = 1.46 Mbit/s
# Cat 4 = 2.93 Mbit/s
# Cat 5 = 2.00 Mbit/s
# Cat 6 = 5.76 Mbit/s
# Cat 7 = 11.5 Mbit/s
#
#Not speed related, but still nice to have :
#ro.ril.enable.3g.prefix : adds the 3G prefix to the operator name.
# ro.ril.enable.dtm : Only set this to 1 if your network allows simultaneous
# transfer of Circuit switched (CS) voice and Packet switched
# (PS) data over the same radio channel (ARFCN).
Preferred Network types:
WCDMA preferred - Automatically switches between G/E/3G/H based on the best/strongest signal available and is supported by all providers.
Has high battery usage since it constantly scans the network for the strongest signal to switch.
GSM only - Only uses G/E and never switches to 3G/H. Should have minimal battery usage.
(there is a problem with GSM only on some older networks... so if data is used, you can miss calls, thus GSM auto (PRL) is the safest setting)
WCDMA only - The GSM phone is capable of using only 3G data communication. When the 3G signal is too low you get nothing at all.
Only uses HSDPA and will not switch to G/E/3G even if the HSPDA signal is too low. Use this only if you use your phone in a area with good coverage. Should have moderate battery usage.
GSM auto (PRL) - Automatically switches between G/E/3G/H based on the PRL (Preferred Roaming List) for a provider on your phone.
Not supported by all providers and may not be supported in certain regions. Should have moderate battery usage since it uses a predefined list to switch.
CDMA auto (PRL) - The CDMA phone is capable of using both 2G and 3G data communication and when signal strength is low 2G is favored more.
CDMA only - The CDMA phone is capable of using only 2G data communication. When the 2G signal is too low you get nothing at all.
EvDo only - The CDMA phone is capable of using only 3G data communication. When the 3G signal is too low you get nothing at all.
GSM/CDMA auto (PRL) - Some phones are equipped with both GSM and CDMA capabilities. This setting appears to just have the phone attempt to stay connected to the data communication type that works the best.
Unknown - If none of the above fit or the phone is acting weird as far as connecting to the carrier, you will see your preferred network type is set to this
General NOTE:
If not known how to get a preferred network type, dial *#*#4636#*#* , this brings you in the "Testing" menu, select "Phone information" and scroll down to "Set preferred network type: "
Always be careful with switching to "PRL" as device issues might occur if "PRL" is not supported by your network provider !!
RUU (ROM Upgrade Utility):
A) RUU Update - Flashing Android RUU Update Using HBoot
- First you need the RUU.exe that you intend to install.
- Run the RUU as Administrator.
- Tick the 'I understand the caution indicated above...' box, and click next.
- At this point do not go any further!
- Navigate to C:\Users\xxxxx\AppData\Local\Temp (xxxxx is your user name , and ... AppData is a hidden folder)
- You should see one or two folders like this example: {E328FA5C-81C2-4B70-96AE-D5418A9A5B75}
- Go into the folder with "dotnetinstaller.exe".
- Open the next folder. (like this example: {50F2F878-636A-496F-A7CB-544C067E0C4B}
- Copy "rom.zip" into another folder (outside of temp).
- At this point just Cancel and quit the ROM Update Utility.
- Rename the "rom.zip" to "PD98IMG.zip" and put it on to the root directory of your MicroSD card in your phone.
- Shut down the phone.
- Press the Power button + Volume down button at the same time and hold them untill you get to HBOOT (white screen with skateboarding android).
- Wait for the HBOOT to parse the zip file.
- Follow the on-screen instructions and boot into newly flashed device.
B) RUU Update - Install through PC
Download and install the latest HTC Sync and restart your computer.
- Download and run the 1.15.405.1 Test RUU as Administrator. (This one is known to find the Android DHD)
- Get to the "1. Connect the Smartphone to the USB Cable" step. (but no further !!!!)
- Go to the C:\Users\xxxxx\AppData\Local\Temp directory, and find the folder with dotnetinstaller.exe and inside the next folder find the rom.zip
- Delete this "rom.zip" (which is the 1.15 version !!) and replace it with the "rom.zip" copied out earlier!!! -> See A) RUU Update - Flashing Android RUU Update Using HBoot !!!
Back to the RUU installer ...
- Now click through the next buttons.
- The RUU Utility should now be set to update. You will see the version number of the rom at the final step.
- Click update...
Android Partitions:
Android uses several partitions to organize files and folders on the device. Each of these partitions has a distinct role in the functionality of the device.
Standard internal memory partitions on Android phones and tablets:
/boot
/system
/recovery
/data
/cache
/misc
Hardware specific partitions:
(They are tied to the hardware of the phone, but the kernel may have code allowing Android to interact with said hardware.)
/radio
/wimax
SD card partitions:
/sdcard
/sd-ext
Note that only /sdcard is found in all Android devices and the rest are present only in select devices.
Purpose and contents of each of these partitions:
/boot
This is the partition that enables the phone to boot, as the name suggests. It includes the bootloader and the kernel. Without this partition, the device will simply not be able to boot.
Wiping this partition from recovery should only be done if absolutely required and once done, the device must NOT be rebooted before installing a new one, which can be done by installing a ROM that includes a /boot partition.
/system
This partition basically contains the entire operating system, other than the kernel and the bootloader. This includes the Android user interface as well as all the system applications that come pre-installed on the device. (Sense, boot animation, busybox, etc)
Wiping this partition will remove Android from the device without rendering it unbootable, and you will still be able to put the phone into recovery or bootloader mode to install a new ROM.
/recovery
The recovery partition can be considered as an alternative boot partition that lets you boot the device into a recovery console for performing advanced recovery and maintenance operations on it.
/data
Also called userdata, the data partition contains the user’s data – this is where your contacts, messages, settings and apps that you have installed go. Wiping this partition essentially performs a factory reset on your device, restoring it to the way it was when you first booted it, or the way it was after the last official or custom ROM installation. When you perform a wipe data/factory reset from recovery, it is this partition that you are wiping.
/cache
This is the partition where Android stores frequently accessed data and app components. Wiping the cache doesn’t effect your personal data but simply gets rid of the existing data there, which gets automatically rebuilt as you continue using the device.
/misc
This partition contains miscellaneous system settings in form of on/off switches. These settings may include CID (Carrier or Region ID), USB configuration and certain hardware settings etc. This is an important partition and if it is corrupt or missing, several of the device’s features will will not function normally.
/radio
The phone's radio firmware, controls cellular, data, GPS, bluetooth.
/wimax
Firmware for Sprint's flavor of 4G, WiMax.
/sdcard
This is not a partition on the internal memory of the device but rather the SD card. In terms of usage, this is your storage space to use as you see fit, to store your media, documents, ROMs etc. on it. Wiping it is perfectly safe as long as you backup all the data you require from it, to your computer first. Though several user-installed apps save their data and settings on the SD card and wiping this partition will make you lose all that data.
On devices with both an internal and an external SD card – devices like the Samsung Galaxy S and several tablets – the /sdcard partition is always used to refer to the internal SD card. For the external SD card – if present – an alternative partition is used, which differs from device to device. In case of Samsung Galaxy S series devices, it is /sdcard/sd while in many other devices, it is /sdcard2. Unlike /sdcard, no system or app data whatsoever is stored automatically on this external SD card and everything present on it has been added there by the user. You can safely wipe it after backing up any data from it that you need to save.
/sd-ext
This is not a standard Android partition. It is basically an additional partition on your SD card that acts as the /data partition when used with certain ROMs that have special features called APP2SD+ or data2ext enabled. It is especially useful on devices with little internal memory allotted to the /data partition. Thus, users who want to install more programs than the internal memory allows can make this partition and use it with a custom ROM that supports this feature, to get additional storage for installing their apps. Wiping this partition is essentially the same as wiping the /data partition – you lose your contacts, SMS, market apps and settings.
Android: Anatomy and Physiology
Google IO's "Android: Anatomy and Physiology" .pdf​
CID: Carrier ID (+ some codes)
CID lock (aka vendor lock): Carrier Id - put on your device by the manufacturer to prevent installation of a ROM not released by them. Commonly used in the form `CID-Unlocking`. If you purchase your phone (example) from Vodafone (Vodafone is the ‘carrier’), your phone will only accept Vodafone ROMs (the carrier’s ROMs). If you want to flash ROMs from other carrier, you’ll need to CID-unlock your phone, so that your phone will accept other ROMs. All bootloaders (apart from HardSPL and SSPL) will only allow a ROM with the correct CID to be flashed onto the device. A device which has been CID unlocked will have ‘SuperCID’ which allows ANY ROM to be loaded onto the device, SuperCID also unlocks the Ext_ROM and allows it to be mounted. Note: In general, the phrase ‘unlock your phone’ usually refers to SIM-unlock, not CID unlock.
Code:
SuperCID 11111111
Asia-HK-CHT HTC__622
ATT CWS__001
BM BM___001
Bouygues-Telecom BOUYG201
Brightstar-PTB BSTAR502
Brightstar-SPA BSTAR301
Chunghwa-Taiwan CHT__601
CT HTCCN702
CU HTCCN703
DCM DOCOM801
DOPOD DOPOD701
Era T-MOB009
Fastweb-IT FASTW401
GOOGLE GOOGL001
H3G-DAN H3G__F05
H3G-Italy H3G__402
H3G-ROI H3G__003
H3G-SWE H3G__G04
H3G-UK H3G__001
HTC-Asia-SEA HTC__037
HTC-Asia-SEA-WWE HTC__044
HTC-Australia HTC__023
HTC-BE HTC__E41
HTC-Czech HTC__C24
HTC-Denmark HTC__F08
HTC-Dutch HTC__E11
HTC-EastEurope HTC__032
HTC-ELL HTC__N34
HTC-FRA HTC__203
HTC-FRA-Bouygues HTC__247
HTC-GCC HTC__J15
HTC-GER HTC__102
HTC-India HTC__038
HTC-ITA HTC__405
HTC-Nor HTC__Y13
HTC-Norway HTC__H10
HTC-Poland HTC__B25
HTC-PTG HTC__506
HTC-Russia HTC__A07
HTC-Singapore ????????
HTC-SPA HTC__304
HTC-Sweden HTC__G09
HTC-Turkey HTC__M27
HTC-WWE HTC__001
Hutch-Australia HUTCH001
O2-DE O2___102
O2-UK O2___001
Open-Channel HTCCN701
Optus-Australia OPTUS001
ORANGE-AT ORANG113
ORANGE-BE ORANG012
ORANGE-CH-FRA ORANG203
ORANGE-CH-GER ORANG104
ORANGE-ES ORANG309
ORANGE-French ORANG202
ORANGE-PL ORANGB10
ORANGE-PO ORANG008
ORANGE-SK ORANG006
ORANGE-UK ORANG001
Rogers ROGER001
SMC-Voda-HK SMCVD001
StarHub-Singapore ????????
TELEF-Spain TELEF301
Telstra TELST001
TELUS TELUS001
TIM-Italy TIM__401
TMA T-MOB102
TMCZ T-MOB004
TMD T-MOB101
TMH T-MOB007
TMHR T-MOB006
TMMK T-MOBL11
TMNL T-MOB003
TMSK T-MOB008
TMUK T-MOB005
TMUS T-MOB010
TWM-TW HTC__621
VIRGIN-UK VIRGI001
VODA-Africa-South HTC__016
VODA-Australia VODAP021
VODA-Germany VODAP102
VODA-Greece VODAP006
VODA-Ireland VODAP019
VODA-Italy VODAP405
VODA-Mobilkom VODAP120
VODA-Netherland VODAPE17
VODA-New-Zealand VODAP022
VODA-Portugal VODAPD18
VODA-Proximus VODAP024
VODA-SA VODAP026
VODA-SFR VODAP203
VODA-Spain VODAP304
VODA-Swisscom-DE VODAP110
VODA-Swisscom-FR VODAP212
VODA-Swisscom-IT VODAP416
VODA-Swisscom-WWE VODAP015
VODA-TR VODAPM27
VODA-UK VODAP001
reserved for future usage 8
reserved for future usage 9
reserved for future usage 10
No questions, No comments Please
This is a refference only thread.
Thanks

Official Atmel Touchscreen Driver on GitHub

Hello XDA developers,
As you know, Atmel maXTouch touchscreen controllers are used in a large percentage of Android phones and tablets out there.
I wanted to let you know that the latest patches for the official Atmel maXTouch Linux driver are available on GitHub. This will allow you to get the latest up to date changes before they make it into the mainline kernel.
On GitHub, search for user "atmel-maxtouch"
Happy hacking
Best regards,
Sherif
Product Marketing Manager - Atmel
thank u for ur valuable information, well can u pls post what are the latest changes and updates. that will help the devs much more.
Hi showlyshah,
The latest updates include the following:
- Support for Atmel's mXT224E, mXT768E, and mXT540E chipsets
- Support for both protocol A and protocol B reporting
- Support for kernel 3.0 in addition to kernel 2.6.35
More details are available on GitHub in the release notes.
Regards,
Sherif
Is https://github.com/atmel-maxtouch the correct URL?
Unfortunately, if it is, the drivers in this repository are structured completely differently from the ones included in many vendor source drops, and unfortunately this causes great negative impact on their usefulness.
See, for example:
https://github.com/Entropy512/linux_kernel_sgh-i777/tree/master/drivers/input/touchscreen - This includes the mxt224 drivers as implemented by Samsung on their device (Galaxy S II)
https://github.com/atmel-maxtouch/linux/tree/master/drivers/input/touchscreen - mxt224_u1.c is completely missing, indicating that the driver here is incomplete or structured very differently from the one used by Samsung, making it very difficult to use. Also, the few files there that do pertain to Atmel MXT such as atmel_mxt_ts.c in there appear identical to the mainline Linux repo.
Entropy512 said:
Is https://github.com/atmel-maxtouch the correct URL?
Unfortunately, if it is, the drivers in this repository are structured completely differently from the ones included in many vendor source drops, and unfortunately this causes great negative impact on their usefulness.
Click to expand...
Click to collapse
But it's not Atmel who are to blame. Atmel are doing a great job working directly with upstream so that all the users of mainline linux can benefit. I have been using the drivers from the vanilla kernel for quite a while on both my tegra tablet (with chromium kernel) and galaxy s2, and they work just fine, supporting multitouch in xorg in ubuntu.
The problem is OEMs who do crap like hardcoding/hacking drivers instead of using platform data, use machine-specific hacks, custom interfaces and a lot of copy-paste. That's the essence of modern consumer electronics business - no one cares for quality, only about releasing early.
Entropy512 said:
Unfortunately, if it is, the drivers in this repository are structured completely differently from the ones included in many vendor source drops, and unfortunately this causes great negative impact on their usefulness.
See, for example:
linux_kernel_sgh-i777/tree/master/drivers/input/touchscreen - This includes the mxt224 drivers as implemented by Samsung on their device (Galaxy S II)
atmel-maxtouch/linux/tree/master/drivers/input/touchscreen - mxt224_u1.c is completely missing, indicating that the driver here is incomplete or structured very differently from the one used by Samsung, making it very difficult to use. Also, the few files there that do pertain to Atmel MXT such as atmel_mxt_ts.c in there appear identical to the mainline Linux repo.
Click to expand...
Click to collapse
I think you're looking at the unchanged mainline branch: the driver releases are as tags.
The advantage of these drivers is that they are generic for all chips in the maxtouch series. mxt224_u1.c is just a renamed atmel_mxt_ts.c, it contains lots of mxt224 specific configuration and it's unlikely that it will go upstream.
You will also find some user-space tools for extracting config files in a format the kernel driver can load, on the same github account.
Missed the tags, thanks for the additional info!
I'll look into maybe playing with this when ICS time rolls around. It's getting late in the game to do a major driver rework on the Gingerbread kernel I maintain.
sherifhanna said:
Hi showlyshah,
The latest updates include the following:
- Support for Atmel's mXT224E, mXT768E, and mXT540E chipsets
- Support for both protocol A and protocol B reporting
- Support for kernel 3.0 in addition to kernel 2.6.35
More details are available on GitHub in the release notes.
Regards,
Sherif
Click to expand...
Click to collapse
Hi Sherif,
I found the project in Github, but am not able to find the the release notes. Does this driver support the Atmel mXT336S at this time?
Thank you
Hi omaha64,
Support for mXT336S is in progress.
Regards,
Sherif
Question,
I am trying to back-port the 2.6.35.7 driver to 2.6.32. I have mostly succeeded, but probe() fails because of missing platform_data. Digging through the driver code, I found the platform data structure in include/linux/i2c/atmel_mxt_ts.h:
Code:
struct mxt_platform_data {
unsigned long irqflags;
u8(*read_chg) (void);
};
So I assume that in my board file (where my i2c_board_info arrays live) I would want to create a static instance of the above struct and store a pointer to it in the .platform_data member of the i2c_board_info struct, right? But what is the preferred initialization, and what is read_chg supposed to actually do? What's the consequences of just setting it to NULL? (I know it won't crash because the driver checks it before calling it)
Need atmel mxt224 driver for Windows embedded compact 7
sherifhanna said:
Hello XDA developers,
As you know, Atmel maXTouch touchscreen controllers are used in a large percentage of Android phones and tablets out there.
I wanted to let you know that the latest patches for the official Atmel maXTouch Linux driver are available on GitHub. This will allow you to get the latest up to date changes before they make it into the mainline kernel.
On GitHub, search for user "atmel-maxtouch"
Happy hacking
Best regards,
Sherif
Product Marketing Manager - Atmel
Click to expand...
Click to collapse
Hi,
Can you please send me the multi touch driver for ATMEL MXT224(Stream interface PDD layer) for Windows Embedded compact 7.
Thanks in Advance,
Rag
Android Driver Initialization
Hi,
I would like to use MaxTouch mxt224 on a TI am335x-evm board running Android ICS, I'm looking for documentation on how to initialize mxt224 driver from board's configuration file. Can someone help me?
Thanks.
ceskobassman said:
Hi,
I would like to use MaxTouch mxt224 on a TI am335x-evm board running Android ICS, I'm looking for documentation on how to initialize mxt224 driver from board's configuration file. Can someone help me?
Thanks.
Click to expand...
Click to collapse
.
I don't know if there's such documentation to tell you how to initialize. At least a sample exists; look here:
arch/arm/mach-exynos4/mach-nuri.c
The values in "mxt_init_vals" come from Atmel's mxt224 datasheets/manual, so you'll have to find those. I would be surprised if you could not find these by Googling. When I was trying to get the mxt224 to work on an Omap4 board, I had to hack up the driver a little to handle the reset going to the IC, and to handle the /READY line from the IC to the host. Also, for ICS, you will need to have an IDC file in your root file system. Just Google for "Android Input Device Configuration File" (I'm new here and cannot post links yet).
Without that IDC file, Android considers the touch device to be a pointing device (like a mouse).
Good luck
Atmel Mxt768e Driver details
Hi Sherif & All,
Can you please share the atmel MaxTouch mxt768e driver link, I would also request you to share the driver which has the implementation for fIrmware upgrade.
Thanks,
Balaji S
Is there some place I can learn to understand and modify these? I've never done driver development before. Before I waste any time with this, can someone confirm if the input lag in most devices is because of filtering in the driver or because of the Atmel hardware?
KurianOfBorg said:
Is there some place I can learn to understand and modify these? I've never done driver development before. Before I waste any time with this, can someone confirm if the input lag in most devices is because of filtering in the driver or because of the Atmel hardware?
Click to expand...
Click to collapse
I don't think you'll be able to find a single place that describes the driver. Luckily, these drivers are small, the mxt224 is just a single C file. I've looked at the mxt224/mxt336, so the following info is specific to those. Some high level info for you to get started:
* The driver allows the exchange of "objects" between the touch IC and the host processor. To understand what the objects are, you'll need to find the datasheets/manual for the chip you're using. Just try Googling for it. Objects from the host to the IC are typically configuration data, and objects from the IC are probably touch data
* In the case of the mxt224/336, the driver needs the I2C driver
* The driver has a structure that needs to be setup from your board file (example arch/arm/mach-omap2/board-???.c). This structure has some configuration data needed by the driver
* Typically, there's a reset line that has to be pulled high on the board. May need pinmuxing to set the functionality of the pin correctly.
* The IC will also have a /CHG line that will go low when it has data to send to host. You will need to set up pinmuxing for this pin as well.
* The driver has an interrupt routine handling the /CHG line. When a touch/drag happens, objects will be sent to the driver to process. The driver formats the data and forward that up to the user space via the input subsystem.
* If you're doing this for Android, you'll need an .idc file in your root file system. Info: {link removed because I'm new. Just google Android IDC }
* The driver will look for a config file in /system/vendor/firmware, upon starting up
I can't comment too much on the lag you're talking about because I don't know the nature of the lag you're seeing. But I can tell you that the Atmel touch IC needs a "tuning" process where the internal parameters have to be adjusted to operate properly.
If you find more info on this subject, please post it here.
omaha64 said:
I can't comment too much on the lag you're talking about because I don't know the nature of the lag you're seeing. But I can tell you that the Atmel touch IC needs a "tuning" process where the internal parameters have to be adjusted to operate properly.
If you find more info on this subject, please post it here.
Click to expand...
Click to collapse
The "lag" is because the touchscreen does not recognise fast taps. You must press and hold your finger on the screen for several milliseconds before it actually recognises a touch. If it was purely a latency, then even a fast tap would be recognised after a delay. In this case, only a continuous press of a minimum duration is recognised. This makes the screen unresponsive and useless for games that need taps.
Is this something that can be resolved in the driver? I have a feeling this is coded in the firmware blob that gets uploaded to the touchscreen on initialisation.
KurianOfBorg said:
The "lag" is because the touchscreen does not recognise fast taps. You must press and hold your finger on the screen for several milliseconds before it actually recognises a touch. If it was purely a latency, then even a fast tap would be recognised after a delay. In this case, only a continuous press of a minimum duration is recognised. This makes the screen unresponsive and useless for games that need taps.
Is this something that can be resolved in the driver? I have a feeling this is coded in the firmware blob that gets uploaded to the touchscreen on initialisation.
Click to expand...
Click to collapse
I believe that if the issue you're describing is due to the IC's noise rejection algorithm, then you may be able to alter that in the driver. There are params in the chip such as number of valid ADC samples for the touch to be recognized as a true touch, that you can play with. But I don't know if you can change these parameters on the fly, or has to be done at start up. I haven't played with these params. See if you can grab hold of a "Protocol Guide" for the touch controller that you're working with. That shows all the params that you can change. In fact, you may be able to alter some of these params without having to touch the driver; search for mxt_app in github. I've used mxt_app to load configuration and change T9 object before, but that's the extent of my use of it.
Thanks for your help. Time to start reading. Some of the mach-* initialisation params can be changed at runtime such as the Vitalij value.
What is the real world best case input latency of these controllers? Can the Galaxy S2's touchscreen actually be made as good as the iPhone 5 or are the iPhone controllers simply superior?

This msg for all gps hd2's developers

in the begining i would like to give you some information about some smilar devices you may Ignored to prove your ability for programing Libraries..
i think there are deficiency in developing gps Libraries that leads "hd2 android version" needs for internet to get xtra & ntp injection Despite the availability of 2 types of phones are using the same "gps chipset & using android" & i think they are using the same Libraries
i'm talking about (xperia x10) & (huawei s7)
if you download those rooms
http://pomalu2.edisk.eu/stahni/51397/SE_X10_mini_ver.2.1.1.C.0.0.update.zip_74.2MB.html
http://199.91.152.44/qmx61pjxo28g/bri75ccc8c0ne3d/S7_Froyo_2.2.2_Deodexed-joenilan.zip
you will find that it is using
system/lib/libgps.so ---->it is more than 400Kb & i think it is the same on both devices
system/etc/gps.conf ----> it's containing DEBUG_LEVEL = 3
system/etc/01_qcomm_omx.cfg ---> that's depending on system/lib/libqcomm_omx.so
system/etc/loc_parameter.ini --->that's contains informations about usnig gps
system/lib/libloc-rpc.so ---> i don't know what is it but "loc" maybe it means location
system/firmware/com.qualcomm.location.vzw_library.jar
system/etc/permissions/com.qualcomm.location.vzw_library.xml
system/etc/permissions/android.hardware.location.gps.xml
---------------------------------------------------------------------
if you look at this Thread
http://forum.xda-developers.com/showthread.php?t=1458285
you will find that "Motorola Defy" is using "Baud Rate" which is using to accelerate gps on /system/etc/gpsconfig.xml
as i saw on windows 6.5 when i make "Baud Rate" higher it gets signal very quick but i think hd2 limitation is 57600
& i think defy uses /data/location to save information about current postion on many files to restore it after restart without taking time for get signal correction
Bump.

Everything to know about Nokia Care Suite and Flashing Lumias

As there has been little progress made, I thought I could get the ball rolling myself. The purpose of this is to find a way to execute AT commands either on the device or via USB (for internet tethering purposes/general phone modification), and to discover how the bootloader works to devise a method to install a custom rom, or just installing unbranded/different roms for the same device, but different product code.
As a note before starting this, is my first device that's a Nokia, I'm taking this as a shot completely in the dark.
I haven't had any experience with Navifirm nor any of the Nokia utilities used in the past to flash either Symbian or WP7 devices, but I'm quickly learning.
PREREQUISITES:
http://www.seidea.com/2013/08/10/how-to-download-nokia-firmware-with-nokia-care-suite/ (the edited usergroupsconfiguration.cfg file)
http://www.seidea.com/2013/07/14/nokia-care-suite-pst-5-0-2013-27-1-3/ (the latest version of the Nokia Care Suite - 5.0 2013.27.1.3)
The USB drivers need to be installed first. The WinUSB drivers that were included are the only drivers that seem to apply to this device, but I went ahead and installed all the drivers in D:\Program Files (x86)\Nokia\Nokia Care Suite\Drivers
Driver Level Stuff
There are still a few devices shown without a driver. Here's the list
Code:
USB\VID_0421&PID_0660&REV_0100&MI_03 + USB\VID_0421&PID_0660&MI_03
USB\VID_0421&PID_0660&REV_0100&MI_06 + USB\VID_0421&PID_0660&MI_06
USB\VID_0421&PID_0660&REV_0100&MI_02 + USB\VID_0421&PID_0660&MI_02
USB\VID_0421&PID_0660&REV_0100&MI_01 + USB\VID_0421&PID_0660&MI_01
USB\VID_0421&PID_0660&REV_0100&MI_00 + USB\VID_0421&PID_0660&MI_00
I have no idea whats the purpose of these devices and using the driver update inside of Device Manager, it couldn't find anything.
Using my google-fu gave no results either.I could use some help in this department.
The following two are listed as Nokia USB Connectivity (which pst uses to run diagnostics)
Code:
USB\VID_0421&PID_0660&REV_0100&MI_04 + USB\VID_0421&PID_0660&MI_04
USB\VID_0421&PID_0660&REV_0100&MI_05 + USB\VID_0421&PID_0660&MI_05
which have the following files listed: winusb.sys WdfCoInstaller01009.dll and winusbcoinstaller2.dll
EDIT: found what the following devices functions are
ultrashot said:
Test mode devices:
MI_1 = MODEM
MI_2 = NMEA
MI_3 = TRACE
MI_4 = NOKIA_JSONRPC
MI_5 = NOKIA_ISI
MI_6 = DIAG
Click to expand...
Click to collapse
ultrashot said:
[Mi_4] uses a generic remote control protocol used by NCS (All the data shown in NCS is retrieved using JSONRPC). Contains functions like WriteNvData, WriteEfsFile, ReadManufacturerModelName, SetDeviceMode etc. Commands are in json form.
There is an old post with example of command: http://forum.xda-developers.com/showpost.php?p=35256188&postcount=8
Same protocol is supported in MainOS device mode. Some of operations have different names, but in general it is the same.
Click to expand...
Click to collapse
The following is a walk-through for initiating these protocols
ultrashot said:
How to Access a USB Device by Using WinUSB Functions
Click to expand...
Click to collapse
NOTE: The link above is not for the faint of heart. Its a link to a MSDN library. The walk-through assumes that you understand Windows already and have some background in programming.
The following process is the diagnostics TEST mode. It mostly relates to various hardware tests, like color pallets and tone generators.
So far, I have installed it on Win8Pro and started the Product Support Tool For Store. I then switched the product mode from Normal to Test and reboots into something that looks like a bootloader menu.
Since the text is blurry, It says:
NOKIA
ENOSW
RM680 1232.5957./9200.10211
181341 2013/02/28
RF INACTIVE​
When it has reconnected in the phone information tab, this is shown.
Code:
Software Version (Test) RM860 1232.5957.9200.10211 181341 2013/02/28 //alpha_engine/ENO_LASER_F3
Software Version (Normal) 1532.5957.1318.3021
Product Code 059R224
Software Status Up-to-date
NCSd Version (Normal) 1.24
Module Code 0205229
Basic Product Code 059N5M4
PSN Number CGQ790279
Hardware Version 1000
Bluetooth Id ************
Public Id ****************************************
Wlan Mac Address ************ ************ ************ ************
Label App Version (Test) Security LabelSW 4.24.0.55964
Hardware info
===========
MAIN ASIC
Main Asic Version 4.1
POWER ASIC
Pmic Model 1
Pmic Number 0
Pmic Revision 4
NFC
Firmware Version 1.26
Hardware Version 0.3
Model Id 0.1
DISPLAY
Manufacturer 0xFE
Display Type 0x90
Display Consecutive Number 0xBC
Display Horizontal Resolution In Pixels 768
Display Vertical Resolution In Pixels 1280
MAIN CAMERA
Model Id 18497
Revision 0.2
Serial Number 0A0101AE00000000
Manufacture Id 16
Sensor Id 10484100
FRONT CAMERA
Model Id 27184
Revision 3.0
Serial Number 0115323500000000
Manufacture Id 10
Sensor Id 0A6A3003
CAMERA FLASH
Hardware Design 18
Hardware Version 4
Flash Info 1 46
Flash Info 2 17
ACCELEROMETER
Manufacturer KIONIX
Model KXTNK-1000
ALS
Manufacturer AVAGO
Model QPDS-T900
PROXIMITY
Manufacturer AVAGO
Model QPDS-T900
Test Tab
When in this mode, the following options may be performed in NCS.
Self Test:
Test audio components, the accelerometer (gives positioning), gyroscope (same), the magnometer(gives positioning as well), the proximity sensor (pass/fail for if it works or not), nfc and its antenna, wlan, bt interface, temperatures (in Celsius) for Bluetooth, pa and osc (whatever those parts are), the display interface, the touch interface, camera interface and ois (idk what these are besides odd x,y values) and miscellaneous flash tests (which include a xenon charging time and its lifetime counter.
Touch Display Test:
Gives x and y coordinates for a single touch point.
Display Test:
Displays a white pattern, a black pattern, a checkerboard pattern, and different rgb shades with black.
Vibra Test:
Vibrates the phone based on percentage.
SIM Test:
Checks if a SIM card has been inserted. (fails with Verizon shipped sim EDIT: Now succeeds since PST update) It also is supposed to perform something else, but can't validate.
Mic Test:
Records and plays audio back through various inputs and outputs.
Accelerometer Test:
Gives "gravity" data in x,y,z format.
Audio Output Test:
Plays four tones through various outputs at three different volumes.
Another interesting thing: When powering off the phone and turning it back on, Windows attempts to find drivers for "Nokia BOOTMGR", but it occurs too quickly to install.
Can someone with experience with Nokia other phones contribute assistance? It seems like I'm just meddling with NCS and I could possibly brick my main phone. (I was told to only install the ffu it was designed for.)
Flashing ffus from the same device, but using a different product code
I haven't been around to know enough, and its unknown if the Lumia 928 will be launched on any different carrier or in a different country.
Anyways I'll quote snickler's post to summarize.
snickler said:
Hi All,
I've spent the past 4 days looking for a solution to get the Amber Update on my AT&T Branded Lumia 920 without installing a European ROM and changing to RM-821. After searching endlessly, I've found my solution that works!
Prerequisites
* Nokia WP8 Drivers
* Nokia Care Suite 2013.13.4.4
* WperHelper v1.2 Note: This is in Chinese. I don't know Chinese AT ALL, but I've been able to figure my way around the app
* Rogers Pre-Poritco ROM. Download the last group of files for Roger, not the AT&T ones.
Steps:
* DONT PLUG IN YOUR PHONE YET TO THE COMPUTER.
* Extract/Install Nokia Care Suite. Open Care Suite when it's done installing and just put it to the side
* Install WperHelper. It's all in chinese, but the buttons should be easy to navigate through
* Download the last group of files for the pre-portico ROM if you haven't done so already.
* Go to the Run menu on your system and go to "C:\programdata\nokia\Packages\Products". Create a new folder named "RM-820". If you already have files in here from a previous ROM installation, move them somewhere else. The group of files you downloaded for the Pre-Portico ROM will need to be moved inside of this folder.
* Rename the pre-portico files removing the checksum from beginning of the file name.
Here's what you should have as files
* RM820_1232.2109.1242.1002_RETAIL_nam_canada_200_02_100347_prd_signed.ffu
* RM-820_RM-821_RM-822_TypeLabel_Group1_DM_5.33x5.33_CoO_Eng__001.xml
* CustomerNvi_31019d17537fb461136cdf3481825681_12421_100343_8410.nvi
* RM820_059R2L8_1232.2109.1242.1002_039.vpl
* 112545v3.pcx
* RM820_059R2L8_1232.2109.1242.1002_039.dcp
* RM820_059R2L8_1232.2109.1242.1002_039_signature.bin
* RM820_059R2L8_ccc_v039.bin
* RM820_059R2L8_hwt_v039.bin
* NWP8_WP8_Rogers_Fido_simlock_crcFCB5.bin
* DC_template_development_v4.bin
* Go back to NCS and double click on the Product Support Tool. If you don't see the little menu with the choices of apps to install, go to "C:\Program Files (x86)\Nokia\Nokia Care Suite\Product Support Tool For Store 5.0" and click on ProductSupportToolForStore.exe (Make sure the icon is an arrow. We don't need to open the .MANIFEST file).
* When the Sign in popup comes on the screen. click Work offline.
Click File -> Open Product and type in RM-820 in the filter then press Open
* At the bottom left panel, click on Programming -> Recovery.
* In the Properties listing, you should see 059R2L8 RM-820_Rogers_Canada_VAR240202_V2_Yellow 1232.2109.1242.1002
* Click on that line that shows the data that I listed above then click the Start button.
* Plug in your phone to the USB now, hold the Vol-Down + Power buttons until the phone restarts and you hear a vibration.
* When you hear the vibration, press Retry.
* You should see a little menu saying that the Product Code doesn't match, press Okay to continue.
* Let it flash.
* After the phone has flashed, set it up, but don't login to your Microsoft account yet (It's pointless at this point). Configure Wi-Fi though.
* Go to Settings -> Phone update and check for updates. The first round of updates will put you on to Portico.
* After these updates go through (It will take forever for it to finish Preparing to Install), you'll have to check for updates two more times in order to install Nokia Updates.
* After these two extra updates, your phone will be up to date.
* Now comes the fun part. Open up the WperHelper that you installed earlier.
* On the Top group of text links(The bigger text), chose the second one from the left. It should bring up a screen with 4 drop downs.
* From left to right, choose the following as values: Nokia, Lumia 920, RM-820, 3047.0000.1326.2001.
* Click on the 059R2L5 button that is located under the first dropdown. At the bottom right part of the screen, you'll see a download icon (downward facing arrow with a line underneath of it). Click it.
* This will start to download the ROM. When complete, Click on the Top group of text links, click on the third one then click on the second smaller text link underneath of it.
* You should see bbs.wper.com_059R2L5.7z. Click on it then click the lightning bolt on the bottom left corner. This will extract the FFU package.
* After it's complete, you'll see a new screen with a picture of a Windows phone and a bunch of Chinese text (I wish I had a translation). At this point you'll want to click the button that is listed directly under ( Step ).
* This will automatically begin the ROM updating process. You'll be able to see a little log running at the bottom of the screen on whether the Flashing is working or not.
* The place where the Windows Phone is showing will display the actual progress of flashing as it appears on your phone. You should be seeing the red screen with the progress bar on your windows phone by now. If this happens for you, then you're on your way to having the Amber Update.
A few things to note
After fully flashed, it'll bring you back to the typical phone set up screen. After you get to the main homescreen, wait a minute or so because it will require a reboot. After you bring the phone back up, go to Settings -> Access Point and choose AT&T - LTE 2 - Lumia. This will set up the MMS and Data settings correctly.
Have fun!
Click to expand...
Click to collapse
Photos/Screenshots will be posted later.
Thanks for reading the long post!
Nokia Software Updater for Retail
This is a SIMPLE tool that will allow a user to reflash/update his device. It has a checkbox that can be unchecked to prevent it to erase user data.
It can be downloaded from seidea.com
To be covered:
Nokia Data Package Manager
Test mode itself isn't really interesting AFAIK. There are plenty of other bootloader modes which may sound more interesting.
ultrashot said:
Test mode itself isn't really interesting AFAIK. There are plenty of other bootloader modes which may sound more interesting.
Click to expand...
Click to collapse
Well, the purpose is a catch all tutorial, to access features of the phones not normally available to all. My first venture was the NCS, but as more is discovered, it will be covered in the things to do.
I updated the OP with the new Nokia Care Suite that's been available for a while. Also, I'm going to start to look into some of the Qualcomm MSM Mode soon. Hopefully someone has documented info how that whole process works. I'm looking at you AdvanceBox (the "first" external software/hardware that will flash the Lumia 928...)
Well, it isn't hard to trigger different USB modes. "Nokia USB Connectivity" device is WINUSB compatible. But Qualcomm Diagnostics Mode device available in Test mode (there are no drivers, but you may edit existing ones...) isn't working well since it is restricted. Although, SPC seems to be 000000, but it isn't enough.
Useful addon for you. Test mode devices:
MI_1 = MODEM
MI_2 = NMEA
MI_3 = TRACE
MI_4 = NOKIA_JSONRPC
MI_5 = NOKIA_ISI
MI_6 = DIAG
as for
Another interesting thing: When powering off the phone and turning it back on, Windows attempts to find drivers for "Nokia Bootloader", but it occurs too quickly to install.
Click to expand...
Click to collapse
you're definitely talking about Nokia BOOTMGR. It has commands to boot into different modes, and it is indeed possible to make phone stay in this mode. However, overall it isn't interesting.
ultrashot said:
MI_4 = NOKIA_JSONRPC
Click to expand...
Click to collapse
ultrashot, do you know what is that mode for? The mode name sounds interesting ("remote procedure call via JSON requests"?)
sensboston said:
ultrashot, do you know what is that mode for? The mode name sounds interesting ("remote procedure call via JSON requests"?)
Click to expand...
Click to collapse
It is generic remote control protocol used by NCS (All the data shown in NCS is retrieved using JSONRPC). Contains functions like WriteNvData, WriteEfsFile, ReadManufacturerModelName, SetDeviceMode etc. Commands are in json form.
There is an old post with example of command: http://forum.xda-developers.com/showpost.php?p=35256188&postcount=8
Same protocol is supported in MainOS device mode. Some of operations have different names, but in general it is the same.
ultrashot said:
It is generic remote control protocol used by NCS (All the data shown in NCS is retrieved using JSONRPC). Contains functions like WriteNvData, WriteEfsFile, ReadManufacturerModelName, SetDeviceMode etc. Commands are in json form.
There is an old post with example of command: http://forum.xda-developers.com/showpost.php?p=35256188&postcount=8
Same protocol is supported in MainOS device mode. Some of operations have different names, but in general it is the same.
Click to expand...
Click to collapse
How do we initiate these protocols? (Yes, epic noob question here, but you know your stuff)
snickler said:
How do we initiate these protocols? (Yes, epic noob question here, but you know your stuff)
Click to expand...
Click to collapse
Its not a noob question. If I asked, it would be a noob question (I can read code, but writing code is an uphill battle)
Sent from my RM-860 (Lumia 928) using the OFFICIAL Tapatalk app.
snickler said:
How do we initiate these protocols? (Yes, epic noob question here, but you know your stuff)
Click to expand...
Click to collapse
http://msdn.microsoft.com/en-us/library/windows/hardware/ff540174(v=vs.85).aspx
ultrashot said:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff540174(v=vs.85).aspx
Click to expand...
Click to collapse
You are a hero. This needs added to one of the main posts.
snickler said:
You are a hero. This needs added to one of the main posts.
Click to expand...
Click to collapse
Added. I wish I could understand the process a little better; I only had one course in programming and I hated to start with vanilla java. Trial by fire, I guess.:silly:
thals1992 said:
Added. I wish I could understand the process a little better; I only had one course in programming and I hated to start with vanilla java. Trial by fire, I guess.:silly:
Click to expand...
Click to collapse
I'm going to attempt to make a program that will kick the device into those multiple modes.
snickler said:
I'm going to attempt to make a program that will kick the device into those multiple modes.
Click to expand...
Click to collapse
http://goodmovieslist.com/movie-quotes/There is no try - Yoda.jpg
Code:
data = "Test", "Flash", "Normal", "PowerOff", "PowerOffImmediate";
strcpy(buffer, "{\"jsonrpc\":\"2.0\",\"id\":55,\"method\":\"SetDeviceMode\",\"params\":{\"MessageVersion\":0,\"DeviceMode\":\"");
strcat(buffer, data);
strcat(buffer, "\",\"ResetMethod\":\"HwReset\"}}");
+
WriteToBulkEndpoint
I'll check if anything from my research on this thread is worth sharing - i have lots of snippets, but it is not that useful atm.
ultrashot said:
http://goodmovieslist.com/movie-quotes/There is no try - Yoda.jpg
Code:
data = "Test", "Flash", "Normal", "PowerOff", "PowerOffImmediate";
strcpy(buffer, "{\"jsonrpc\":\"2.0\",\"id\":55,\"method\":\"SetDeviceMode\",\"params\":{\"MessageVersion\":0,\"DeviceMode\":\"");
strcat(buffer, data);
strcat(buffer, "\",\"ResetMethod\":\"HwReset\"}}");
+
WriteToBulkEndpoint
I'll check if anything from my research on this thread is worth sharing - i have lots of snippets, but it is not that useful atm.
Click to expand...
Click to collapse
You are way too awesome to be human.
ultrashot said:
http://goodmovieslist.com/movie-quotes/There is no try - Yoda.jpg
Code:
data = "Test", "Flash", "Normal", "PowerOff", "PowerOffImmediate";
strcpy(buffer, "{\"jsonrpc\":\"2.0\",\"id\":55,\"method\":\"SetDeviceMode\",\"params\":{\"MessageVersion\":0,\"DeviceMode\":\"");
strcat(buffer, data);
strcat(buffer, "\",\"ResetMethod\":\"HwReset\"}}");
+
WriteToBulkEndpoint
I'll check if anything from my research on this thread is worth sharing - i have lots of snippets, but it is not that useful atm.
Click to expand...
Click to collapse
Any research is good research. If the right people see it, they will come and possibly contribute.
Sent from my RM-860 (Lumia 928) using the OFFICIAL Tapatalk app.
Can anyone compile this? I'm having a hard time following the MSDN article... :crying:

Categories

Resources