I was recently able to figure out the answer to this question when I successfully flashed a CDMA phone from Sprint to Verizon (an exploit documented in Flashing a Sprint Nexus S 4G to Verizon). As I have not been able to find a compilation of this information elsewhere, I am writing up this document in the hope that it will help others with flashing phones or porting ROMs to different carriers.
Note that this information is based on my research with the Jelly Bean (4.1 & 4.2), ICS (4.0) and Gingerbread (2.3.4) versions of Android and two major U.S. CDMA carriers, Verizon Wireless and Sprint. Hence, it may not be applicable to other phones or carriers; in particular, the section about CDMA chips do not apply to CDMA phones that require a SIM card, such as some Verizon Wireless LTE phones. In such cases, your comments and insights are welcome.
Finally, a disclaimer: I have no formal understanding of any of the intricacies of CDMA technology and therefore cannot guarantee the correctness or accuracy of this information. Use it at your own risk. I cannot be held responsible for any damage or legal consequences resulting from or related to the application of this information.
Every CDMA phone (obviously) has a CDMA chip (radio). This chip is responsible for carrying out voice calls and transferring data over 2G/3G, and in order to do that, it needs to know stuff like what phone number it represents, what towers to connect to, what account name to bill the 3G connection to, etc.. All of this information is stored directly inside the chip (unless you have a Verizon Wireless LTE phone with a SIM card), and not on any file system controlled by the OS; this is why even after a factory reset (which formats the internal flash file system) these settings persist. It is (I believe) not possible to change the information stored on the CDMA chip from the OS itself; instead, carriers provide a special number (e.g., *228 for Verizon Wireless) that, when called, will transfer the information to the chip. This is typically called "programming" the phone by U.S. carriers.
2G/3G data account information: user names and passwords used to connect to data services. Some carriers have stronger (harder to impersonate) authentication systems than others; for instance, Verizon Wireless requires two encrypted passwords and a secret key in the EFS file system on the CDMA chip; Boost Mobile only requires two passwords; while MetroPCS simply accepts the SPC/MSL code (see below) as the password. Note that 2G and 3G are unrelated systems with independent authentication; a phone can have valid 3G credentials and thus connect to 3G while being denied a 2G connection.
Software such as CDMA Workshop, DFS, QXDM/QPST can be used to read / write information stored on a CDMA chip from a computer. Often, however, a 6-digit passcode known as the SPC code or the MSL code is required. This SPC/MSL code, again stored inside the CDMA chip, is either randomly assigned by the carrier (this is the case for Verizon Wireless and Sprint) or deterministically computed based on the MEID (MetroPCS). In the former case, there are a variety of tricks for retrieving the SPC/MSL code from the phone itself,; Google is your friend there. In the latter case, there are sites for computing the code from the MEID. Once it is known, the SPC/MSL code can be changed to any 6-digit number; some phones may even allow you to overwrite the SPC/MSL code without knowing it first.
To figure out what system files in the Android OS contain carrier information, I inspected source code and images of ROMS for the Samsung Galaxy Nexus (Sprint and Verizon Wireless), the Samsung Nexus S 4G (Sprint), the HTC Incredible (Verizon Wireless), and the Motorola Droid 3 (Verizon Wireless). I found three places that store carrier-specific information.
These settings apply to phone calls. If one adopts the Sprint configuration on a Verizon Wireless phone, for example, the phone would ring very briefly on a call, but would be unable to actually make or receive calls. The ro.cdma.homesystem specifies a list of indices into the PRL that represent "home" or non-roaming networks.
The second configuration file is eri.xml, which is compiled into the file /res/xml/eri.xml inside the system package /system/framework/framework-res.apk on an Android system. This file tells the OS what it needs to display about a particular network (as an index into the PRL); for an example, take a look at the stock eri.xml for the Sprint Galaxy Nexus or the CyanogenMod eri.xml for the Verizon Wireless Galaxy Nexus. In particular, this file instructs the OS whether to consider a network (tower) to be roaming (so whether a roaming icon is displayed), and gives the name of the network (tower) to be shown in the UI. It must be stressed that this file has no functional effect; all it changes is how the OS displays information about networks. Since APK packages are just ZIP archives, it is easy to replace the +eri.xml within to change roaming and name settings for networks; note, however, that the file inside the APK is not a plain text XML, but some compiled binary form; you may need to Google for the appropriate binary form pulled from another phone.
The last configuration file is /system/etc/apns-conf.xml. This file contains APN settings for 4G and MMS. See the stock APN settings file for the Sprint Nexus S 4G or the default CyanogenMod APN settings.
Building on the previous two 5G security workshops, this workshop will focus on the security and resilience of Open 5G Systems. Open 5G Architecture, including Open Radio Access Network (RAN), will facilitate the needed growth of 5G in the United States. Security remains an active area of focus with the introduction of additional interfaces in Open 5G. We will also introduce 6G security with the goal to build security into the new capabilities that 6G will bring beyond 5G.
Dr. Arupjyoti (Arup) Bhuyan is a wireless researcher in the Idaho National Laboratory (INL) and the Technical Director of the INL Wireless Security Institute. The focus of his research is on secure implementation of future generations of wireless communications with scientific exploration and engineering innovations across the fields of wireless technology, cybersecurity, and computational science. Specific goals are to assure communications among critical infrastructure systems supporting control of the electric grid, emergency response, and nationwide unmanned aerial systems. Arup has extensive industry experience in wireless communications from his work before he joined INL in October, 2015. He received his Ph.D. in Engineering and Applied Sciences from Yale University. He is a senior member of IEEE.
Mr. Elmore is a retired Air Force colonel with more than 27 years of active duty military experience leading organizations comprised of military, civilian, and contractor teams performing cyber operations support, communications systems, and networks engineering, national and nuclear command and control systems operations, and Continuity of Government and contingency operations planning. His last active duty assignment was at the Pentagon where he directed the largest single cyberspace office in Air Force Headquarters.
Prior to the Pentagon, Mr. Elmore served in a variety of positions and locations, including the White House, U.S. Strategic Command, Alaska, Saudi Arabia, and Afghanistan. His extensive operational experience, coupled with a fundamental knowledge of critical infrastructure and its relationship to mission assurance, exposure to the inner workings of federal and intelligence agencies, as well as broad exposure to specialized and classified capabilities, helps to advance National & Homeland Security programs.
Margaret Pinson is the secondary project lead for the Department of Defense Challenge. She is an internationally recognized expert with 30 years of experience developing improved methods for assessing video quality. Her research includes algorithm development, human testing, and international standards. Her current research focuses on no reference (NR) metrics that predict what people would say is the quality of an image or video. NR metrics, when available, will enable smart cameras that adapt to first responder environments and applications. Mrs. Pinson is a Co-Chair of the Video Quality Experts Group (VQEG), administers the Consumer Digital Video Library (CDVL), and makes all of her algorithms openly available. Mrs. Pinson contributes to ITU Recommendations and has led several efforts to independently validate metrics, which is a necessary step of the standards development process. Mrs. Pinson designed and helped to conduct two prize challenges and has authored or co-authored 79 publications.
Dr. Jonathan M. Smith joined DARPA in September 2017 from the University of Pennsylvania, where he is a professor of computer and information science and the Olga and Alberico Pompa Professor of Engineering and Applied Science. As a DARPA program manager, Smith seeks to develop and execute programs in cybersecurity, networking, and distributed computing. Smith joined the University of Pennsylvania in 1989 from Bell Communications Research, where he was a member of the technical staff, a position he also held at Bell Telephone Laboratories.
Mike joined Nokia in 2005 as Japan country manager, where he had P&L responsibility and led the formation of a senior team during the Softbank takeover of Vodafone. He then moved to the role of Head of Technology for the Asia-Pacific region, managing activities in Asia, the Middle East and Africa. In this function, his focus was roadmap planning for the region, LTE entry and development, and communicating the telecom vision with a focus on broadband profitability.
Prior to joining Nokia, Mike was the former head of WCDMA development for Nortel Networks. Mike had primary responsibility for delivering that technology in 2001 to European customers. He then moved to Asia where he was instrumental in establishing the LG-Nortel joint venture in Korea. After that, Mike headed the Nortel Networks Asia-Pacific Wireless sales business, covering all countries in the region.
b37509886e