Linux下编译和安装android系统
上一篇文章说到我们已经下载好了android源码并解压,接下来我们terminal进到解压后的目录。利用make命令,开始编译android系统。
1.编译android系统
结果报错了:Your version is: java version "1.6.0_24". The correct version is: Java SE 1.6。原来是需要1.6的jdk,我之前安装的是1.7的。解决办法如下:
$sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu hardy-security main multiverse" $ sudo apt-get update $ sudo apt-get install sun-java6-jdk
在终端中执行:make -j4
-j4:表示用四个线程来编译,这样相对能快点:
恩,不错,开始编译了。编译时间比较长,我们可以去睡个觉。编译好的东西放在这个目录下
larson@larson-pc ~/Android_Dev/Android4_4source/out/target/product/generic $ ls android-info.txt cache.img data fake_packages obj ramdisk.img symbols system.img cache clean_steps.mk dex_bootjars installed-files.txt previous_build_config.mk root system userdata.img
PS:经过多次测试之后,我发现这个make编译可以断点续编,因此如果突然断电,没有关系,继续编译就好了,总有一天会编译成功的!完了以后我这里出现了个这:
+ echo make_ext4fs -S out/target/product/generic/root/file_contexts -l 69206016 -a cache out/target/product/generic/cache.img out/target/product/generic/cache make_ext4fs -S out/target/product/generic/root/file_contexts -l 69206016 -a cache out/target/product/generic/cache.img out/target/product/generic/cache + make_ext4fs -S out/target/product/generic/root/file_contexts -l 69206016 -a cache out/target/product/generic/cache.img out/target/product/generic/cache Creating filesystem with parameters: Size: 69206016 Block size: 4096 Blocks per group: 32768 Inodes per group: 4224 Inode size: 256 Journal blocks: 1024 Label: Blocks: 16896 Block groups: 1 Reserved block group size: 7 Created filesystem with 11/4224 inodes and 1302/16896 blocks + '[' 0 -ne 0 ']' out/target/product/generic/cache.img maxsize=70654848 blocksize=2112 total=69206016 reserve=713856
代表编译成功,恭喜恭喜!
2.安装编译好的Android镜像到模拟器上
2.1设置环境变量
$export PATH=$PATH:~/Android_Dev/android4_4source/out/host/linux-x86/bin $export ANDROID_PRODUCT_OUT=~/Android_Dev/android4_4source/out/target/product/generic
其中,~/Android_Dev/android4_4source/out/host/linux-x86/bin
有我们要执行的emulator命令 ,而
~/Android_Dev/android4_4source/out/target/product/generic
是Android镜像存放目录, 下面执行emulator命令时会用到。
2.2运行模拟器
模拟器运行需要四个文件,分别是Linux Kernel镜像zImage和Android镜像文件system.img、userdata.img和ramdisk.img。执行emulator 命令时,如果不带任何参数,即只输入emulator命令,则Linux Kernel镜像默认使用~/Android/prebuilt/android-arm/kernel目录下的kernel-qemu文件,而 Android镜像文件则默认使用ANDROID_PRODUCT_OUT目录下的system.img、userdata.img和ramdisk.img, 也就是我们刚刚编译出来的镜像问题。
我们也可以以指定的镜像文件来运行模拟器,即运行emulator时,即:
$emulator -kernel ./prebuilt/android-arm/kernel/kernel-qemu -sysdir./out/target/product/generic -system system.img -data userdata.img -ramdisk ramdisk.img
不同版本的android源码的kenel文件可能在不同位置,上面那个是android2.3的,而4.0的则是这样的:
$ emulator -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu -sysdir ./out/target/product/generic -system system.img -data userdata.img -ramdisk ramdisk.img执行之后,我这里报了一个错误:
qemu: could not load initrd 'ramdisk.img'
于是,我按照网上说的办法,把-ramdisk ramdisk.im去掉,模拟器果然跑起来了,可是进不去系统,然后呢。。。我又百度,然后说需要chmod 777 generic/,执行之,有个系统分区太小的错误
emulator: WARNING: system partition size adjusted to match image file (550 MB > 200 MB)
然后我百度找到的答案是,emulator 加入参数 -partition-size 1024 ,即:
相关推荐
本文将详细介绍如何在Linux系统下使用NDK编译FFmpeg,并生成适用于Android的.so库。主要涉及的知识点包括: 1. **FFmpeg框架**:FFmpeg提供了多种音视频编解码器,如H.264、AAC等,以及各种格式的容器支持,如MP4、...
交叉编译arm Linux环境下的android-tools-adb工具,本资源包含了完整的Ubuntu1604平台下的android-tools-adb源码包,openssl源码包,zlib源码包。以及完整的编译说明和指导,按照说明操作,可以轻松生成arm平台下可...
从Android NDK安装ARM交叉编译工具链涉及的技术领域包括Android开发、交叉编译、NDK使用、ARM架构以及Linux环境下的编译工具使用。以下是详细的知识点解析: Android NDK(Native Development Kit)是Android应用...
Android平台的编译系统基于Linux下的Makefile原理,并结合了Google开发的编译工具和技术。Android编译系统使用了一套专门的编译工具,包括Java编译器、Android Asset Packaging Tool (AAPT)、Android NDK等。 一、...
### 在Ubuntu上下载、编译和安装Android最新内核源代码 #### 一、环境准备与源代码获取 为了能够顺利地在Ubuntu环境下下载、编译并安装Android最新的内核源代码,首先需要确保系统环境已经准备好,并且安装了必要...
将live555源码编译成可供android-ndk使用的动态库 1、linux下新建jni, 将Android.mk、build....2、linux下编译live555, 在linux交叉编译环境已经配置好的情况下,直接在jni目录执行脚本build.sh即可生成live555.so库。
linux下的android apk反编译工具,仅用于学习!使用详情请参考如下文章:http://blog.csdn.net/ljianhui/article/details/38985441
这将包含用于交叉编译Android系统所需的所有工具。 三、安装JDK Java Development Kit (JDK) 是Android开发不可或缺的部分。这里推荐下载Oracle的JDK 6u32的64位版本,并将其解压到/opt/目录下。通过赋予可执行权限...
这份名为“安卓Android源码——系统源码获取及编译”的压缩包文件,显然提供了关于如何获取和编译Android系统源码的教程。接下来,我们将详细探讨这个主题。 首先,获取Android源码主要涉及Git工具的使用。Android...
本文将详细阐述如何在Linux环境下搭建Android交叉编译环境,并针对iperf3.0源码进行编译,以生成适用于Android系统的可执行文件。 首先,交叉编译是指在一个平台上构建另一个平台上的软件。对于Android,我们通常在...
在Linux环境下,Android应用的逆向工程通常涉及一系列工具,以理解APK文件的内部结构、提取资源、查看和修改代码。本篇文章将详细介绍如何利用`apktool`、`dex2jar-2.0`和`jd-gui-0.3.5`这三款强大的工具来对Android...
编译安装安卓内核是 Android 系统中一个非常重要的步骤,它涉及到 Linux 内核的编译、配置和安装。在本文中,我们将逐步详细地描述如何编译、配置和安装一个定制的 Android 内核。 编译安装安卓内核的必要性 在 ...
综上所述,通过上述步骤可以在Ubuntu环境下成功地下载、编译和安装Android最新源代码。这为开发者提供了一个强大的平台来进行自定义开发和研究,有助于深入理解Android操作系统的内部实现细节。
为了支持开发者在高通硬件平台上进行Android操作系统的定制和开发,高通提供了一套详细的指导文档来帮助开发者搭建和编译Android环境。本文档涵盖了从环境搭建到Android系统编译以及固件刷写等全过程。 在环境搭建...
在Ubuntu 11.10 64位操作系统上,如果你想要修改并编译一个Android 2.3.5(Gingerbread)工程,这里提供了一步步的详细指南。首先,你需要下载Android 2.3.5的源代码并将其解压到/home/xxx/android2.3/source目录下...
在Linux系统下,由于其开放性和强大的命令行工具,进行反编译操作更加方便。 标题中的“Linux下Android反编译”涉及到两个主要步骤:解析资源文件和解析Java文件。 1. **解析资源文件**: 这一步骤通常使用...
本文将深入探讨Ubuntu系统下Android源码的编译过程,包括必要的软件安装、环境变量配置、源码获取以及编译过程中可能遇到的问题及其解决方法。 首先,要进行Android源码编译,必须确保Ubuntu系统已安装了基础的开发...
交叉编译Android内核的过程通常包括以下几个步骤: 1. 获取内核源码:从Android开源项目(AOSP)仓库或设备制造商提供的源码中获取。 2. 配置内核:使用 `make menuconfig` 或 `make xconfig` 命令,根据设备需求...
在Windows 10下搭建适用于编译Android系统的Ubuntu虚拟环境是一项涉及多个步骤的复杂任务。本文将详细说明在Windows 10环境下利用VMware虚拟机软件安装Ubuntu系统,并在Ubuntu中设置Android系统编译环境的过程。 ...
在虚拟机 Ubuntu 下搭建 Android 编译环境,需要安装 Android 编译环境相关的包。这些包包括 Android SDK、Android NDK、Java JDK、Apache Ant 等。这些包的安装十分重要,因为它们是编译 Android 的基础。 五、 ...