导航:首页 > 操作系统 > androidbootable

androidbootable

发布时间:2024-07-07 05:36:56

android X86怎么安装

.首先在网络搜索Android X86,找到这个站点。里面会有最新的Android X86镜像提供。
2.当下载好镜像以后。新建一个虚拟机。先不要选择镜像文件,选择稍后安装操作系统。
3.客户机系统选择其他,版本也选择其他。

4.这一步是选择虚拟机名称和存储位置,可以根据个人喜好来设置。

5.这一步是设置磁盘容量,默认就好了。

6.保存以后,还要在设置一下。内存根据内存多少来设置,最好1G。然后找到CD/DVD选项,设置好镜像文件。1024MB=1G

7.然后启动虚拟机,选择最底下的一项。

8.接着在选择第一个选项。

9.接着新建一个分区,容量默认就好了。

10.选择bootable将这个分区设置成启动分区,然后选择write,输入YES。最后在选择Quit返回。

11.选择第一项,在选择EXT3分区。然后一路YES。最后安装完以后不要直接启动,选择第二项重启系统。

12.第一次重启会让选择语言,找到中文然后选择。跳过wifi选项,如果跳过wifi以后一直显示这个页面无法下一步。请右击右上角的图标断开连接,然后在返回WIFI选择重新跳过一遍就OK了。

13.当出现这个页面以后,重新连接。如果出现无法上网,请查看虚拟机网络设置选项是否为NAT模式。

❷ 电脑虚拟机怎么安装android

方法/步骤

1
安装好virtualbox之后,打开该程序,点击新建按钮,在弹出的对话框中,根据截图,分别填写相关信息,然后点击下一步

2
接着选择你刚刚下载的android系统的IOS文件,并选择启动,虚拟机会加载你选择的android系统的IOS文件,引导你安装android系统,在出现的选项界面中,选择安装选项

接着会再出现两个选项,请选择第一个,创建并修改分区,点击OK

在弹出的界面中,利用方向箭选择“New”,并按回车键确定

接着进入到下一个界面,在这个界面中,选择“Primary”,也就是将这个分区当作首要分区,然后按回车键确定;

接着来到另外一个界面,在这里,请利用方向键,选择“Bootable”(可启动的),然后按回车键,确认更改;接着用方向键,选择“Write”(写入),按回车键,以确认你对Bootable的更改;这时虚拟机可能要你输入yes并回车来进一步确认你是否要“写入”,如果这样,请输入yes,并再次按回车键;接着,选择Quit(退出),以重新回到选择分区的界面;

接着,你会看到界面上多了一个分区,其中一个便是你刚刚创建的分区,选择它,并按回车键,以确认将android系统安装在这个分区上;

接着,虚拟机会让你选择将分区格式化成什么格式,请选择ext3,并点击yes,也就是确定来确定更改;

然后一路点击确定,中间会出现等待的时间,这是系统在安装的过程中的时间,请耐心等待;

系统安装玩之后,按照截图所示,推出IOS文件,并重启虚拟机

重启虚拟机的过程中,android系统会像你打开windows系统那样自动启动,请按照提示一步一步的完成系统的设置

如果你发现鼠标无法控制andorid系统,请按照截图选择相应的选项,以让鼠标集成在android中,如果你希望鼠标分离出虚拟机,以控制windows系统,默认情况下是点击右边的ctrl键;
当你设置完所有的选项之后,你便进入到系统中了

❸ Android启动过程深入解析

当按下Android设备电源键时究竟发生了什么?

Android的启动过程是怎么样的?

什么是linux内核?

桌面系统linux内核与Android系统linux内核有什么区别?

什么是引导装载程序?

什么是Zygote?

什么是X86以及ARM linux?

什么是init.rc?

什么是系统服务?

当我们想到Android启动过程时,脑海中总是冒出很多疑问。本文将介绍Android的启动过程,希望能帮助你找到上面这些问题的答案。

