Android内核(4.9)集成最新版MPTCP---成功…
第一次在手机上安装wsm tools时发现wsm只是个简单的集成框架,需要用其中的工具还需要单独安装,而安装一个工具以后发现图标没有显示,感觉很神奇,最近工作需要,也要做android应用间的集成,研究了下,其实很简单.只需要提供要被集成的应用package.activity名称即可 例如,在当前应用中集成另外一个应用,像在同一应用中通过通过intent启动: public class MainActivity extends Activity { @Override protected voi…
注意:涉及的代码为android内核代码而不是android源码. 在智能手机时代,每个品牌的手机都有自己的个性特点.正是依靠这种与众不同的个性来吸引用户,营造品牌凝聚力和用户忠城度,典型的代表非iphone莫属了.据统计, 截止2011年5月,AppStore的应用软件数量达381062个,位居第一,而Android Market的应用软件数量达294738,紧随AppStore后面,并有望在8月份越过AppStore.随着Android系统逐步扩大市场占有 率,终端设备的多样性亟需更多的移动…
Android内核sysfs中switch类使用实例 最终在这个周末,能够干点自己想要干的事了. 由我这个二流的内核驱动开发人员来解析一下sysfs中的switch类.先猜測一下来历,在普通的嵌入式Linux平台上.通常是各自为战,全然不须要遵循什么规则.在Android中Google定义了一些潜移默化的规范,你能够全然不遵守. 可是依照规则总归是好的. 先从直观的来看一下/sys/class/switch类中都有些什么吧. watermark/2/text/aHR0cDovL2Jsb2cuY3…
<深入理解Android内核设计思想> 基本信息 作者: 林学森 出版社:人民邮电出版社 ISBN:9787115348418 上架时间:2014-4-25 出版日期:2014 年5月 开本:16开 页码:687 版次:1-1 所属分类:计算机 > 软件与程序设计 > 移动开发 > Android 更多关于>>><深入理解Android内核设计思想> 编辑推荐 基于Android SDK最新版本 全面细致地剖析了进程/线程模型.内存管理.Bind…
<深入理解Android内核设计思想>已陆续在全国各大书店上市,电子书店也在陆续上架中(不断添加): 1. China-Pub 2. 京东 3. s=books&ie=UTF8&qid=1399447860&sr=1-1" rel="nofollow">Amazon 4. 当当 5. 淘宝网 6. 比比看哪边购书廉价 书本文件夹和一些章节内容将陆续与各位亲爱的读者们分享.感谢大家一直以来的支持和鼓舞~~…
1.Android系统层面的底层是Linux,并且在中间加上了一个叫做Dalvik的Java虚拟机,从表面层看是Android运行库.每个Android应用都运行在自己的进程上,享有Dalvik虚拟机为它分配的专有实例.为了支持多个虚拟机在同一设备上高效运行,dalvik被改写过.Dalvik虚拟机执行的是Dalvik格式的可执行文件(.dex)-该格式经过优化,以将内存好用降到最低. Android内核和Linux内核的差别主要体现在如下11个方面: 1.Android Binder Andr…
前言 Android的内核采用的是 Linux 内核,所以在Android内核中进行漏洞利用其实和在 一般的 x86平台下的 linux 内核中进行利用差不多.主要区别在于 Android 下使用的是arm汇编以及环境的搭建方面.本文对我最近的实践做一个分享,其实很简单. 内核调试环境搭建 搭建平台: ubuntu 16.04 这里使用 android 模拟器来进行内核调试.首先下载内核代码 git clone https://aosp.tuna.tsinghua.edu.cn/kernel/g…
首先,要分清楚,android的源代码和android的内核代码一般是分开的,要分别进行下载. 1.先下载android的源代码.(这里不包括android的内核代码)      下载最新的源代码,一般上官网下载.网址: http://source.android.com/source/downloading.html 注意:当遇到 1 error:Exited due to gc error 的错误时,执行 1 repo sync -j1:      每当下载停止的时候,可以用 repo sy…
1.下载Android内核 source.android.com/source->Downloading and Building Building Kernels 大概要花2个小时,其源码在培训软件里面的 Android模拟器使用的Linux-3.10版本内核源码 复制到Ubuntu,并解压之.进入该目录 这是Android源代码已经自带好的交叉工具链,只需要把它加入到path环境变量即可. sudo gedit /etc/profile source /etc/profile 测试: 2.编…
Android Studio 项目中集成百度地图SDK报以下错误: java.lang.UnsatisfiedLinkError: Native method not found: com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create)I at com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create(Native Method)…
本文转载自:http://ticktick.blog.51cto.com/823160/1653304 由于Android源码是用repo工具来管理的,因此,搞Android内核开发,首先要搞清楚repo是什么东西,它该怎么使用?作为<Android内核开发>系列文章的第二篇,我们首先谈谈对repo工具的理解和使用. 1. repo是什么? repo是一种代码版本管理工具,它是由一系列的Python脚本组成,封装了一系列的Git命令,用来统一管理多个Git仓库. 2. 为什么要用repo? 因…
Linux的启动过程 开机上电执行bootloader,将内核的前n条指令加载到系统内存中------>系统内核的初始化----------->启动应用程序. bootloader的位置装载在每个CPU要执行的第一条指令的内存地址处,该地址对于不同的CPU是相同的.所以称为引导程序.目的为装载真正的用户程序,而装载的目标位置和device可能不同,因此共同的需要知道: - 从哪里读取用户程序 - 用户程序的长度是多少 - 装载完用户程序后跳转多少,入口程序在哪儿 Android和Android…
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/70500488 一.Android内核源码的选择 Android手机设备内核源码的调试需要外部硬件设备的支持,调试步骤比较麻烦.相对来说,Android模拟器内核源码的调试就比较简单了,这里以Android模拟器内核源码的调试为例.首先创建一个Android API 19(Android 4.4.x版本)的Android模拟器,然后运行该Android模拟器.在 ubuntu 14…
本文博客链接:http://blog.csdn.net/qq1084283172/article/details/54880488 前面的博客中已经记录了Nexus 5手机的Android 4.4.4 r1源码的编译基于 ubuntu 14.04.5,后面在该编译环境下来学习一下Android内核源码的编译基于Nexus 5手机. 一.Android内核源码的下载和编译 有关Android内核源码的下载信息可以参考谷歌官网的地址https://source.android.com/source/…
引言      现在APP开发集成分享功能已经是非常普遍的需求了.其他集成分享技术我没有使用过,今天我就来介绍下使用ShareSDK来进行分享功能开发的一些基本步骤和注意点,帮助朋友们避免一些坑.好了,下面切入正题正式开始介绍. 1.ShareSDK开发包及配置 这个不用多说,去他们官网看找SDK开发包和集成文档即可.Android版本地址:http://www.mob.com/downloadDetail/ShareSDK/android.注意:记得要注册ShareSDK账号获取AppKey哦…
安卓现在的大趋势已经是普遍使用androidstudio(安装包[https://yunpan.cn/ckc54idj3JVJb  访问密码 664f])了.这个是集成的一个好的环境. 今天来搞个百度定位集成. 首先看下百度定位sdk. 看到这个4步骤,其实我们就按照这个来吧. 第一步:申请密钥 这里需要看的是: 有人不知道sha1是啥? 就是ecplise 开发安卓项目时候的创建的证书翻看的. 查看请参考:http://blog.csdn.net/forlong401/article/deta…
引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地API接口和发布应用到商店的应用开发平台.有低成本,低开发周期,轻量化等优点.它统一封装了Andriod,IOS,WindowsPhone,Symbian等几大移动开发平台的API,采用HTML5+JavaScript的混合开发的模式来开发智能移动的APP,解决系统兼容等问题.使用Cordova把APP…
在上篇文章--如何实现 Android 应用的持续部署中,我们使用的是 flow.ci + Github + fir.im 实现 Android 应用的持续部署.对于 Android 开发者,他们可能会在整个过程使用 Android 模拟器进行自动化测试. 所以,这次我们通过启动在 flow.ci 中的 Android 模拟器插件,同时将 connectedCheck 命令添加到构建插件的默认脚本中,以此来实现 Android 应用自动化测试与持续集成. PS:如果您已经阅读过Android的持…
Android系统的启动优化主要分为三大部分: (1) Bootloader优化 (2) Linux Kernel的剪裁与优化 (3) Android OS部分的剪裁与优化 本文重点关注Android OS部分的启动优化,值得关注的优化点分别介绍如下: 1. 精简preload的classes和resource 前面介绍过,由于所有的Android应用程序都是从Zygote进程fork出来的,所以为了共享一些class和resourse资源,Zygote进程初始化过程中,会预先加载一些常用的ja…
11.1  基本原理 Alarm 闹钟是 android 系统中在标准 RTC 驱动上开发的一个新的驱动,提供了一个定时器 用于把设备从睡眠状态唤醒,当然因为它是依赖 RTC 驱动的,所以它同时还可以为系统提 供一个掉电下还能运行的实时时钟.  当系统断电时,主板上的 rtc 芯片将继续维持系统的时间,这样保证再次开机后系统的时间 不会错误.当系统开始时,内核从 RTC 中读取时间来初始化系统时间,关机时便又将系统 时间写回到 rtc 中,关机阶段将有主板上另外的电池来供应 rtc 计时.And…
简介 Binder是Android系统提供的一种IPC(进程间通信)机制.由于Android是基于Linux内核的,因此,除了Binder外,还存在其他的IPC机制,例如管道和socket等.Binder相对于其他IPC机制来说,就更加灵活和方便了.Android系统基本上可以看作是一个基于Binder通信的C/S架构.Binder就像网络一样,把系统各个部分连接在了一起,因此它是非常重要的. 什么是Binder Binder是android在内核中专门用于完成进程间通信而设置的一个虚拟设备(/…
简介 Zygote本身是一个Native的应用程序,和驱动.内核等均无关系.Zygote是由init进程根据init.rc文件中的配置项而创建的. zygote最初的名字叫“app_process”,这个名字是在Android.mk文件中被指定的,但app_process在运行过程中,通过Linux下的pctrl系统调用将自己的名字换成了“zygote”,所以我们通过ps命令看到的进程名是“zygote”. 通过JNI调用Java函数,注意调用的是com.android.internal.os.…
init是一个进程,确切地说,它是Linux系统中用户空间的第一个进程.由于Android是基于Linux内核的,所以init也是Android系统中用户空间的第一个进程,它的进程号是1.作为天字第一号的进程,init被赋予了很多极其重要的工作职责. · 挂载设备 · 解析两个配置文件,中一个是系统配置文件init.rc,另外一个是和硬件平台相关的配置文件,以HTC G7手机为例,这个配置文件名为init.bravo.rc. · 执行各个阶段的动作,创建Zygote的工作就是在其中的某个阶段完成…
Android基本知识 Android基本知识.... 1 1. 各版本系统特性.... 1 2. View绘制流程.... 2 3. 动画体系.... 2 4. 事件分发机制.... 3 输入消息获取.... 3 1. 按键消息总体派发流程.... 3 根视图内部派发流程.... 4 触摸消息派发流程.... 4 根视图内部消息派发流程.... 4 ViewGroup内部消息派发过程.... 4 View内消息检测机制.... 4 5. 常见UI 布局优化方式.... 4 6. 常见性能优化方…
博客:http://blog.csdn.net/muyang_ren Ubuntu14.04 LTS(要求是64位长期支持版LTS) Jdk1.8 内核:android4.0 一:jdk 1.解压jdk,获得路径 2. sudo vim /etc/environment 改动为: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/lhy/jdk/…
Android内存管理: 1.当应用程序关闭以后,后台对应的进程并没有真正的退出(处于休眠状态,一般不占用系统CPU的资源),这是为了下次再启动的时候能快速启动. 2.当系统内存不够时,AmS会主动根据一定的优先规则退出优先级较低的进程. a:与linux内核的内存管理模块配合: 系统内存情况(是否足够)主要是Linux内核的内存管理所控制的,AmS只是从中起到为应用程序情况分配一个oom_adj值(-16到15,android中只用了0-15 :值越高越容易被回收),然后告诉Linux内核中注…
让我们的Android ROOT,多一点套路. 一.简单套路 CVE-2012-6422的漏洞利用代码,展示了另一种提权方法.(见附录) 这也是一个mmap驱动接口校验导致映射任意内核地址的洞.将内核映射到用户进程空间后,使用setresuid(0, 0, 0)进行提权. 其步骤如下: 利用漏洞,映射内核到调用者进程空间 搜索内核,查找“%pK %c %s\n”,并Patch成“%p %c %s\n” 搜索内核,查找sys_setresuid符号地址 搜索sys_setresuid代码段,查找“…
一.ijkplayer编译过程略,有兴趣的朋友可以再研究,以下以编译好的版本讲解. 将ijkplayer相关的so及aar文件复制到app下的libs目录,为支持多版本的手机使用,将所有的so文件都复制过去. 文件下载地址:https://download.csdn.net/download/wyydn_8476/10811260   版本为:0.8.4  不支持https. 有需要使用https的可以在此地址下载:https://download.csdn.net/download/wyydn…
简介 SystemServer的进程名实际上叫做“system_server”,通常简称为SS. 系统中的服务驻留在其中,常见的比如WindowManagerServer(Wms).ActivityManagerSystemService(AmS). PackageManagerServer(PmS)等,这些系统服务都是以一个线程的方式存在于SystemServer进程中. SS是由Zygote通过Zygote.forkSystemServer函数fork诞生出来的.与Zygote生死与共.SS…