Professional Documents
Culture Documents
MSM8909 Linux Android Software User Manual
MSM8909 Linux Android Software User Manual
Manual
Software Product Document
SP80-NR964-4 C
December 17, 2014
Restricted Distribution: Not to be distributed to anyone who is not an employee of either Qualcomm or its
subsidiaries without the express approval of Qualcomm’s Configuration Management.
Not to be used, copied, reproduced, or modified in whole or in part, nor its contents revealed in any manner to others
without the express written permission of Qualcomm Technologies, Inc.
Qualcomm reserves the right to make changes to the product(s) or information contained herein without notice. No
liability is assumed for any damages arising directly or indirectly by their use or application. The information
provided in this document is provided on an “as is” basis.
This document contains confidential and proprietary information and must be shredded when discarded.
Qualcomm is a trademark of QUALCOMM Incorporated, registered in the United States and other countries. All
QUALCOMM Incorporated trademarks are used with permission. Other product and brand names may be
trademarks or registered trademarks of their respective owners.
This technical data may be subject to U.S. and international export, re-export, or transfer (“export”) laws. Diversion
contrary to U.S. and international law is strictly prohibited.
1 Introduction...................................................................................................... 6
1.1 Conventions .................................................................................................................. 6
1.2 References..................................................................................................................... 6
1.3 Debugging the software ................................................................................................ 7
1.4 Porting the software ...................................................................................................... 7
Tables
Table 1-1 Reference documents and standards ............................................................................................ 6
Table 2-1 Required equipment and software ............................................................................................... 8
Table 3-1 Release packages ....................................................................................................................... 13
Table 3-2 Component release build properties .......................................................................................... 14
Table 4-1 Required software ...................................................................................................................... 26
Table 5-1 WCDMA/GSM + GSM DSDS NV settings.............................................................................. 45
Table 5-2 CDMA + GSM DSDS NV Settings .......................................................................................... 45
Table 5-3 LTE + GSM DSDS settings....................................................................................................... 46
Table 5-4 1xSRLTE settings ...................................................................................................................... 51
Table A-1 Other important Android build commands ............................................................................... 67
Figures
Figure 3-1 Build ID naming convention .................................................................................................... 13
Figure 3-2 Combined software release packages ....................................................................................... 14
Figure 3-3 Build ID information from about.html ..................................................................................... 17
Figure 5-1 CDP USB/JTAG/RF/SD card/power configuration ................................................................. 42
Figure 5-2 CDP UIM configuration ........................................................................................................... 43
Figure 5-3 MTP UIM configuration .......................................................................................................... 43
Figure 5-4 QRCT NV tool for generating QCN ........................................................................................ 44
2 This document describes how to obtain, build, and program software applicable to the MSM8909
3 Linux Android Software Product (SP) “as-is” into a reference platform including:
4 Setting up a development environment and installing the software
5 Building the software and flashing it onto a reference platform
6 Configuration and bringup of call, GPS, multimedia, etc.
7 1.1 Conventions
8 Function declarations, function names, type declarations, and code samples appear in a different
9 font, e.g., #include.
10 Code variables appear in angle brackets, e.g., <number>.
11 Shading indicates content that has been added or changed in this revision of the document.
12 1.2 References
13 Reference documents are listed in Table 1-1. Reference documents that are no longer applicable
14 are deleted from this table; therefore, reference numbers may not be sequential.
Ref. Document
Qualcomm Technologies
Q2 Hexagon Tools Installation Guide 80-VB419-25
Q3 Hexagon Development Tools Overview 80-VB419-74
Q11 USB Host Driver for Windows 2000/Windows XP User Guide 80-V4609-1
Q12 USB Host Driver Installation Instructions for Microsoft Windows 80-VP092-1
Q13 IZat Gen 8 Engine Family RF Development Test Procedures 80-VM522-2
Q15 Qualcomm Createpoint User Guide 80-NC193-2
Q16 Qualcomm Flash Image Loader (QFIL) User Guide 80-NN120-1
Q17 Hexagon LLVM C/C++ Compiler User Guide 80-VB419-89
Q18 Presentation: LLVM Compiler for Hexagon Processor Deployment Plan 80-VB419-87
Q20 Presentation: MSM8x09 Chipset Software Overview 80-NR964-2
Q24 MSM8916+WTR1605 RF Calibration Software/XTT/DLL Revision Guide 80-NK201-10
Q25 DSI Programing Guide for B-Family Android Devices 80-NA157-174
Q26 Linux Android Display Driver Porting Guide 80-NN766-1
Q27 WCN36x0 WLAN/BT/FM FTM Guide with QRCT Test Example 80-WL300-27
Ref. Document
Q28 QDART-MFG Installer 80-NH711-3
Q29 TPP User Guide 80-NF136-1
Q30 Application Note: MSM8916 External MI2S Interface Overview 80-NL239-42
Q31 Application Note: Sensor Driver Development and Troubleshooting 80-NL239-32
Q32 Linux Camera Debugging Guide 80-NL239-33
Q33 Application Note: Widevine DRM 80-N9340-1
Q34 Subsystem Restart User Guide 80-N5609-2
Q35 Presentation: MSM8x10 Android Subsystem Restart Overview 80-NC839-21
Q36 Presentation: MSM8974 Android Subsystem Restart 80-NA157-31
Q37 Application Note: SGLTE Device Configuration 80-NJ017-11
Q38 Application Note: Segment Loading Feature 80-NL239-46
Resources
R1 Android Open Source Project Page http://source.android.com/
R2 Android Developer Resources http://developer.android.com/index.html
R3 Android Source Download and System http://source.android.com/source/index.html
Setup
R4 Code Aurora Forum https://www.codeaurora.org/
R5 Installing Repo http://source.android.com/source/downloading.html
R6 Qualcomm ChipCode Website https://chipcode.qti.qualcomm.com/
4 NOTE: Due to a possibility of version change for the tools listed in the following table with software
5 releases, refer to MSM8909 software release note for the exact version of the tools.
11 sudo vi /etc/apt/sources.list
12
13 ii. Edit the file to enable the universe and multiverse sources, and disable the Ubuntu
14 installation CD source.
15 iii. From the command line, perform the package list update and package upgrades:
16
28 4. IMPORTANT! Make bash the default shell (Android build scripts contain bash shell
29 dependencies that require the system default shell /bin/sh to invoke bash) using one of the
30 following options:
31 Reconfigure the package:
32 i. Use the command:
33
40 sudo rm /bin/sh
41
43 NOTE: See the Ubuntu Wiki page at https://wiki.ubuntu.com/DashAsBinSh for more information.
9 System->Administration->Samba
10 preferences->server settings:
11 vmgroup, security=user authentication
12 encrypt pw=yes, guest accnt=no guest accnt
13 add share directory=/, share name=root, description=root directory
35 $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo
36 >~/bin/repo
37
3 $ export PATH=~/bin:$PATH
4
5 5. Run repo --help to verify installation; a message similar to the following should appear:
6
7 $ repo --help
8 usage: repo COMMAND [ARGS]
9 repo is not yet installed. Use “repo init” to install it here.
10 The most commonly used repo commands are:
11 init Install repo in the current working directory
12 help Display detailed help on a command
13
14 NOTE: For access to the full online help, install repo (repo init).
1 7. To check the versions, run armcc –vsn. It must return the following:
2
7 armar –-vsn
8 armlink –-vsn
9 armasm –-vsn
10 fromelf --vsn
11
2 Table 3-1 describes the software for this product line divided into the release packages that need
3 to be downloaded separately and combined to have a complete product line software set.
5 The proprietary and open source HLOS packages must be obtained from separate sources and
6 then combined according to the downloading instructions given in Section 3.3.8. Each package is
7 identified by a unique build identification (build ID) code, which follows this naming convention:
8 <PL_Image>-<Version>-<Chipset>
9 Where:
10 PL_Image – LA.BR64.Branch for Linux Android
11 Version – Variable number of digits used to represent the build ID version.
12 Chipset – 8909 for MSM8909
13
MPSS (AZM)
MPSS (AZM)
WCNSS
WCNSS (AZW)
(AZW)
Boot
Boot loader
loader (AZB)
(AZB)
Product
Product Metabuild
Metabuild (LYD)
(LYD) RPM
RPM (AZR)
(AZR)
Trust
Trust Zone
Zone (AZT)
(AZT)
4 Table 3-2 gives the component release build properties. The compiler, Python, Perl, and Cygwin
5 version information for each of the non-HLOS build modules is also provided. Ensure that the
6 build PC has the correct versions for each tool.
7 NOTE: Due to a possibility of version change for the tools listed in the following table with software
8 releases, refer to MSM8909 software release note for the exact version of the tools.
Source Toolchain
Component or required for Python Supported build
Perl version Cygwin
build release binary building version hosts
only source
Boot loaders Source ARM Python Perl 5.8.x Windows Linux,
(AZB) Compiler 2.6.6 Linux builds builds only; Windows XP, and
Tools 5.01 only Needs Windows 7
update 3 tee.exe
(build 94)
RPM (AZR) Source ARM Python Perl 5.6.1 Windows Linux,
Compiler 2.6.6 builds only; Windows XP and
Tools 5.01 Needs Windows 7 only
update 3 tee.exe
(build 94)
RPM - (ARM
compiler
Tools Q4 Full
version)
5 2. Create a top-level directory on the build PC and unzip each of the subsystem images to
6 generate the following directory structure. In this example, <target_root> is the top-level
7 directory.
contents.xml
about.html
8
9 3. Ensure to download the about.html and contents.xml files. These files contain the build
10 ID that is used to download the open source software from CAF.
11
15 $ repo sync
16
17 4. Copy the vendor/qcom/proprietary directory tree into the open source HLOS source tree
18 contained in the workspace.
19
20 $cp -r <LYA_build_location>/HY11-<build_id>/LINUX/android/* .
21
Build ID
x.x
x.x
x.x
x.x
x.x
x.x
x.x
x.x
26
1 From the about.html file that was downloaded to the build PC.
2 Search for <name>apps</name>, then locate the build_id, from the contents.xml file that
3 was downloaded to the build PC.
4
5 <build>
6 <name>apps</name>
7 <role>apps</role>
8 <chipset>msm8909</chipset>
9 <build_id>LA.64.1.1.1-06002-8x09.2-1</build_id>
18 #
19 # myenviron_amss_8916
20 #
21 SET ARMLMD_LICENSE_FILE=<mylicense_file>@<mylicense_server>
22 set ARM_COMPILER_PATH=C:\apps\ARMCT5.01\94\bin64
23 set PYTHON_PATH=C:\Python26
24 set PYTHONPATH=C:\Python26
25 set MAKE_PATH=C:\apps\ARMCT5.01\94\bin64
26 set GNUPATH=C:\cygwin\bin
27 set CRMPERL=C:\Perl64\bin
28 set PERLPATH=C:\Perl64\bin
29
30 set ARMHOME=C:\Apps\ARMCT5.01\94
31 set ARMINC=C:\Apps\ARMCT5.01\94\include
32 set ARMLIB=C:\Apps\ARMCT5.01\94\lib
33 set ARMBIN=C:\Apps\ARMCT5.01\94\bin
34 set ARMPATH=C:\Apps\ARMCT5.01\94\bin
35 set ARMINCLUDE=C:\Apps\ARMCT5.01\94\include
36 set ARMTOOLS=ARMCT5.01
37 set
38 PATH=.;C:\Python26;C:\Apps\ARMCT5.01\94\bin;C:\apps\ARMCT5.01\94\bin64;C:\c
39 ygwin\bin;%PATH%
40 set HEXAGON_ROOT=C:\Qualcomm\HEXAGON_Tools
41 set HEXAGON_RTOS_RELEASE=5.0.07
42 set HEXAGON_Q6VERSION=v4
1 set HEXAGON_IMAGE_ENTRY=0x08400000
6 <target_root>\modem_proc\build\ms\setenv.sh
7 export ARMLMD_LICENSE_FILE=<LICENSE FILE INFO>
8 ARM_COMPILER_PATH=/pkg/qct/software/arm/RVDS/2.2BLD593/RVCT/Programs/2.2
9 /593/linux-pentium
10 PYTHON_PATH=/pkg/qct/software/python/2.6.6/bin
11 MAKE_PATH=/pkg/gnu/make/3.81/bin
12 export ARMTOOLS=RVCT221
13 export ARMROOT=/pkg/qct/software/arm/RVDS/2.2BLD593
14 export ARMLIB=$ARMROOT/RVCT/Data/2.2/349/lib
15 export ARMINCLUDE=$ARMROOT/RVCT/Data/2.2/349/include/unix
16 export ARMINC=$ARMINCLUDE
17 export ARMCONF=$ARMROOT/RVCT/Programs/2.2/593/linux-pentium
18 export ARMDLL=$ARMROOT/RVCT/Programs/2.2/593/linux-pentium
19 export ARMBIN=$ARMROOT/RVCT/Programs/2.2/593/linux-pentium
20 export PATH=$MAKE_PATH:$PYTHON_PATH:$ARM_COMPILER_PATH:$PATH
21 export ARMHOME=$ARMROOT
22 export HEXAGON_ROOT=/pkg/qct/software/hexagon/releases/tools
23
26 cd <target_root>/modem_proc/build/ms
27
28
Notices:
For CMCC – EAAAANWZM: ./build.sh 8909.lwg.prod -k
5 <target_root>\boot_images\build\ms\setenv.sh.
6 export ARMLMD_LICENSE_FILE=<LICENSE FILE INFO>
7 export ARM_COMPILER_PATH=/<Path to compiler>/arm/RVDS/5.01bld94/bin64
8 export PYTHON_PATH=/<Path to python>/python/2.6.6/bin
9 export MAKE_PATH=/<Path to make>/gnu/make/3.81/bin
10 export ARMTOOLS=ARMCT5.01
11 export ARMROOT=/<Path to compiler>/arm/RVDS/5.01bld94
12 export ARMLIB=$ARMROOT/lib
13 export ARMINCLUDE=$ARMROOT/include
14 export ARMINC=$ARMINCLUDE
15 export ARMBIN=$ARMROOT/bin64
16 export PATH=$MAKE_PATH:$PYTHON_PATH:$ARM_COMPILER_PATH:$PATH
17 export ARMHOME=$ARMROOT
18 export_armlmd_license
19 2. Navigate to the following directory:
20
21 cd <target_root>/boot_images/build/ms
22
1 3. Depending on the build environment/release, choose one of the following build command
2 options:
8 cd <target_root>/trustzone_images/build/ms
9
7 cd <target_root>\rpm_proc\build
8
12 NOTE: Since WCNSS is shipped as a binary, WCNSS compilation is not required. However, OEMs need
13 to pick this binary from the Qualcomm chipcode release.
20 cd <target_root>/common/build
21
24 python update_common_info.py
25 NOTE: If you are creating the whole sparse_images (which is required when contents.xml is burned to be
26 a whole image using Qualcomm Product Support Tool (QPST)), the image compiled from
27 Linux/Android must be copied into the LINUX/android/out/target/product/MSM8909/ directory.
28 For details about the required files, refer to apps-related configuration information in the
29 contents.xml file. In Linux, you are advised to copy Linux/android code downloaded from
6 cd <build id>/LINUX/android
7
8 2. Enter the following command to configure the build environment shell settings:
9
10 source build/envsetup.sh
11 NOTE: Use the source command so that the environment settings are defined in the current shell.
1 3. Enter the lunch command to select the build configuration, or enter with no parameters to see
2 an interactive menu for making selections.
3 a. For MSM8909 1.0 PL:
4 lunch msm8909-userdebug
5 b. For 512 MB DDR memory:
6 lunch msm8909_512-userdebug
7 4. Run make to start the build. To run parallel builds for faster build times on a multicore build
8 machine, run the following command:
9
10 make –j4
11
16 android_winusb.inf
17 [Google.NTx86]
18 ;Qualcomm SURF/FFA
19 %SingleAdbInterface% = USB_Install, USB\VID_05C6&PID_9025
20 %CompositeAdbInterface% = USB_Install, USB\VID_05C6&PID_9025&MI_01
21 %SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_D00D
22 [Google.NTamd64]
23 ;Qualcomm SURF/FFA
24 %SingleAdbInterface% = USB_Install, USB\VID_05C6&PID_9025
25 %CompositeAdbInterface% = USB_Install, USB\VID_05C6&PID_9025&MI_01
26 %SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_D00D
27 In addition, ensure that there are matching entries under the [Strings] section.
28 [Strings]
29 SingleAdbInterface = “Android ADB Interface”
30 CompositeAdbInterface = “Android Composite ADB Interface”
31 SingleBootLoaderInterface = “Android Bootloader Interface”
32
33 5. The ADB client (adb.exe) supports a built-in list of recognized USB VID/PID devices.
34 To add the SURF or another device to the list of recognized devices, which is not included in
35 the built-in support list, create a %USERPROFILE%\.android directory if it does not exist.
36 6. Navigate to the %USERPROFILE%\.android directory.
1 7. In the %USERPROFILE%\.android directory, create /edit the adb_usb.ini file. If the file
2 exists, it contains a DO NOT EDIT message. Disregard this message and edit the file
3 anyway. Add a line containing 0x05C6 to the end of the file.
4 NOTE: Do not run the Android update ADB as it resets the contents of this file and overwrites the
5 line just added.
6 After editing, the adb_usb.ini file must look like the following:
7
13 8. Obtain the latest version of the Qualcomm Composite USB driver from Documents and
14 Downloads. (To include network interface support, use the Qualcomm Composite USB
15 Network Combo driver.)
16 Android debugging is enabled/disabled in user space with composition 9025/9026
17 respectively.
18
19 qcmdm.inf
20 [Models]
21 %QUALCOMM90252% = Modem2, USB\VID_05C6&PID_9025&MI_02
22 %QUALCOMM90261% = Modem2, USB\VID_05C6&PID_9026&MI_01
23
24 [Models.NTamd64]
25 %QUALCOMM90252% = Modem2, USB\VID_05C6&PID_9025&MI_02
26 %QUALCOMM90261% = Modem2, USB\VID_05C6&PID_9026&MI_01
27 [Models.NTia64]
28 %QUALCOMM90252% = Modem2, USB\VID_05C6&PID_9025&MI_02
29 %QUALCOMM90261% = Modem2, USB\VID_05C6&PID_9026&MI_01
30 [Strings]
31 QUALCOMM90252 = “Qualcomm Android Modem 9025”
32 QUALCOMM90261 = “Qualcomm HS-USB Android Modem 9026”
33
34 qcser.inf
35 [QcomSerialPort]
36 %QcomDevice90250% = QportInstall00, USB\VID_05C6&PID_9025&MI_00
37 %QcomDevice90253% = QportInstall00, USB\VID_05C6&PID_9025&MI_03
38 %QcomDevice90260% = QportInstall00, USB\VID_05C6&PID_9026&MI_00
39 %QcomDevice90262% = QportInstall00, USB\VID_05C6&PID_9026&MI_02
40
41 [QcomSerialPort.NTia64]
42 %QcomDevice90250% = QportInstall00, USB\VID_05C6&PID_9025&MI_00
43 %QcomDevice90253% = QportInstall00, USB\VID_05C6&PID_9025&MI_03
44 %QcomDevice90260% = QportInstall00, USB\VID_05C6&PID_9026&MI_00
17 [QCOM.NTia64]
18 qcwwan.DeviceDesc90254 = qcwwan.ndi, USB\VID_05C6&PID_9025&MI_04
19 qcwwan.DeviceDesc90263 = qcwwan.ndi, USB\VID_05C6&PID_9026&MI_03
20 [QCOM.NTamd64]
21 qcwwan.DeviceDesc90254 = qcwwan.ndi, USB\VID_05C6&PID_9025&MI_04
22 qcwwan.DeviceDesc90263 = qcwwan.ndi, USB\VID_05C6&PID_9026&MI_03
23 [Strings]
24 qcwwan.DeviceDesc90254 = “Qualcomm Wireless HS-USB Ethernet Adapter
25 9025”
26 qcwwan.DeviceDesc90263 = “Qualcomm Wireless HS-USB Ethernet Adapter
27 9026”
28
4 cd /etc/udev/rules.d/
5 2. Enter the command:
6
7 sudo vi 50-android.rules
8 The result must be similar to the following:
9
16 3. After editing the file, to see the list of target devices connected to the Linux box, type:
17
18 Lsusb
19
20 4. The adb and fastboot executables for Linux are located in the android\out\host\linux-x86\bin
21 directory in the Android software release after a build is complete. If the
22 android\out\host\linux-x86\bin directory is not in the executable search path, use the
23 following steps to add it. If it is already in the executable search path, skip to Step 5:
24 a. Type the command:
25
26 source build/envsetup.sh
27
32 5. Verify that the fastboot has properly flashed the Android images to the target, type the
33 command:
34
37 6. Verify that device is displayed by fastboot in response to typing in the fastboot devices
38 command.
39 NOTE: To run adb or fastboot, sudo or root access on the Linux machine may be required.
9 NOTE: On the MSM8909 CDP, you can force the device into the binary download mode by erasing the
10 device entirely or using the dip switch S7 pin 3.
11 NOTE: The QPST version must meet the minimum requirement specified in Section 4.1.
12 1. Launch QFIL from QPST. If USB 9091 port is displayed in the Windows Device Manager, it
13 is automatically detected.
14
1 2. Select the contents.xml from the root directory of the build, it fills the Programmer Path field
2 is populated automatically.
3 3. Click Download. The image is downloaded to the device and the eMMC is programmed.
6 3. Click Download.
9 fastboot devices
10
1 From Linux:
2 i Navigate to the following directory:
3
4 cd <AndroidRoot>/LINUX/device/out/host/linux-x86/bin
5
6 ii Run:
7
14 cd <target_root>/common/build
15 fastboot_all.py
16
17 Each binary can also be flashed selectively through the following fastboot command options:
18
30 To derive a list of all fastboot partitions supported by fastboot programming, refer to the
31 source code in LINUX/android/bootable/bootloader/lk/platform/msm_shared/mmc.c.
36 cd <root>/LINUX/device/out/host/linux-x86/bin
37
3 cd <root>/LINUX/device/out/target/product/surf/obj/
4 APPS/AppName_intermediates/
5
8 cp package.apk AppName.apk
9
18
3 6. Keep the USB connected to PC, as it uses fastboot to flash NON-HLOS.bin and apps
4 binaries. Fastboot download process starts automatically by script after T32 finishes
5 programming boot loaders.
8 7. After fastboot completes flashing the binaries, power cycle the device.
2 5.1 CDP and MTP SIM slots, primary antenna, and USB ports
2 5.2.1 RF NV settings
3 1. Static QCN is generated from the XML shipped within the MPSS build. Pick the appropriate
4 xml file from the following path:
5 <MPSS ROOT>\modem_proc\rftarget_dimepm\common \rftarget_dimepm\common\qcn\
6 2. Choose an RF card per the requirements.
7 3. Run QRCT to generate a static QCN, select the RF configuration to be used and then convert
8 it to QCN.
9 4. Navigate to Tool → NV tools and pick the master xml file from the following build path:
10 <MPSS ROOT>\modem_proc\rftarget_dimepm\common \rftarget_dimepm\common\qcn\
11 For example, for RF card: RFC_WTR1605_CHILE_SVDSDA, the build path must be as
12 follows:
13 \modem_proc\rftarget_dimepm\common\qcn\wtr1605_chile_svdsda\etc
14 MSM8909_WTR1605_CHILE_SVDSDA_MASTERFILE.
15 5. Click Execute.
16
18 NOTE: The MPSS build has a reference QCN as a deliverable. The QCN contains RF-only NV items and
19 does not have XO TRIM NV item in it. Hence, for basic functional testing, this QCN is loaded
20 followed by XO-only calibration. The reference QCNs are found at
21 \modem_proc\rftarget_dimepm\common
3 NOTE: For WCDMA/GSM + GSM DSDA NV configuration, the same as Table 5-1, except NV70266
4 (Dual standby preference) must be set to 2.
Subscription2
NV item Subscription1 (CDMA+ HDR) value
(GSM) value
4204 (HDR SCP force) 0 → HDR SCP force release 0 session Same as SUB1
configuration
4964 0 → HDR rev 0, 1 → HDR rev A, 3 → HDR Same as SUB1
(HDR SCP force at configuration) rev B.
03446 (TRM Configuration) 2, 0 Same as SUB1
4398 (UIM select default USIM 0 → DSDS; 1 → SS Same as SUB1
application
4399 (detect hardware reset) 1 detect hardware reset Same as SUB1
6874 (ASID 1 Data) 255 Same as SUB1
6875 (ASID 2 Data) 255 Same as SUB1
562 (preference Hybrid mode) 1 → Hybrid operation allowed 0→ Hybrid
operation not
allowed
6876 00002 (Dual standby preference) Same as SUB1
(Dual standby configuration items)
6907 1 → Dual SIM 0 → Single SIM Same as SUB1
(NV_UIM_HW_SIM_CONFIG)
855 (RTRE configuration) 0 (Before setting this item send spc 000000 Same as SUB1
through QXDM Pro command window)
1 NOTE: For CDMA + GSM DSDA NV configuration, the same as Table 5-2, except NV70266
2 (Dual standby preference) must be set to 2.
Subscription 0
5 2. Perform “Spc 000000” in QXDM Pro and then set the following:
NV item number NV item value
00855 0 (for both single SIM and dual SIM)
70266 1 (for dual SIM)
Subscription 1
7 3. Set the NV settings for IRAT (NV settings are required only on Subscription 0).
Subscription 0
1 4. Restart the UE and run the dual SIM commands from ADB shell:
2
3 adb devices
4 adb root
5 adb shell
6 setprop persist.radio.multisim.config dsds
7 getprop persist.multisim.config (it must show up as DSDS)
8
1 9. Go back to settings, select Mobile Networks, and select subscriptions. Set the respective
2 subscriptions to LTE and GSM.
3
1 10. Run the below command after power-up, to check if both RILs are activated for DSDS.
2
8 11. Check whether the below command returns only one radio as output, and if it returns only
9 one radio as output then the RIL still is in single SIM mode.
10
24 Manual mode
25 For Manual mode:
26 On a fresh load of the build, the UE is by default configured for Manual mode of segment
27 loading operation.
28 NV72542 – 2 (default) → The UE works in WCDMA Segment mode.
29 NV72542 – 1 → The UE works in TD-SCDMA Segment mode.
1 In Manual mode, there are no switches between WCDMA and TD-SCDMA segments, as the
2 Manual mode means that the UE is set to operate as determined by the NV72542 setting.
3 Changing the NV72452 value between 1 and 2, the UE can be set to operate with the
4 WCDMA segment or TD-SCDMA segment.
5 At power-up for the first time and based on the NV 72542 setting, the UE loads the said NV
6 image initially and starts searching for the network as per the configured RAT priority order. If
7 the UE fails to get the coverage on the network in Manual mode, change the NV72542 explicitly
8 to search for other networks. To avoid the user intervention for NV switch and finally network
9 search, set the segment loading to Automatic mode.
10 Automatic mode
11 1. To take the UE out of the Manual mode and to put it in Automatic mode, load the
12 segment_loading.xml file as below:
13 2. Copy from <build_root>\modem_proc\mmcp\policyman\configurations\SegLoad\
14 segment_loading.xml to \..\policyman\ on the device.
15 3. Change NV 10 to “auto”.
16 While in Automatic mode, the UE loads the image based on the NV 72542 setting.
17 Segment switching occurs as per the logic outlined in the segment_loading.xml file.
18 While in service on MCCs is listed in segment_loading.xml file, TDS segment is loaded.
19 While in service on MCCs not listed in segment_loading.xml file, WCDMA segment is
20 loaded.
21 While in complete OOS, segment switching occurs as determined by the timers listed in
22 segment_loading.xml.
23 Logic/comments in
24 “<build_root>\modem_proc\mmcp\policyman\configurations\SegLoad\
25 segment_loading.xml” file offer detailed steps.
26 Segment switching occurs with modem subsystem reset.
27 The segment_loading.xml file works independent of other policy manager configuration
28 files.
29 NOTE: Do not set NV 72542 to 0. It causes device runtime to crash due to a heap exhaustion
1 Callbox setup
2 Current testing has been done on Agilent 8960
3 Callbox setup instructions
4 In System Config/Application Setup, select CDMA 2000 Lab App B (version should be
5 B or above);
6 In Call Setup/Call Control screen
7 – Set the Operating Mode to Active Cell;
8 – Set the System Type to IS-2000;
9 – Click “More” to move to page 2 of 5, select Cell Info/Cell Parameters. Configure the
10 SID/NID(match with PRL, or set it as wildcard: SID=0, NID=65535);
11 In Call Setup/Call Params screen
12 – Set Cell 1 Power to a proper value (between -45 ~ -65 dBm);
13 – Set Cell Band and Channel, match the PRL setting;
14 – Set Protocol Rev to 6(IS-2000-0);
15 – Set Radio Config(RC) to (3,3) - (Fwd3, Rvs3);
16 – Set FCH Service Option setup for (Fwd3, Rvs3) to SO3 (Voice);
17 Device setup
18 To make the call:
19 1. Use the Call Manager screen in QXDM Professional (QXDM Pro).
20 2. Set the phone number to something like 1234 and make sure that the service option matches
21 the callbox setting.
22 3. Click Call to start a call. For MT, originate the call from the test box.
23 NOTE: For dual SIM device, the default subscription is 0. If subscription 1 is needed, check the Dual
24 SIM and then select Subscription ID.
8 Callbox setup
9 Current testing has been done on Agilent 8960 or Anritsu MT8820;
10 In Call Setup/Call Params screen
11 Set Radio Config(RC) to (3, 3) - (Fwd3, Rvs3);
12 Set FCH Service Option Setup for (Fwd3, Rvs3) to SO32 (TDSO);
13 Callbox setup instructions – Make sure band/channel and SID/NID match those specified in
14 PRL; cell power must be set somewhere between -45 and -65 dB
1 Device setup
2 To make the call:
3 1. Use the Call Manager screen in QDXM Pro.
4 2. Set the phone number to something like 1234 and make sure that the service option matches
5 the callbox setting.
6 3. Click Call to start a call; for MT, originate the call from the test box.
13 RF calibration
14 Ensure that the device has been RF-calibrated
15 Roaming list – A preferred roaming list with HDR channels must be loaded and subnet ID in
16 PRL must match the callbox setting
17 Roaming list is loaded via QPST Service Programming; perform the following:
18 a. Select the Roam tab
19 b. Enter PRL path in the Preferred Roaming area
20 c. Select Write to Phone
21 Callbox setup
22 For DO Rev A calls, the callbox must be placed in Rev A mode
23 Device setup
24 To make a call:
25 1. Power-cycle the device
26 2. Enter mode online in the QXDM Pro command bar; the device must attempt to acquire HDR
27 channel and negotiate a session
10 Callbox setup
11 Current testing is performed on Agilent 8960 or Anritsu MT8820
12 Set band to GSM900; cell power must be set somewhere between -45 and -65 dBm
13 Set Channel mode to TCH/F (full rate TCH)
14 Device setup
15 To make a call:
16 1. Use the Call Manager screen in QDXM Pro.
17 2. Set the phone number, e.g., to 1234, and make sure that the service option matches the
18 callbox setting.
19 3. Click Call to start a call; for MT, originate the call from the test box.
1 Device setup
2 To make a call:
3 1. Insert a SIM (test SIM can also be used)
4 2. Power up the device; Enter mode online in QXDM Pro command bar if necessary
5 3. The UE camps on GPRS cell and ATTACH
6 4. Initiate Test mode A data call; hit Start Data Connection; bottom of screen must display
7 TRANSFERRING
11 Callbox setup
12 Agilent 8960
13 Call box setup
14 – Call Control/Security Info/Security Parameters/Security Operations – None
15 – Call Parms/Cell Power – -50.00 dBm
16 – Call Parms/Channel Type – 12.2 KRMC
17 – Call Parms/Paging Service – AMR Voice
18 Test results – MO and MT passed 5/5
19 Anritsu 8480C
20 Callbox setup
21 – Station Globals – Spec_Release – 3; HSDPA – FALSE; EUL – FALSE
22 Anritsu 8820
23 Callbox setup
24 – Call Processing – On
25 – Test Loop Mode – Off
26 – Signal/Channel Coding – Voice
27 Device setup
28 To make a call (MO):
29 1. After starting firmware and software, attach the USB and then do a “mode online” from
30 QXDM Pro command bar
31 2. Allow the mobile to acquire and register to network
32 3. Start a call using the Call Manager dialog in QXDM Pro
33 4. Set Technology to WCDMA
8 Callbox
9 Agilent 8960
10 Callbox setup
11 – Call Parms/Channel Type – HSPA
12 Test results – DUN data calls passed with ~384 kbps throughput; QMI not tried
13 Anritsu 8480C
14 Callbox setup
15 – Station Globals – Spec_Release – 5; HSDPA – TRUE; EUL – FALSE
16 Test results – DUN data calls was up but crashed later; QMI not tried
17 Anritsu 8820
18 Callbox setup
19 – Call processing – On
20 – Test Loop Mode – Mode 1
21 – Signal/Chanel Coding – Fixed reference channel
22 Device setup
23 To make a call:
24 1. Allow UE register to network
25 2. Click “Connect/Dial” on USB (DUN) or QMICM to initiate data call
26 3. Run iPerf or FTP applications to test throughput (we tested with FTP)
1 TDS RRC integrity protection enabled (66011) – Set to 0; set to 1 for a live network
2 TDS RRC ciphering enabled (66012) – Set to 0; set to 1 for a live network
3 TDS RRC fake security status (66013) – Set to 0; set to 1 for a live network
4 TDS RRC special frequency enabled (66014) – Set to 0
5 TDS RRC PDCP disabled (66016) – Set to 1
6 TDS RRC version (66017) – Set to 3
7 TDS RRC HSDPA category (66020) – Set to 15
8 TDS RRC NV version (66023) – Set to 2
9 TDS RRC optional feature bitmasks (66024) – Set to 0x3F
10 TDS RRC Special Test Setting Enabled (69731) – Set to 0; set to 1 when entering MTNet and
11 CMCC tests
12 Callbox
13 Agilent 8960
14 Callbox setup
15 – Cell Power – -45.00 dBm
16 – Channel Type – 12.2K RMC SC
17 – Paging Service – AMR Voice
18 – Channel – Desired band/channel
19 – Screen2 – Cell Info → Cell Parameters → PS Domain Information → Present
20 Anritsu 8820
21 Callbox setup
22 – Call processing – On
23 – Test Loop Mode – Mode 1
24 – Signal/Chanel Coding – Fixed reference channel
25 Device setup
26 To make a call:
27 1. Configure the test equipment using the settings mentioned in Section 5.4.8 and check that the
28 signal is acquired.
29 a. MO and MT Calls - Initiate the MO call from device and MT call from the test
30 equipment.
31 2. Send/receive SMS from/to device and test equipment.
32 3. DUN call using a dial-up connection “PS on USB” setup a DUN data Call.
33 4. Browse data from web browser to data session.
6 Callbox setup
7 Aeroflex
8 Cal box setup
9 – Under home screen, select Mode as Callbox Mode
10 – Select Parameter Config Tab.Parameter Group → Select System → Band ID Ex: For
11 TDD Testing:38 and For FDD Tsting:1
12 – Under Parameter Group select Layer 3 → MCC 001 and MNC 01 based on the SIM
13 configuration.
14 Anritsu 8820
15 Callbox setup
16 – Call Processing – On
17 – Test Loop Mode – Off
18 – Signal/Channel Coding – Required LTE band/channel
19 – Start Call
20 Device setup
21 To make a call:
22 1. Connect primary and secondary RFs to the respective ports.
23 2. Run mode LPM in QXDM.
24 3. Click Registry software ICON.
25 4. Click Application software ICON.
26 5. In Apps software, open TC and run.
27 6. Click Analyzer → Run. A message appears, “Please power on the phone” in application
28 software.
29 7. Run mode online in QXDM.
30 The UE registers to the network with status in Conversation state.
31 8. Verify browsing by opening a web page.
4 Operation procedures
5 Running offline RF Dev requires QPSR, see [Q13] for complete details
11 5.6.2 Display
12 For display panel bring-up and driver porting-related information, see [Q25]. [Q25] describes
13 application usage of the Display Serial Interface (DSI) panel bring-up for the Android OS. It also
14 provides sample code and PLL calculation pertaining to the DSI Mobile Industry Processor
15 Interface (MIPI) panel bring-up. For details on Linux Android display driver porting, see [Q26].
16 5.6.3 Camera
17 To verify the camera features, the Android default camera application is used. For details related
18 to sensor driver porting and migration, refer to [Q31].
19 For techniques on debugging different kinds of camera errors, refer to [Q32].
20 This section will be included in a future revision of this document.
21 5.6.4 Video
22 To verify the playback of various video formats, the Android default video player application is
23 used.
24 This section will be included in a future revision of this document.
8 6.2 FactoryKit
9 The FactoryKit is an Android application used for MMI test. It functions similar to FastMMI, but
10 with longer boot-up time. The FactoryKit is used on customer devices and all QRD SKU devices.
2 The Android device tree structure, for example, the <Android device tree root>, is laid out as
3 follows:
4 build/ – Build environment setup and makefiles
5 bionic/ – Android C library
6 dalvik/ – Android JVM
7 kernel/ – Linux kernel
8 framework/ – Android platform layer (system libraries and Java components)
9 system/ – Android system (utilities and libraries, fastboot, logcat, liblog)
10 external/ – Non-Android-specific Open Source projects required for Android
11 prebuilt/ – Precompiled binaries for building Android, e.g., cross-compilers
12 packages/ – Standard Android Java applications and components
13 development/ – Android reference applications and tools for developers
14 hardware/ – HAL (audio, sensors) and Qualcomm specific hardware wrappers
15 vendor/qcom/ – Qualcomm target definitions, e.g., msm7201a_surf
16 vendor/qcom-proprietary/ – Qualcomm-proprietary components, for example, MM, QCRIL,
17 etc.
18 out/ – Built files created by user
19 out/host/ – Host executables created by the Android build
20 out/target/product/<product> – Target files
21 appsboot*.mbn – Applications boot loader
22 boot.img – Android boot image (Linux kernel + root FS)
23 system.img – Android components (/system)
24 userdata.img – Android development applications and database
25 root/ – Root FS directory, which compiles into ramdisk.img and merged into boot.img
26 system/ – System FS directory, which compiles into system.img
27 obj/ – Intermediate object files
28 include/ – Compiled include files from components
29 lib/
30 STATIC_LIBRARIES/
31 SHARED_LIBRARIES/
32 EXECUTABLES/
33 APPS/
34 symbols/ – Symbols for all target binaries
6 NOTE: In theory, it is possible to use –jn as long as ‘n’ is smaller than the number of processors in
7 the server where the build is being created.
11 make clean
12 b. To remove all generated files:
13
14 make distclean
20 make -j4
21
27 To build all of the modules in the current directory, change to the component directory
28 and use the command:
29
30 Mm
31
1 5. To delete individual component object files, choose one of the following options:
2 To delete a particular module, use the command:
3
4 m clean-<module name>
5
8 rm -rf out/target/product/*/obj/STATIC_LIBRARIES/
9 <module name>_intermediates
10 rm -rf out/target/product/*/obj/SHARED_LIBRARIES/
11 <module name>_intermediates
12 rm -rf out/target/product/*/obj/EXECUTABLES/
13 <module name>_intermediates
17 NOTE: Paths in Android.mk are always relative to the Android device tree root directory.
18 Adding a module
19 To add a new module to the Android source tree, perform the following steps:
20 1. Create a directory to contain the new module source files and Android.mk file.
21 2. In the Android.mk file, define the LOCAL_MODULE variable with the name of the new
22 module name to be generated from the Android.mk.
23 For Applications modules, use LOCAL_PACKAGE_NAME instead.
24 3. Set the local path in the new module by inserting the following as the first line in the
25 Android.mk file:
26
29 NOTE: The local path in the new module is LOCAL_PATH. This is the directory where the Android.mk
30 file is available.
3 LOCAL_SRC_FILES := \
4 file1.cpp \
5 dir/file2.cpp
6 NOTE: The build system looks at LOCAL_SRC_FILES to find out which source files to
7 compile, .cpp, .c, .y, .l, and/or .java. For .lex and .yacc files, the intermediate .h and .c/.cpp files
8 are generated automatically. If the files are in a subdirectory of the one containing the
9 Android.mk file, it is necessary to prefix them with the directory name
14 LOCAL_STATIC_LIBRARIES := \
15 libutils \
16 libtinyxml
17
18 LOCAL_MODULE_PATH – Instructs the build system to put the module somewhere other
19 than what is normal for its type. If you override this, ensure to set
20 LOCAL_UNSTRIPPED_PATH if it is an executable or a shared library so the unstripped
21 binary also has somewhere to go; otherwise, an error occurs.