Android是一个基于Linux的开源操作系统。x86(x86是一系列的基于intel 8086 CPU的计算机微处理器指令集架构)是linux内核部署最常见的系统。然而,所有的Android设备都是运行在ARM处理器(ARM 源自进阶精简指令集机器,源自ARM架构)上,除了英特尔的Xolo设备(http://xolo.in/xolo-x900-features)。Xolo来源自凌动1.6GHz x86处理器。Android设备或者嵌入设备或者基于linux的ARM设备的启动过程与桌面版本相比稍微有些差别。这篇文章中,我将解释Android设备的启动过程。深入linux启动过程是一篇讲桌面linux启动过程的好文。

当你按下电源开关后Android设备执行了以下步骤。

此处图片中step2中的一个单词拼写错了,Boot Loaeder应该为Boot Loader(多谢@jameslast 提醒)

第一步:启动电源以及系统启动

当电源按下,引导芯片代码开始从预定义的地方(固化在ROM)开始执行。加载引导程序到RAM,然后执行。

第二步:引导程序

引导程序是在Android操作系统开始运行前的一个小程序。引导程序是运行的第一个程序,因此它是针对特定的主板与芯片的。设备制造商要么使用很受欢迎的引导程序比如redboot、uboot、qi bootloader或者开发自己的引导程序,它不是Android操作系统的一部分。引导程序是OEM厂商或者运营商加锁和限制的地方。

引导程序分两个阶段执行。第一个阶段,检测外部的RAM以及加载对第二阶段有用的程序;第二阶段,引导程序设置网络、内存等等。这些对于运行内核是必要的,为了达到特殊的目标,引导程序可以根据配置参数或者输入数据设置内核。

Android引导程序可以在找到。

传统的加载器包含的个文件,需要在这里说明:

init.s初始化堆栈,清零BBS段,调用main.c的_main()函数;

main.c初始化硬件(闹钟、主板、键盘、控制台),创建linux标签。

更多关于Android引导程序的可以在这里了解。

第三步:内核

Android内核与桌面linux内核启动的方式差不多。内核启动时,设置缓存、被保护存储器、计划列表,加载驱动。当内核完成系统设置,它首先在系统文件中寻找”init”文件,然后启动root进程或者系统的第一个进程。

第四步:init进程

init是第一个进程,我们可以说它是root进程或者说有进程的父进程。init进程有两个责任,一是挂载目录,比如/sys、/dev、/proc,二是运行init.rc脚本。

init进程可以在/system/core/init找到。

init.rc文件可以在/system/core/rootdir/init.rc找到。

readme.txt可以在/system/core/init/readme.txt找到。

对于init.rc文件,Android中有特定的格式以及规则。在Android中,我们叫做Android初始化语言。

Action(动作):动作是以命令流程命名的,有一个触发器决定动作是否发生。

语法

1

2

3

4

5

; html-script: false ]

on <trigger>

<command>

<command>

<command>

Service(服务):服务是init进程启动的程序、当服务退出时init进程会视情况重启服务。

语法

1

2

3

4

5

; html-script: false ]

service <name> <pathname> [<argument>]*

<option>

<option>

...

Options(选项)

选项是对服务的描述。它们影响init进程如何以及何时启动服务。

咱们来看看默认的init.rc文件。这里我只列出了主要的事件以及服务。

Table

Action/Service

描述

on early-init

设置init进程以及它创建的子进程的优先级,设置init进程的安全环境

on init

设置全局环境,为cpu accounting创建cgroup(资源控制)挂载点

on fs

挂载mtd分区

on post-fs

改变系统目录的访问权限

on post-fs-data

改变/data目录以及它的子目录的访问权限

on boot

基本网络的初始化,内存管理等等

service servicemanager

启动系统管理器管理所有的本地服务,比如位置、音频、Shared preference等等…

service zygote

启动zygote作为应用进程

在这个阶段你可以在设备的屏幕上看到“Android”logo了。

第五步

java中,我们知道不同的虚拟机实例会为不同的应用分配不同的内存。假如Android应用应该尽可能快地启动,但如果Android系统为每一个应用启动不同的Dalvik虚拟机实例,就会消耗大量的内存以及时间。因此,为了克服这个问题,Android系统创造了”Zygote”。Zygote让Dalvik虚拟机共享代码、低内存占用以及最小的启动时间成为可能。Zygote是一个虚拟器进程,正如我们在前一个步骤所说的在系统引导的时候启动。Zygote预加载以及初始化核心库类。通常,这些核心类一般是只读的,也是Android SDK或者核心框架的一部分。在Java虚拟机中,每一个实例都有它自己的核心库类文件和堆对象的拷贝。

Zygote加载进程

加载ZygoteInit类,源代码:/frameworks/base/core/java/com/android/internal/os/ZygoteInit.java

