随笔分类 -  android系统

摘要:编译源码烧写到nexus后,在开机后有时会出现各种各样的问题,本篇就来介绍下android系统的启动流程。引用网上的图片来展开分析: 第一阶段:Android设备上电后,首先会从处理器片上ROM的启动引导代码开始执行,片上ROM会寻找Bootloader代码,并加载到内存。(这一步由“芯片厂商”负责 阅读全文
posted @ 2016-01-27 15:27 vendanner 阅读(845) 评论(0) 推荐(0)
摘要:本文是结合参考资料对CVE-2014-3153的分析,当然各位看官可以看最后的资料,他们写的比我好。 在看CVE-2014-3153之前我们用参考资料4中例子来熟悉下这类漏洞是如何产生的: /** * An example of bug that can be exploited through s 阅读全文
posted @ 2016-01-22 09:44 vendanner 阅读(1378) 评论(0) 推荐(0)
摘要:工作日分析的差不多了,写个标题周末搞 阅读全文
posted @ 2016-01-22 09:37 vendanner 阅读(263) 评论(0) 推荐(0)
摘要:在上篇添加账户源码解析的博文中,我们发现功能是由AccountManager的mService成员来实现。而mService其实是AccountManagerService,如果对android系统有了解的话一定会发现AccountManagerService是运行在SystemServer进... 阅读全文
posted @ 2016-01-18 21:50 vendanner 阅读(2185) 评论(0) 推荐(0)
摘要:上篇粗略的分析android添加账号的流程,本篇深入的解析下执行步骤。先来看图片,取自深入理解android卷2: 上图详细的分析了addAccount的流程,下面我们结合源码来理解它1、addAccount:其实这里省略了一步,应该是客户端addAccount——>AddAccountSet... 阅读全文
posted @ 2016-01-11 22:46 vendanner 阅读(1711) 评论(0) 推荐(0)
摘要:android修复了添加账户代码中的2处bug,retme取了很酷炫的名字launchAnyWhere、broadAnywhere(参考资料1、2)。本文顺着前辈的思路学习bug的原理和利用思路。 我们先看下源码里setting中添加账户的代码,来理解bug产生的原理。 /packages/... 阅读全文
posted @ 2016-01-08 20:32 vendanner 阅读(1747) 评论(0) 推荐(0)
摘要:本篇我们来看看android的签名机制。发布出来的apk都是有META-INF文件夹,里面包含如下三个文件: 下面来一一解释这三个文件的作用(打包apk时签名过程):SignApk.main() 1、MANIFEST.MF:/build/tools/signapk/S... 阅读全文
posted @ 2016-01-07 20:36 vendanner 阅读(2183) 评论(0) 推荐(0)
摘要:本文收集网上android cve的一些分析供后续学习: Android uncovers master-key:android1.6—4.0 由于ZIP格式允许存在两个或以上完全相同的路径,而安卓系统没有考虑这种场景。在该情况下,android包管理器校验签名取的是最后一个文件的hash,而运行A 阅读全文
posted @ 2016-01-04 19:33 vendanner 阅读(542) 评论(0) 推荐(0)
摘要:本文搜集网上知识,记录android学习中的一些知识点 logcat:// java层的logcat我们不谈,看native层:/system/core/include/log/log.h以ALOGV()为例,/*50 * Normally we strip ALOGV (VERBOSE mess... 阅读全文
posted @ 2015-12-23 09:09 vendanner 阅读(288) 评论(0) 推荐(0)
摘要:frameworks/native/cmds/installd/commands.cAPK在安装的过程中,会通过dex2oat工具生成一个OAT文件art/runtime/oat_file.cOatFile类,通过调用它的静态成员函数Open可以在本进程中加载OAT文件;OatFile类的静态成员函... 阅读全文
posted @ 2015-12-17 18:06 vendanner 阅读(548) 评论(0) 推荐(0)
摘要:本篇我们来看看adbi的实现原理,其实里面的知识点前面差不多都有涉及了,没多少新知识。adbi利用hijack程序将libexample.so注入到指定的进程中,并且在进程中加载libexample.so;而libexample.so在加载过程中会执行其.init_array section里... 阅读全文
posted @ 2015-12-02 22:10 vendanner 阅读(1706) 评论(0) 推荐(0)
摘要:ptrace提供了一种使父进程得以监视和控制其它进程的方式,它还能够改变子进程中的寄存器和内核映像,因而可以实现断点调试和系统调用的跟踪。学习linux的ptrace是为学习androidadbi框架和古河的libinject做基础。 ptrace有四个参数:long ptrace(enum ... 阅读全文
posted @ 2015-11-28 14:50 vendanner 阅读(994) 评论(0) 推荐(0)
摘要:android是建立在linux的基础上,其底层代码是安装linux可执行文件——elf的格式来组装的。本文结合android中的so文件来了解elf格式,资料大多收集于网上;elf格式位于android源码:elf.h(下面涉及到的结构体和宏定义都可以在此头文件中找到)。 elf大致可分为三部... 阅读全文
posted @ 2015-11-22 22:43 vendanner 阅读(2577) 评论(0) 推荐(0)
摘要:本文分析so加载的步骤,其实在之前dalvik浅析二中也有提及,但那重点关注的是jni。android中so库的加载,代码如下:loadLibrary("nanosleep"); 我们来看下它的执行流程吧: 先调用dlopen来载入so文件;find_library在soinfo结构(进... 阅读全文
posted @ 2015-11-19 21:50 vendanner 阅读(3211) 评论(0) 推荐(0)
摘要:调用号(以arm平台为例)在/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h:/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */#define __NR_r... 阅读全文
posted @ 2015-10-20 15:13 vendanner 阅读(1772) 评论(1) 推荐(0)
摘要:操作系统:Ubuntu14.4 android版本:4.4 设备:nexus 5 android系统的编译使用make来操作,那make呢是执行对应的makefile即android的编译系统看makefile。那什么是makefile看这里: makefile的语法及写法 看完后应该... 阅读全文
posted @ 2015-10-16 12:21 vendanner 阅读(1875) 评论(0) 推荐(0)
摘要:操作系统:ubuntu14.4tls android源码版本:4.4 手机:nexus5 1 获得手机的驱动程序(跟硬件平台有关):Binaries for Nexus Device 查到nexus 5代号为hammerhead,且android源码版本为4.4:NFC, Bluetoo... 阅读全文
posted @ 2015-10-15 10:57 vendanner 阅读(1320) 评论(0) 推荐(0)
摘要:android的安装包是个apk文件,其中包含dex、资源及签名文件。其中dex是包含程序运行的类代码,而android是运行在dalvik(5.0之前)上的。本篇我们就来看下dalvik是如何把dex载入并运行的。 先看整体脉络(重点照顾解析步骤,优化自行查找资料): androi... 阅读全文
posted @ 2015-09-28 16:03 vendanner 阅读(1387) 评论(0) 推荐(2)
摘要:android大多使用java来开发,java中有个概念叫jni。当然说到jni,必然是少不了native code。在android中就是so库。我们来分析下jni在android dalvik的使用,以下篇幅是我对Dalvik虚拟机JNI方法的注册过程分析文章的学习和注解。在这之前先说几个概... 阅读全文
posted @ 2015-09-17 16:59 vendanner 阅读(1664) 评论(0) 推荐(0)
摘要:android中zygote相信大家都很熟悉,它执行的函数是app_main.cpp,而xposed主要实现的就是替换app_main.cpp。所以在分析xposed时有必要来认识下zygote。好了,废话不多说,直接看app_main.cpp源码我们发现其main函数主要由AppRuntime... 阅读全文
posted @ 2015-09-10 11:44 vendanner 阅读(1186) 评论(0) 推荐(0)