自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android WiFi--系统架构

1. 系统架构        Android WiFi系统引入了wpa_supplicant,它的整个WiFi系统以wpa_supplicant为核心来定义上层用户接口和下层驱动接口。整个WiFi系统架构如下图所示:   一切尽在上图中,下面将对每部分进行详细分析。1.1 WifiService        由SystemServer启动的时候生成的Connecttivity

2012-10-30 18:07:40 48136 11

转载 Android WiFi系统

一、wpa_supplicant是什么?      wpa_supplicant本是开源项目源码,被谷歌修改后加入android移动平台,它主要是用来支持WEP,WPA/WPA2和WAPI无线协议和加密认证的,而实际上的工作内容是通过socket(不管是wpa_supplicant与上层还是wpa_supplicant与驱动都采用socket通讯)与驱动交互上报数据给用户,而用户可以通过soc

2012-10-30 09:36:38 9032

转载 Android 系统属性

一、 简介        每一个属性都是一个名值对,名和值都是文本。Android系统中,属性被大量使用,用来记录系统设置或者在进程间交换信息。属性在整个系统中是可见的,每一个进程都可以get/set属性。       系统初始化时,在init这个进程中,Android会分配一些内存来存储这些属性,Init源码在/system/core/init中。Init这个进程会开启一个运行在init

2012-10-27 17:23:28 2731

转载 Bootloader - Main system - Recovery的三角关系

一、MTD分区:BOOT:        boot.img,Linux kernel (within normal ramdisk)MISC:        bootloader message structRECOVERY:    recovery.img,Linux kernel (within recovery ramdisk)SYSTEM:      system.img

2012-10-26 15:53:19 12248 3

转载 Android OTA 升级(五):updater

一、简介      前面分析的OTA升级的各部分代码都是在搭一个舞台,而主角现在终于登场,它就是updater。Google的代码架构设计非常好,各部分尽量松耦合。前面介绍升级脚本时,可知有两种类型的脚本,amend & edify(Amend脚本在Android 1.5中已经被废除,只保留了Edify脚本). 他们各自对应一个updater. 这里,我们主要关注新的edify的updater

2012-10-26 11:41:15 5547 1

转载 Android OTA 升级(四):进入根文件系统

一、简介        从bootloader 进入Recovery 模式后,首先也是运行Linux内核,该内核跟普通模式没有区别(减轻了BSP开发者的任务)。区别从执行文件系统开始。 Recovery 模式的细节就隐藏在其根文件系统中。下面,我们就看看进入Recovery 根文件系统都干些啥。二、init.rc       和正常启动一样,内核进入文件系统会执行/init, in

2012-10-25 17:59:11 4318

转载 Android OTA 升级(三):生成recovery.img

一、简介  得到了ota升级包后,我们就可以用它来升级系统了。Android 手机开机后,会先运行 bootloader。 Bootloader 会根据某些判定条件(比如按某个特殊键)决定是否进入 recovery 模式。Recovery 模式会装载 recovery 分区, 该分区包含recovery.img。recovery.img 包含了标准内核(和boot.img中的内核相同)以及re

2012-10-25 17:38:00 4562

转载 Android OTA 升级(二): 脚本 ota_from_target_files

1. ota_from_target_files简介         前面介绍了ota package 的编译过程,其中最核心的部分就是一个 python 脚本:ota_from_target_files. 现在我们分析这个脚本。不带任何参数,先看一下它的帮助:$ ./ota_from_target_files Given a target-files zipfile, p

2012-10-25 15:39:35 5227

转载 Android OTA 升级(一): 编译升级包

1. OTA功能介绍       OTA 升级是 Android 系统提供的标准软件升级方式。 它功能强大,提供了全量升级和增量升级模式,可以通过SD卡或U盘升级,也可以通过网络升级。这里,我们先研究最简单的情况,通过SD卡进行完全升级。2. 编译OTA全量升级包   1) 首先编译出android   2) make otapackage       即可获得:out/tar

2012-10-25 11:42:37 5687

转载 Android Image文件结构

1. ramdisk.img         一个分区影像文件,它会在kernel 启动的时候,以只读的方式被 mount ,这个文件中只是包含了 /init 以及一些配置文件,这个ramdisk 被用来调用init,以及把真正的root file system mount 起来。它经常被打包到boot.img中,boot.img文件结构见另外一篇文章。 2.system.img

2012-10-25 11:11:36 4844

