高通平台开发环境搭建、编译、烧录(android5.1以上系统)
以MSN8937为例
1. 安装Ubuntu(12.04LTS以上稳定版本)
安装过程中必须以根用户登录或使用sudo获取root权限。
1.1按照http://releases.ubuntu.com中的说明,创建安装光盘,将其安装到计算机上。
1.2. 安装完成后,通过下列选项之一来更新软件:
使用GUI,选择System > Administration > Update Manager
使用shell命令行
i. 如下所示直接编辑源代码的config文件:
sudo vi /etc/apt/sources.list
ii. 编辑文件以启用通用和多元源,并禁用Ubuntu安装光盘源。
iii. 在命令行中,执行软件包列表更新和软件包升级:
sudo apt-get update
sudo apt-get upgrade
1.3. 使用apt-get安装所需的其他软件包。
$ sudo apt-get install git-core gnupg flex bison gperf build-essential
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc
1.4. 重要!按以下选项之一,将bash设为默认shell(Android生成脚本依赖于bash shell,要求系统默认shell /bin/sh调用bash):
重新配置软件包:
i. 使用命令:
sudo dpkg-reconfigure dash
ii. 回答no。
使用以下命令,将符号链接/bin/sh→dash手动更改为/bin/sh→bash:
sudo rm /bin/sh
sudo ln -s /bin/bash /bin/sh
2 为Windows 共享配置Samba (可选)
2.1. 使用以下命令为Windows共享安装Samba服务器和配置管理器:
sudo apt-get install samba system-config-samba
2.2. 通过以下方法配置Samba服务器:
System->Administration->Samba
preferences->server settings:
vmgroup, security=user authentication
encrypt pw=yes, guest accnt=no guest accnt
add share directory=/, share name=root, description=root directory
3 安装JDK
Ubuntu的主软件包存储库中不再包含Sun JDK。如需下载,可添加适当的存储库,并指示系统使用该JDK。
sudo add-apt-repository “deb http://archive.canonical.com/ lucid partner”
sudo apt-get update
sudo apt-get install sun-java6-jdk
4 手动编译Linux 内核
4.1. 转到主Android主目录。
4.2. 设置Android生成环境:
source build/envsetup.sh
lunch msm8937_64-userdebug (64-bit kernelspace and 64-bit user space)
或
lunch msm8937_32-userdebug (32-bit kernelspace and 32-bit user space)
4.3. 使用以下命令生成内核映像:
make kernel
生成的内核映像显示于out/target/product/工程名/boot.img
5 手动编译Android
5.1. 设置Android生成环境(envsetup.sh/lunch)。
5.2. 转到Android主目录。
5.3. 使用以下命令进行编译:
make -j4
5.4. 要编译单个组件,选择下列选项之一:
要从树顶部运行make,可使用以下命令:
m <component name> # E.g. m libril-qc-1
要编译当前目录中的所有模块,转到组件目录并使用以下命令:
mm
5.5. 要删除单个组件对象文件,选择下列选项之一:
要删除某个特定模块,使用以下命令:
m clean-<module name>
要删除指定路径中的某个模块,使用以下命令:
rm -rf out/target/product/*/obj/STATIC_LIBRARIES/<module name>_intermediates
rm -rf out/target/product/*/obj/SHARED_LIBRARIES/<module name>_intermediates
rm -rf out/target/product/*/obj/EXECUTABLES/<module name>_intermediates
6 其他重要Android 编译命令
printconfig – 按照choosecombo命令中的设置打印当前配置。
m – 从树顶部运行make。此命令很有帮助,因为用户能够从子目录中运行make。
如果具有TOP环境变量集,则命令将使用该集。如果没有TOP变量集,则命令将从
当前目录开始查看整个树,并尝试查找树的顶部。
- mm – 在当前目录中生成所有模块。
- mmm – 在提供的目录中生成所有模块。
croot – cd到树顶部。
sgrep – 针对当前目录下的所有.c、.cpp、.h、.java和.xml文件中提供的正则表达式执行grep。
clean-$(LOCAL_MODULE)和clean-$(LOCAL_PACKAGE_NAME)
允许有选择性地清理一个目标。例如,可以键入make clean-libutils,这将会删除libutils.so和所有中间文件;或者键入make clean-Home,这将仅清除Home应用
程序。
make clean – 彻底删除此配置的所有输出和中间文件。此命令等同于rm -rf out/<configuration>/。
Android makefile (Android.mk)具有以下特性:
类似于常规GNU makefile;不同之处在于:
要为源文件分配的预定义变量,包括路径、编译器标记、库包含等。
预定义操作,用于编译可执行文件、共享库、静态库、Android软件包以及使用预编译的二进制代码等。
7 使用YGDP量产工具刷写eMMC
编译加载
步骤的详细信息如下所述:
7.1. 确保已关闭QPST和QXDM Pro,J-Tag/T32从设置中断开连接。
7.2 打开命令提示符,然后运行以下命令:
C:\>adb reboot bootloader
C:\>fastboot devices
65144579 fastboot
7.3. 从Start菜单启动YGDP。且USB 端口位于Windows设备管理器列表中。
7.4 打开配置文件并选择cpb文件
7.5 YGDP自动获取CPB文件配置,选择开始,并开始下载
7.6 下载完后,机器会自动重启或者 adb reboot