registerZygoteSocket()为zygote命令连接注册一个服务器套接字。

preloadClassed “preloaded-classes”是一个简单的包含一系列需要预加载类的文本文件,你可以在/frameworks/base找到“preloaded-classes”文件。

preloadResources() preloadResources也意味着本地主题、布局以及android.R文件中包含的所有东西都会用这个方法加载。

在这个阶段,你可以看到启动动画。

第六步:系统服务或服务

完成了上面几步之后,运行环境请求Zygote运行系统服务。系统服务同时使用native以及java编写,系统服务可以认为是一个进程。同一个系统服务在Android SDK可以以System Services形式获得。系统服务包含了所有的System Services。

Zygote创建新的进程去启动系统服务。你可以在ZygoteInit类的”startSystemServer”方法中找到源代码。

核心服务:

启动电源管理器;

创建Activity管理器;

启动电话注册;

启动包管理器;

设置Activity管理服务为系统进程;

启动上下文管理器;

启动系统Context Providers;

启动电池服务;

启动定时管理器;

启动传感服务;

启动窗口管理器;

启动蓝牙服务;

启动挂载服务。

其他服务:

启动状态栏服务;

启动硬件服务;

启动网络状态服务;

启动网络连接服务;

启动通知管理器;

启动设备存储监视服务;

启动定位管理器;

启动搜索服务;

启动剪切板服务;

启动登记服务;

启动壁纸服务;

启动音频服务;

启动耳机监听;

启动AdbSettingsObserver(处理adb命令)。

第七步:引导完成

一旦系统服务在内存中跑起来了,Android就完成了引导过程。在这个时候“ACTION_BOOT_COMPLETED”开机启动广播就会发出去。

❹ android系统中,有关框架层的代码应该在以下哪个目录中

Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,下载的代码包经过解压后(这里是Android2.2的源码包),源代码的第一层目录结构如下:
|-- Makefile
|-- bionic (bionic C库)
|-- bootable (启动引导相关代码)
|-- build (存放系统编译规则及generic等基础开发包配置)

