- 博客(35)
- 资源 (11)
- 收藏
- 关注
转载 recovery 英文介绍
This article discusses how to create update.zip file and how Android Over-The-Air updates use such file to update the operating system on the device.Creating update.zipTipThe fol
2012-05-31 19:13:44 661
转载 U-Boot and MMC/SDIO
U-Boot supports MMC Cards with multiple paritions, with the FAT file system. For general information onMMC Cards - see the MMC Cards page.To initialize the mmc/sdio subsystem, use the mmcinit ca
2012-05-28 21:20:09 1703
转载 JNI接口函数<三>
字符串操作 NewStringjstring NewString(JNIEnv *env, const jchar *unicodeChars,jsize len);利用 Unicode 字符数组构造新的 java.lang.String 对象。参数:env:JNI 接口指针。unicodeChars:指向 Unicode 字符串的指
2012-05-25 14:53:14 499
转载 JNI接口函数<二>
对象操作 AllocObjectjobject AllocObject(JNIEnv *env, jclass clazz);分配新 Java 对象而不调用该对象的任何构造函数。返回该对象的引用。clazz 参数务必不要引用数组类。参数:env:JNI 接口指针。clazz:Java 类对象。返回值:返回 Java
2012-05-25 14:51:48 626
转载 JNI接口函数<一>
本章为 JNI 函数提供参考信息。其中列出了全部 JNI 函数,同时也给出了 JNI 函数表的准确布局。注意:“必须”一词用于约束 JNI 编程人员。例如,当说明某个 JNI 函数必须接收非空对象时,就应确保不要向该 JNI 函数传递 NULL。这时,JNI 实现将无需在该 JNI 函数中执行 NULL 指针检查。本章的部分资料改编自 Netscape 的 JRI 文档。该
2012-05-25 14:50:31 485
转载 Android 根文件系统启动过程
在Android系统启动时,内核引导参数上一般都会设置“init=/init”, 这样的话,如果内核成功挂载了这个文件系统之后,首先运行的就是这个根目录下的init程序。这个程序所了什么呢? 我们只有RFSC(Read the Fucking Source code)!!init程序源码在Android官方源码的system/core/init中,main在init.c里。我们的分析就从mai
2012-05-25 14:48:48 417
转载 在Android系统中修改Android.mk使其同时编译rgb2565和rgb2888(向out/host/linux-x86/bin/下新增加一个工具命令)
修改对应的Android.mk文件使其在源码编译时能够同时编译出rgb2565和rgb2888,rgb2888的源码文件已有,其实实现很简单,这里只是将我在具体测试中不同模块标签的模块在不同编译模式下的所采取的编译方式列举一下,因为我们的改动最好能和源码进行无缝的结合。 一、 Android系统的四种编译模式 Andr
2012-05-25 14:47:52 1257
转载 Android系统Recovery工作原理之使用update.zip升级过程分析(九)---updater-script脚本语法简介以及执行流程
目前update-script脚本格式是edify,其与amend有何区别,暂不讨论,我们只分析其中主要的语法,以及脚本的流程控制。一、update-script脚本语法简介: 我们顺着所生成的脚本来看其中主要涉及的语法。 1.assert(condition):如果condition参数的计算结果为False,则停止脚本执行,否则继续执行脚本。
2012-05-25 14:45:49 825
转载 Android系统Recovery工作原理之使用update.zip升级过程分析(八)---解析并执行升级脚本updater-script
一、update_binary的执行过程分析 上一篇幅中的子进程所执行的程序binary实际上就是update.zip包中的update-binary。我们在上文中也说过,Recovery服务在做这一部分工作的时候是先将包中update-binary拷贝到内存文件系统中的/tmp/update_binary,然后再执行的。update_binary程序的源码位于gingerbrea
2012-05-25 14:44:55 639
转载 Android系统Recovery工作原理之使用update.zip升级过程分析(七)---Recovery服务的核心install_package函数
一、 Recovery服务的核心install_package(升级update.zip特有) 和Recovery服务中的wipe_data、wipe_cache不同,install_package()是升级update.zip特有的一部分,也是最核心的部分。在这一步才真正开始对我们的update.zip包进行处理。下面就开始分析这一部分。还是先看
2012-05-25 14:44:07 664
转载 Android系统Recovery工作原理之使用update.zip升级过程分析(六)---Recovery服务流程细节
Recovery服务毫无疑问是Recovery启动模式中最核心的部分。它完成Recovery模式所有的工作。Recovery程序对应的源码文件位于:/gingerbread0919/bootable/recovery/recovery.c。一、 Recovery的三类服务: 先看一下在这个源码文件中开始部分的一大段注释,这将对我们理解Recovery服务的主要功能有
2012-05-25 14:43:12 663
转载 Android系统Recovery工作原理之使用update.zip升级过程分析(五)---update.zip包怎样从上层进入Recovery服务
文章开头我们就提到update.zip包来源有两种,一个是OTA在线下载(一般下载到/CACHE分区),一个是手动拷贝到SD卡中。不论是哪种方式获得update.zip包,在进入Recovery模式前,都未对这个zip包做处理。只是在重启之前将zip包的路径告诉了Recovery服务(通过将--update_package=CACHE:some_filename.zip或--update_pack
2012-05-25 14:42:11 610
转载 Android系统Recovery工作原理之使用update.zip升级过程分析(四)---Android系统Recovery模式的工作原理
使用update.zip包升级时怎样从主系统(main system)重启进入Recovery模式,进入Recovery模式后怎样判断做何种操作,以及怎样获得主系统发送给Recovery服务的命令,这一系列问题的解决是通过整个软件平台的不同部分之间的密切通信配合来完成的。为此,我们必须要了解Recovery模式的工作原理,这样才能知道我们的update.zip包是怎样一步步进入Recovery中升
2012-05-25 14:41:04 429
转载 Android系统Recovery工作原理之使用update.zip升级过程分析(三)---Android系统的三种启动模式
以下的篇幅开始分析我们在上两个篇幅中生成的update.zip包在具体更新中所经过的过程,并根据源码分析每一部分的工作原理。一、 系统更新update.zip包的两种方式 1. 通过上一个文档,我们知道了怎样制作一个update.zip升级包用于升级系统。Android在升级系统时获得update.zip包的方式有两种。一种是离线升级,即手动拷贝升级包到SD卡(或NAN
2012-05-25 14:40:05 550
转载 Android系统Recovery工作原理之使用update.zip升级过程分析(二)---update.zip差分包问题的解决
在上一篇末尾提到的生成差分包时出现的问题,现已解决,由于最近比较忙,相隔的时间也比较长,所以单列一个篇幅提示大家。这个问题居然是源码中的问题,可能你已经制作成功了,不过我的这个问题确实是源码中的一个问题,不知道是不是一个bug,下文会具体分析!一、生成OTA增量包失败的解决方案 在上一篇中末尾使用ota_from_target_files脚本制作update.zip
2012-05-25 14:37:05 510
转载 Android系统Recovery工作原理之使用update.zip升级过程分析(一)---update.zip包的制作
这篇及以后的篇幅将通过分析update.zip包在具体Android系统升级的过程,来理解Android系统中Recovery模式服务的工作原理。我们先从update.zip包的制作开始,然后是Android系统的启动模式分析,Recovery工作原理,如何从我们上层开始选择system update到重启到Recovery服务,以及在Recovery服务中具体怎样处理update.zip包升级的
2012-05-25 14:35:49 1146
转载 Android Recovery模式
Recovery简介Android利用Recovery模式,进行恢复出厂设置,OTA升级,patch升级及firmware升级。升级一般通过运行升级包中的META-INF/com/google/android/update-script脚本来执行自定义升级,脚本中是一组recovery系统能识别的UI控制,文件系统操作命令,例如write_raw_image(写FLASH分区),copy_
2012-05-22 11:38:46 2026
转载 android 重启流程
我这边主要是讲下android reboot走的流程以及所设计的代码,我这边直接从framework层开始。framework会提供系统重启的接口:代码路径:frameworks/base/core/java/android/os/Power.java public static void reboot(String reason) throws IOException
2012-05-18 16:24:11 1033
转载 Linux 原子操作
所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位,因此这里的原子实际是使用了物理学里的物质微粒的概念。 原子操作需要硬件的支持,因此是架构相关的,其API和原子类型的定义都定义在内核源码树的include/asm/atomic.h文件中,它们都使用汇编语言实现,因为C语言并不能实现这样的操作。 原子操作主要
2012-05-17 15:59:02 577
转载 Linux输入子系统分析 -- 输入子系统初始化
Linux输入子系统分析 (1) -- 输入子系统初始化[linux-3.0 http://lxr.linux.no/#linux+v3.0]输入子系统:2173subsys_initcall(input_init);其源代码如下:2133static const struct file_operations input_fops = {2134 .owner
2012-05-15 18:24:35 694
转载 USB multi gadget 支持问题
USB multi gadget 支持问题昨天,试了USB的gadget各项功能。当尝试USB multi gadget的时候,在加载驱动的时候出现了下面错误。-----------------------------------------------------------------------# insmod g_multi.ko file=test.imgg_
2012-05-15 18:20:34 1773
转载 Linux USB subsystem -- initialize
Linux USB subsystem -- initialize[Linux 3.2] [driver/usb/core/usb.c]USB作为Linux系统的一个子系统,其初始化函数被subsys_initcall修饰。其初始化代码如下:[cpp] view plaincopy/* * Init */ static int
2012-05-15 18:18:07 593
转载 Linux USB subsystem --- USB Debug File System Initialize
Linux USB subsystem --- USB Debug File System Initialize[Linux 3.2] [driver/usb/core/usb.c]首先来分析USB子系统初始化的第一个函数usb_debugfs_init()[cpp] view plaincopystatic int usb_debugfs_
2012-05-15 18:17:17 494
转载 Linux USB subsystem --- USB File System initialize
Linux USB subsystem --- USB File System initialize[Linux 3.2] [driver/usb/core/inode.c]函数:usbfs_init()USB文件系统的初始化取决于是否CONFIG_USB_DEVICEFS. (make menuconfig ---> Device Drivers ---> USB sup
2012-05-15 18:16:19 1089
转载 Linux USB subsystem --- USB bus registration
Linux USB subsystem --- USB bus registration[Linux 3.2] [driver/usb/core/driver.c] 定义:usb_bus_type[cpp] view plaincopystruct bus_type usb_bus_type = { .name = "usb",
2012-05-15 18:15:04 437
转载 Linux USB subsystem --- USBFS driver registration
Linux USB subsystem --- USBFS driver registration[Linux 3.2] [driver/usb/core/devio.c] 定义:usbfs_driver[cpp] view plaincopystruct usb_driver usbfs_driver = { .name = "usb
2012-05-15 18:13:35 687
转载 Linux USB subsystem --- USB Hub initialize
Linux USB subsystem --- USB Hub initialize[Linux 3.2] [driver/usb/core/hub.c] 函数:usb_hub_init [cpp] view plaincopyint usb_hub_init(void) { if (usb_register(&hub_driver)
2012-05-15 18:12:30 485
转载 Linux USB subsystem --- register generic usb driver
Linux USB subsystem --- register generic usb driver[Linux 3.2] [driver/usb/core/driver.c]函数:usb_register_device_driver[cpp] view plaincopy/** * usb_register_device_driver
2012-05-15 18:11:40 527
转载 Linux USB subsystem --- EHCI host controller register
Linux USB subsystem --- EHCI host controller register[Linux 3.2] [driver/usb/host/ehci-hcd.c]函数:ehci_hcd_init()[cpp] view plaincopystatic int __init ehci_hcd_init(void) {
2012-05-15 18:10:23 1079
转载 Linux USB subsystem --- USB create HCD
Linux USB subsystem --- USB create HCD[Linux-3.2][drivers/usb/core/hcd.c]函数:usb_create_hcd(const struct hc_driver *driver, struct device *dev, const char *bus_name)其中hc_driver是ehci_atmel_h
2012-05-15 18:09:23 888
转载 linux usb初始化
一.前言对于usb的普通驱动,我们了解了不少,但是对于usb的真正核心还是不是太理解。该文中对于usb的初始化进行一定的学习,如有不对之处,请各位多多指教。 二.usb子系统初始化。话说在linux启动之初,就会将usb子系统初始化完成,亦如input子系统和V4L2一样。usb_init就完成了初始化以及启动usb hub守护进程。那来看usb_init中的各个函数的实现。2
2012-05-15 18:01:06 900
转载 linux usb 鼠标(2)
4.2.1 usb_endpoint_is_int_in判断端点是否为中断in类型static inline int usb_endpoint_is_int_in(const struct usb_endpoint_descriptor *epd){ return (usb_endpoint_xfer_int(epd) && usb_endpoint_dir_in(epd));
2012-05-15 17:59:20 763
转载 linux usb鼠标(1)
一.前言众所周知,usb子系统是个庞然大物,这个里面涉及的东西很多,网上也有很好的资料,如复旦ABC的,堪称经典。不过这儿仅以此文来记录学习的历程,不能和那些大牛比啊,各位不要见笑。二.usb设备描述符usb子系统很大,从哪儿下手呢。以前学习过usb hub的注册,现在主要看一个设备插入hub后的种种特征。在这个之前需要理解部分usb协议,关于usb的电气等等都不管,只关注usb驱
2012-05-15 17:58:18 678
转载 浅析usbhid驱动如何源源不断的获取usb鼠标数据
浅析usbhid驱动如何源源不断的获取usb鼠标数据hid_probe==>usb_hid_configure pipe = usb_rcvintpipe(dev, endpoint->bEndpointAddress); usb_fill_int_urb(usbhid->urbin, dev, pipe, usbhid->inbuf, insize, // 首先申
2012-05-15 15:37:57 3613
原创 ALSA调试总结
刚刚解决了一个播放不出声音的问题,这里总结一下,在TI平台上调试ALSA的一些方法和步骤。平台ALSA信息ls /dev/snd/controlC0controlC1pcmC0D0cpcmC0D0ppcmC0D10ppcmC0D11cpcmC0D12ppcmC0D13ppcmC0D14cpcmC0D14ppcmC0D15cpcmC0D15p
2012-05-02 15:45:26 4739 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人