adb,全称 Android Debug Bridge,是 Android 的命令行调试工具,可以完成多种功能,如跟踪系统日志,上传下载文件,安装应用等。
首先参照安装 RK USB 驱动一节安装好驱动。然后到 http://adbshell.com/download/download-adb-for-windows.html 下载 adb.zip,解压到C:\adb以方便调用。 打开命令行窗口,输入:
如果一切正常,就可以进入adbshell,在设备上面运行命令。
-
安装 adb 工具:
-
加入设备标识:
-
加入 udev 规则:
-
重新插拔 USB 线,或运行以下命令,让 udev 规则生效:
-
重新启动 adb 服务器
连接管理
列出所有连接设备及其序列号
如果有多个连接设备,则需要使用序列号来区分:
多设备下连接指定设备
可以通过网络来连接 adb:
获取系统日志 adb logcat
-
用法
-
示例
运行命令 adb shell
获取详细运行信息 adb bugreport
adbbugreport用于错误报告,里面包含大量有用的信息。
-
示例
root 权限
如果 TARGET_BUILD_VARIANT 使用的是 userdebug 模式,要获得 root 权限,需要先运行:
让 adb 的设备端切换到 root 权限模式,这样 adb remount 等需要 root 权限的命令才会成功。
安装应用 adb install
-
用法:
选项包括:
-
示例:
如果安装成功,工具会返回成功提示 “Success”;失败的话,一般是以下几种情况:
-
INSTALL_FAILED_ALREADY_EXISTS: 此时需要用 -r 参数来重新安装。
-
INSTALL_FAILED_SIGNATURE_ERROR: 应用的签名不一致,可能是发布版和调试版签名不同所致。如果确认 APK 文件签名正常,可以用 adb uninstall 命令先卸载旧的应用,然后再安装。
-
INSTALL_FAILED_INSUFFICIENT_STORAGE: 存储空间不足,需要检查设备存储情况。
卸载应用 adb uninstall
-
用法:
-
示例:
应用包名称可以用以下命令列出:
运行结果是:
前面是 apk 文件,后面则是对应的包名称。
命令行帮助信息 adb help
编译 Android 对机器的配置要求较高:
官方推荐 Ubuntu 14.04 操作系统,经测试,Ubuntu 12.04 也可以编译运行成功,只需要满足 http://source.android.com/source/building.html 里的软硬件配置即可。编译环境的初始化可参考 http://source.android.com/source/initializing.html 。
-
安装 OpenJDK 8:
提示:安装 openjdk-8-jdk,会更改 JDK 的默认链接,这时可用:
来切换 JDK 版本。SDK 在找不到操作系统默认 JDK 的时候会使用内部设定的 JDK 路径,因此,为了让同一台机器可以编译 Android 5.1 及之前的版本,去掉链接更方便:
-
Ubuntu 12.04 软件包安装:
-
Ubuntu 14.04 软件包安装:
Android SDK 源码包比较大,可以通过如下方式获取Android8.1源码包:
-
[下载链接]
下载完成后先验证一下 MD5 码:
确认无误后,就可以解压:
注意:解压后务必要先更新下远程仓库。 以下为从 gitlab 处更新的方法:
lvds显示编译
手动编译AIO-Px30-JD4
编译前执行如下命令配置环境变量:
-
编译kernel:
-
编译uboot:
-
编译android:
编译完可以用Firefly官方的脚本打包成统一固件,执行如下命令:
打包完成后将在rockdev/Image-px30_evb/下生成统一固件:PX30_Android8.1.0_LVDS_xxxxxx.img
在 Windows 下打包统一固件 update.img 也很简单,将编译生成的文件拷贝到 AndroidTool 的 rockdev\Image 目录中,然后运行 rockdev 目录下的 mkupdate.bat 批处理文件即可创建 update.img 并存放到 rockdev\Image 目录里。
编译的时候执行 ./mkimage.sh 会重新打包 boot.img 和 system.img, 并将其它相关的映像文件拷贝到目录 rockdev/Image-px30_firefly_aiojd4/ 中。以下列出一般固件用到的映像文件:
-
boot.img :Android 的初始文件映像,负责初始化并加载 system 分区。
-
kernel.img :内核映像。
-
misc.img :misc 分区映像,负责启动模式切换和急救模式的参数传递。
-
parameter.txt :emmc的分区信息
-
recovery.img :急救模式映像。
-
resource.img :资源映像,内含开机图片和内核的设备树信息。
-
system.img :Android 的 system 分区映像,ext4 文件系统格式。
-
trust.img :休眠唤醒相关的文件
-
MiniLoaderAll.bin :Loader文件
-
uboot.img :uboot文件
-
oem.img :预置媒体资源及数据包
-
vendor.img :产品标识和驱动
请参照 如何升级固件 一文来烧写分区映像文件。
如果使用的是 Windows 系统,将上述映像文件拷贝到 AndroidTool (Windows 下的固件升级工具)的 rockdev\Image 目录中,之后参照升级文档烧写分区映像即可,这样的好处是使用默认配置即可,不用修改文件的路径。
update.img 方便固件的发布,供终端用户升级系统使用。一般开发时使用分区映像比较方便。
定制 Android 固件,有两种方法:
-
改源码,然后编译生成固件。
-
在现有固件的基础上进行裁剪。
前一种方法,可以从各个层面去定制 Android,自由度大,但对编译环境和技术要求比较高,参见以上《编译 Android8.1 固件》一文。现在介绍后一种方法,分为解包、定制和打包三个阶段。主机操作系统为 Linux,采用的工具为开源软件。
统一固件 release_update.img,内含启动加载器 loader.img 和真正的固件数据 update.img
update.img 是个复合文件,内含多个文件,由 package-file 描述。一个典型的 package-file 为:
-
package-file
-
update.img 的打包说明文件,update.img 里也含有一份 package-file。
-
Image/MiniLoaderAll.bin 启动加载器,即 bootloader。
-
Image/parameter.txt 参数文件,可以设定内核启动参数,里面有重要的分区信息。
-
Image/trust.img 是U-Boot作为二级loader 的打包。
-
Image/misc.img misc 分区的映像,用来控制 Android 是正常启动,还是进入急救模式(Recovery Mode)。
-
Image/kernel.img Android 内核。
-
Image/resource.img 资源映像,内有内核开机图片和内核设备树信息(Device Tree Blob)。
-
Image/boot.img Android 内核的内存启动盘(initrd),是内核启动后最先加载的根文件系统,包含重要的初始化动作,一般不需要改动。
-
Image/recovery.img Android 急救模式的映像,内含内核和急救模式的根文件系统。
-
Image/system.img 对应于 Android 的 /system 分区,是以下的定制对象。
解包,就是提取 release_update.img 里的 update.img, 然后解压出内含 package-file 所声明的多个文件。打包,则是个逆过程,将 package-file 将所列的多个文件合成 update.img,加进 loader.img,最终生成 release_update.img 。
-
解压 release_update.img
-
解压 update.img
-
查看 update 目录下的文件树
这样,固件就解包成功了,下面就开始定制吧。
打包
首先要检查一下 system.img 的大小,对照 parameter 文件的分区情况(可参考文档Parameter 文件格式,作必要的大小调整。例如,parameter.txt 文件里的 system 分区大小,可以找到 CMDLINE 一行,然后找到 system 字符串:
@ 前面就是分区的大小,单位是 512 字节,这样该 system 分区的大小就是:
只要 system.img 的大小不超过 1024M,parameter 文件就不用更改。如果分区不用更改,可以直接用烧写工具将新的 system.img 烧写到开发板的 system 分区上做试验。否则,需要制作新固件并烧写后再行测试。以下是打包成统一固件 update.img 所需要的步骤:
-
合成 update.img :
-
合成 release_update.img :
release_update_new.img 即为最终生成的可烧写的统一固件文件。
固件的版本在哪设置
在 parameter 文件中找到下行并修改即可,注意版本号为数字,中间两个点号不能省略。
-
嵌入式主板
+关注
关注
7文章
6107浏览量
36933 -
安卓
+关注
关注
5文章
2178浏览量
59846 -
Firefly
+关注
关注
2文章
546浏览量
9001
发布评论请先 登录
AIO-PX30-JD4核心板上手教程
fireflyCORE-PX30-JD4接口定义介绍
fireflyCORE-PX30-JD4烧写固件简介
fireflyCORE-PX30-JD4产品简介
Core PX30 JD4 AndroidTools烧写工具
Core PX30JD4工具Linux upgrade tool文件分享
Core PX30 JD4工具DriverAssitant驱动助手
Core PX30 JD4 Android 8.1 SDK源码分享
Core PX30 JD4固件Android 8.1固件分享
Core PX30 JD4固件Buildroot(GPT)文件分享
Core PX30 JD4固件Ubuntu(GPT)文件分享
Core PX30 JD4资源linux headers文件分享

fireflyCORE-PX30-JD4Android开发简介
评论