转载 Android解包打包system.img的方法

1.  system.img为yaffs2镜像2. 解包        对system.img的解包需要用到unyaffs这工具,下载地址:http://code.google.com/p/unyaffs/downloads/list    下载以后和system.img放入同一个文件夹,可直接下载可执行文件,也可以自己编译“gcc -o unyaffs unyaffs.c”

2012-10-25 10:56:53 19368

转载 分析Android 根文件系统启动过程(init守护进程分析)

今天开始分析Android 根文件系统启动过程。在Android系统启动时,内核引导参数上一般都会设置“init=/init”,这样的话,如果内核成功挂载了这个文件系统之后,首先运行的就是这个根目录下的init程序。这个程序所了什么呢? 我们只有RFSC(Readthe Fucking Source code)!!init程序源码在Android官方源码的system/core/ini

2012-10-24 15:52:57 1806

转载 Android boot.img 结构

1. Android 的boot.img 包括 boot header,kernel, ramdisk2. 首先来看看Makefile是如何产生我们的boot.img的:      boot镜像不是普通意义上的文件系统,而是一种特殊的Android定制格式,由boot header,压缩的内核,ramdisk以及second stage loader(可选)组成,可以从mkbootimg.

2012-10-24 14:48:21 2211

原创 CPU frequency and voltage scaling code in the Linux(TM) kernel

1.  基本介绍   1) 调整CPU运行频率是一个节能的好方法,CPU运行频率越低,CPU功耗越小。   2) 下面的我现在正在使用的CPU为例进行说明。触发CPU频率调整的有两个源:      1)根据CPU负荷进行调整(代码位于:kernel/drivers/cpufreq,下面以cpufreq_interactive.c为例,当/sys/drivers/system/cpu/c

2012-10-23 09:02:42 6630 1

转载 Android获取系统cpu信息,内存,版本,电量等信息

1、CPU频率,CPU信息:/proc/cpuinfo和/proc/stat通过读取文件/proc/cpuinfo系统CPU的类型等多种信息。读取/proc/stat 所有CPU活动的信息来计算CPU使用率,下面我们就来讲讲如何通过代码来获取CPU频率:package com.orange.cpu; import java.io.BufferedReader;import ja

2012-10-20 09:54:27 19341

转载 Android下如何获取CPU序列号

public static String getCPUSerial() {           String str = "", strCPU = "", cpuAddress = "0000000000000000";            try {                 //读取CPU信息                 Process pp = Runtime.g

2012-10-20 09:49:31 6568 1

转载 Linux workqueue工作原理

1. 什么是workqueue       Linux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数量,使得线程处理的事务能够并行化。workqueue是内核中实现简单而有效的机制,他显然简化了内核daemon的创建,方便了用户的编程.      工作队列(workqueue)是另外一种将

2012-10-19 17:02:37 37502 6

转载 DVFS--动态电压频率调整

Linux低功耗研究也有一段时间了,基本把低功耗的实现方式想清楚了(主要分成机制和策略),这段时间的工作主要在机制上。暂时想实现的主要的机制有:cpu级,设备驱动级,系统平台级。管理颗粒度不断递增,形成三驾马车齐驱的形势。       cpu级:主要实现比较容易的在系统处于目标在于频繁发生、更高粒度的电源状态改变,主要的实现方式为idle,包括今天的主要想讲的动态主频。       设备驱

2012-10-19 11:28:33 13126

原创 把驱动代码加入Linux Kernel

1. Kconfig文件的作用内核源码树的目录下都有两个文件Kconfig(2.4版本是Config.in)和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文件相关的内核配置菜单。在内核配置make menuconfig(或xconfig等)时,从Kconfig中读出菜单,用户选择后保存到.config的内核配置文件中。在

2012-10-13 17:48:38 3319

转载 本机不能访问ubuntu虚拟机samba问题

环境:虚拟机装的是ubuntu8.04,虚拟机版本vmware7.0. 宿主机windowsXP。虚拟机网络设置bridged.现象:配置samba之后,把虚拟机网络设置改为NAT,能够访问samba.改为bridged就不行。改为bridged之后虚拟机和XP相互能ping通,但XP不能访问samba. 但是局域网内的其他机器可以。 解决:安装系统设置的共享模块

2012-10-12 15:01:09 2848

Linux下获取Wifi信号强度和速率

在Linux用户态获取所有WiFi相关信息源码

2017-06-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除