`
zhonglunshun
  • 浏览: 138995 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Linux下编译和安装android系统

 
阅读更多

 

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.6jdk,我之前安装的是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/genericAndroid镜像存放目录, 下面执行emulator命令时会用到。

 

2.2运行模拟器

 


模拟器运行需要四个文件,分别是Linux
Kernel镜像zImageAndroid镜像文件system.imguserdata.imgramdisk.img。执行emulator
命令时,如果不带任何参数,即只输入emulator命令,则Linux
Kernel镜像默认使用~/Android/prebuilt/android-arm/kernel目录下的kernel-qemu文件,而
Android镜像文件则默认使用ANDROID_PRODUCT_OUT目录下的system.imguserdata.imgramdisk.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 ,即:

emulator -partition-size 1024 -system sytem.img -data userdata.img -ramdisk ramdisk.img
还是不行,然后我又修改成除了chmod 777 外,还需要执行时加上绝对路径,最终执行的代码如下:
$ emulator -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7 -sysdir ./out/target/product/generic -partition-size 1024 -system system.img -data userdata.img -ramdisk ./out/target/product/generic/ramdisk.img
 到了这里,我们已经指定内核运行我们编译好的安卓系统了,有没有很开心啊?有啊 有啊。
分享到:
评论

相关推荐

    在Linux下编译FFmpeg+android ndk成功的脚本及so库

    本文将详细介绍如何在Linux系统下使用NDK编译FFmpeg,并生成适用于Android的.so库。主要涉及的知识点包括: 1. **FFmpeg框架**:FFmpeg提供了多种音视频编解码器,如H.264、AAC等,以及各种格式的容器支持,如MP4、...

    交叉编译arm Linux环境下的android-tools-adb

    交叉编译arm Linux环境下的android-tools-adb工具,本资源包含了完整的Ubuntu1604平台下的android-tools-adb源码包,openssl源码包,zlib源码包。以及完整的编译说明和指导,按照说明操作,可以轻松生成arm平台下可...

    从Android NDK安装ARM交叉编译工具链

    从Android NDK安装ARM交叉编译工具链涉及的技术领域包括Android开发、交叉编译、NDK使用、ARM架构以及Linux环境下的编译工具使用。以下是详细的知识点解析: Android NDK(Native Development Kit)是Android应用...

    Android项目编译系统

    Android平台的编译系统基于Linux下的Makefile原理,并结合了Google开发的编译工具和技术。Android编译系统使用了一套专门的编译工具,包括Java编译器、Android Asset Packaging Tool (AAPT)、Android NDK等。 一、...

    在Ubuntu上下载、编译和安装Android最新内核源代码

    ### 在Ubuntu上下载、编译和安装Android最新内核源代码 #### 一、环境准备与源代码获取 为了能够顺利地在Ubuntu环境下下载、编译并安装Android最新的内核源代码,首先需要确保系统环境已经准备好,并且安装了必要...

    编译live555 android动态库(Android.mk)

    将live555源码编译成可供android-ndk使用的动态库 1、linux下新建jni, 将Android.mk、build....2、linux下编译live555, 在linux交叉编译环境已经配置好的情况下,直接在jni目录执行脚本build.sh即可生成live555.so库。

    linux下android apk反编译工具

    linux下的android apk反编译工具,仅用于学习!使用详情请参考如下文章:http://blog.csdn.net/ljianhui/article/details/38985441

    MTK android 编译环境搭建

    这将包含用于交叉编译Android系统所需的所有工具。 三、安装JDK Java Development Kit (JDK) 是Android开发不可或缺的部分。这里推荐下载Oracle的JDK 6u32的64位版本,并将其解压到/opt/目录下。通过赋予可执行权限...

    安卓Android源码——系统源码获取及编译.zip

    这份名为“安卓Android源码——系统源码获取及编译”的压缩包文件,显然提供了关于如何获取和编译Android系统源码的教程。接下来,我们将详细探讨这个主题。 首先,获取Android源码主要涉及Git工具的使用。Android...

    Android交叉编译环境&Iperf3;.0源码编译

    本文将详细阐述如何在Linux环境下搭建Android交叉编译环境,并针对iperf3.0源码进行编译,以生成适用于Android系统的可执行文件。 首先,交叉编译是指在一个平台上构建另一个平台上的软件。对于Android,我们通常在...

    linux下android反编译工具

    在Linux环境下,Android应用的逆向工程通常涉及一系列工具,以理解APK文件的内部结构、提取资源、查看和修改代码。本篇文章将详细介绍如何利用`apktool`、`dex2jar-2.0`和`jd-gui-0.3.5`这三款强大的工具来对Android...

    编译安装安卓内核

    编译安装安卓内核是 Android 系统中一个非常重要的步骤,它涉及到 Linux 内核的编译、配置和安装。在本文中,我们将逐步详细地描述如何编译、配置和安装一个定制的 Android 内核。 编译安装安卓内核的必要性 在 ...

    在Ubuntu上下载、编译和安装Android最新源代码

    综上所述,通过上述步骤可以在Ubuntu环境下成功地下载、编译和安装Android最新源代码。这为开发者提供了一个强大的平台来进行自定义开发和研究,有助于深入理解Android操作系统的内部实现细节。

    高通搭建android编译环境的方法

    为了支持开发者在高通硬件平台上进行Android操作系统的定制和开发,高通提供了一套详细的指导文档来帮助开发者搭建和编译Android环境。本文档涵盖了从环境搭建到Android系统编译以及固件刷写等全过程。 在环境搭建...

    ubuntu11.10(64位)虚拟linux系统下 ---修改编译android工程

    在Ubuntu 11.10 64位操作系统上,如果你想要修改并编译一个Android 2.3.5(Gingerbread)工程,这里提供了一步步的详细指南。首先,你需要下载Android 2.3.5的源代码并将其解压到/home/xxx/android2.3/source目录下...

    linux下android反编译

    在Linux系统下,由于其开放性和强大的命令行工具,进行反编译操作更加方便。 标题中的“Linux下Android反编译”涉及到两个主要步骤:解析资源文件和解析Java文件。 1. **解析资源文件**: 这一步骤通常使用...

    Ubuntu系统下Android源码编译.pdf

    本文将深入探讨Ubuntu系统下Android源码的编译过程,包括必要的软件安装、环境变量配置、源码获取以及编译过程中可能遇到的问题及其解决方法。 首先,要进行Android源码编译,必须确保Ubuntu系统已安装了基础的开发...

    【QGIS跨平台编译】之【PDAL跨平台编译】:Linux环境下编译成果(支撑QGIS跨平台编译,以及二次研发)

    QGIS可以在Windows、Mac OS和Linux等操作系统上运行。 QGIS的跨平台编译需要一系列开源库的支持,本系列提供QGIS相关的编译成果。 本资源的内容为:基于Qt的PDAL跨平台编译成果(Linux版本)。 二、使用人群 QGIS...

    android内核交叉编译工具

    交叉编译Android内核的过程通常包括以下几个步骤: 1. 获取内核源码:从Android开源项目(AOSP)仓库或设备制造商提供的源码中获取。 2. 配置内核:使用 `make menuconfig` 或 `make xconfig` 命令,根据设备需求...

    Windows10下通过VM搭建Ubuntu下Android系统编译环境

    在Windows 10下搭建适用于编译Android系统的Ubuntu虚拟环境是一项涉及多个步骤的复杂任务。本文将详细说明在Windows 10环境下利用VMware虚拟机软件安装Ubuntu系统,并在Ubuntu中设置Android系统编译环境的过程。 ...

Global site tag (gtag.js) - Google Analytics