|-- cts (Android兼容性测试套件标准)
|-- dalvik (dalvik JAVA虚拟机)
|-- development (应用程清塌序开发相关)
|-- external (android使用的一些开源的模组)
|-- frameworks (旦碰核心框架——java及C++语言)
|-- hardware (主要保护硬解适配层HAL代码)
|-- libcore
|-- ndk
|-- device
|-- out (编译完成后的代码输出与此目录)
|-- packages (应用程序包)
|-- prebuilt (x86和arm架构下预编译的一些资源)
|-- sdk (sdk及模拟器)
|-- system (文件系统库、应用及组件——C语言)
`-- vendor (厂商定制代码)

bionic 目录

|-- libc (C库)
| |-- arch-arm (ARM架构,包含系统调用汇编实现)
| |-- arch-x86 (x86架构,包含系统调用汇编实现)
| |-- bionic (由C实现的功能,架构无关)
| |-- docs (文档)
| |-- include (头文件)
| |-- inet
| |-- kernel (Linux内核中的一些头文件)
| |-- netbsd (?netbsd系统相关,具体作用不明)
| |-- private (?一些私有的头文件)
| |-- stdio (stdio实现)
| |-- stdlib (stdlib实现)
| |-- string (string函数实现)
| |-- tools (几个工具)
| |-- tzcode (时区相关代码)
| |-- unistd (unistd实现)
| `-- zoneinfo (时区信息)
|-- libdl (libdl实现,dl是动态链接,提供访问动态链接库的功能)
|-- libm (libm数学库的实现,)
| |-- alpha (apaha架构)
| |-- amd64 (amd64架构)
| |-- arm (arm架构)
| |-- bsdsrc (?bsd的源码)
| |-- i386 (i386架构)
| |-- i387 (i387架答迟圆构?)
| |-- ia64 (ia64架构)
| |-- include (头文件)
| |-- man (数学函数,后缀名为.3,一些为freeBSD的库文件)
| |-- powerpc (powerpc架构)
| |-- sparc64 (sparc64架构)
| `-- src (源代码)
|-- libstdc++ (libstdc++ C++实现库)
| |-- include (头文件)
| `-- src (源码)
|-- libthread_db (多线程程序的调试器库)
| `-- include (头文件)
`-- linker (动态链接器)
`-- arch (支持arm和x86两种架构)

bootable 目录

|-- bootloader (适合各种bootloader的通用代码)
| `-- legacy (估计不能直接使用,可以参考)
| |-- arch_armv6 (V6架构,几个简单的汇编文件)
| |-- arch_msm7k (高通7k处理器架构的几个基本驱动)
| |-- include (通用头文件和高通7k架构头文件)
| |-- libboot (启动库,都写得很简单)
| |-- libc (一些常用的c函数)
| |-- nandwrite (nandwirte函数实现)
| `-- usbloader (usbloader实现)
|-- diskinstaller (android镜像打包器,x86可生产iso)
`-- recovery (系统恢复相关)
|-- edify (升级脚本使用的edify脚本语言)
|-- etc (init.rc恢复脚本)
|-- minui (一个简单的UI)
|-- minzip (一个简单的压缩工具)
|-- mttils (mtd工具)
|-- res (资源)
| `-- images (一些图片)
|-- tools (工具)
| `-- ota (OTA Over The Air Updates升级工具)
`-- updater (升级器)

build目录

|-- core (核心编译规则)
|-- history (历史记录)
|-- libs
| `-- host (主机端库,有android “cp”功能替换)
|-- target (目标机编译对象)
| |-- board (开发平台)
| | |-- emulator (模拟器)
| | |-- generic (通用)
| | |-- idea6410 (自己添加的)
| | `-- sim (最简单)
| `-- proct (开发平台对应的编译规则)
| `-- security (密钥相关)
`-- tools (编译中主机使用的工具及脚本)
|-- acp (Android "acp" Command)
|-- apicheck (api检查工具)
|-- applypatch (补丁工具)
|-- apriori (预链接工具)
|-- atree (tree工具)
|-- bin2asm (bin转换为asm工具)
|-- check_prereq (检查编译时间戳工具)
|-- dexpreopt (模拟器相关工具,具体功能不明)
|-- droiddoc (?作用不明,java语言,网上有人说和JDK5有关)
|-- fs_config (This program takes a list of files and directories)
|-- fs_get_stats (获取文件系统状态)
|-- iself (判断是否ELF格式)
|-- isprelinked (判断是否prelinked)
|-- kcm (按键相关)
|-- lsd (List symbol dependencies)
|-- releasetools (生成镜像的工具及脚本)
|-- rgb2565 (rgb转换为565)
|-- signapk (apk签名工具)
|-- soslim (strip工具)
`-- zipalign (zip archive alignment tool)

dalvik目录 dalvik虚拟机
.
|-- dalvikvm (main.c的目录)
|-- dexmp (dex反汇编)
|-- dexlist (List all methods in all concrete classes in a DEX file.)
|-- dexopt (预验证与优化)
|-- docs (文档)
|-- dvz (和zygote相关的一个命令)
|-- dx (dx工具,将多个java转换为dex)
|-- hit (?java语言写成)
|-- libcore (核心库)
|-- libcore-disabled (?禁用的库)
|-- libdex (dex的库)
|-- libnativehelper (Support functions for Android's class libraries)
|-- tests (测试代码)
|-- tools (工具)
`-- vm (虚拟机实现)

development 目录 (开发者需要的一些例程及工具)
|-- apps (一些核心应用程序)
| |-- BluetoothDebug (蓝牙调试程序)
| |-- CustomLocale (自定义区域设置)
| |-- Development (开发)
| |-- Fallback (和语言相关的一个程序)
| |-- FontLab (字库)
| |-- GestureBuilder (手势动作)
| |-- NinePatchLab (?)
| |-- OBJViewer (OBJ查看器)
| |-- SdkSetup (SDK安装器)
| |-- SpareParts (高级设置)
| |-- Term (远程登录)
| `-- launchperf (?)
|-- build (编译脚本模板)
|-- cmds (有个monkey工具)
|-- data (配置数据)
|-- docs (文档)
|-- host (主机端USB驱动等)
|-- ide (集成开发环境)
|-- ndk (本地开发套件——c语言开发套件)
|-- pdk (Plug Development Kit)
|-- samples (演示程序)
| |-- AliasActivity ()
| |-- ApiDemos (API演示程序)
| |-- BluetoothChat (蓝牙聊天)
| |-- BrowserPlugin (浏览器插件)
| |-- BusinessCard (商业卡)
| |-- Compass (指南针)
| |-- ContactManager (联系人管理器)
| |-- CubeLiveWall** (动态壁纸的一个简单例程)
| |-- FixedGridLayout (像是布局)
| |-- GlobalTime (全球时间)
| |-- HelloActivity (Hello)
| |-- Home (Home)
| |-- JetBoy (jetBoy游戏)
| |-- LunarLander (貌似又是一个游戏)
| |-- MailSync (邮件同步)
| |-- MultiResolution (多分辨率)
| |-- MySampleRss (RSS)
| |-- NotePad (记事本)
| |-- RSSReader (RSS阅读器)
| |-- SearchableDictionary (目录搜索)
| |-- **JNI (JNI例程)
| |-- SkeletonApp (空壳APP)
| |-- Snake (snake程序)
| |-- SoftKeyboard (软键盘)
| |-- Wiktionary (?维基)
| `-- Wiktionary**(?维基例程)
|-- scripts (脚本)
|-- sdk (sdk配置)
|-- simulator (?模拟器)
|-- testrunner (?测试用)
`-- tools (一些工具)

❺ Android开机logo简单修改方法

Android 手机开机logo主要分为2部分:

1.按下开机键后Linux开机显示开机第一帧部分。此Kernel中的画面在ANDROID里默认是关闭的,需要打开时可以配置打开kernel下面2个选项:

CONFIG_FRAMEBUFFER_CONSOLE

CONFIG_LOGO

意即KERNEL支持帧缓冲控制台,并且显示开机LOGO

2.开机过程从开机画面已经进入了android的范围,在INIT进程启动的时候加载的开机动画。

1).如果想要修改手机的开机第一帧,以高通SDM450平台为例,讲解一下开机第一帧logo的制作过程:

首先准备好需要更换的显示第一帧的logo图标,只需要显示图案的部分即可。比如安卓源码的小企鹅图标,为宽88 高102像素的bmp格式。

1 ps-截图-垂直翻转-另存为bmp-24位-高级模式-RGB888

2 .bmp文件命名为splash.bmp,在linux下执行xxd -i splash.bmp > splash.h

3 h文件去文件头54字节

unsigned char splash_24_bmp[] = {

0x42, 0x4d, 0x98, 0x62, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00,

0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x5a, 0x00,

0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0xc3, 0x0e, 0x00, 0x00, 0xc3, 0x0e, 0x00, 0x00, 0x00, 0x00,

  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 

4 查看splash.bmp-属性-摘要-宽88 高 102

5 修改文件

     \android\bootable\bootloader\lk\platform\msm_shared\include\splash.h

      imageBuffer_rgb888[] 此数组用步骤3制作出的数组内容

#define SPLASH_IMAGE_WIDTH     88

#define SPLASH_IMAGE_HEIGHT    102

6 bmptool工具上验证效果

txt2bin->生成bin->直接把bin拖入->设宽高为源bmp文件的宽高,24位

如果显示正常,直接如此修改验证就ok,如果显示有倾斜,先改小源图片的大小,重复此步骤制作。

bmptool工具验证的效果如此图显示, 则表示正常。

以上步骤,开机第一帧图片就修改ok。

2.开机动画修改

android\vendor\qcom\proprietary\qrdplus\Extension\apps\BootAnimation 目录下修改

bootanimation.zip

shutdownanimation.zip

这个压缩文件可以解压后参考源码中图片修改,修改后mm编译后验证即可。

以上就是Android修改开机动画的一种简单方法。

阅读全文

与androidbootable相关的资料

热点内容
云服务器做淘宝店 浏览:802
程序员判3年缓3年 浏览:909
服务器云监控系统 浏览:651
ios暴力解压软件 浏览:430
可以搜简便算法的软件 浏览:200
各种的解压小玩具 浏览:933
百度云服务器bcc域名绑定 浏览:486
android网络mp3格式 浏览:321
程序员抱怨it气氛 浏览:698
改apk服务器地址 浏览:414
原理图中的编译 浏览:924
缤智怎么给车机安装app 浏览:728
服务器的证件是什么 浏览:538
linuxgraphics 浏览:137
ACPI编译工具MaciASL 浏览:895
导线点加密技巧 浏览:103
闪迪加密软件如何去除 浏览:560
格力压缩机技术 浏览:7
app下单约妹子的什么语音 浏览:834
华为软件加密怎么关闭 浏览:325