自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 Checksum算法

checksum算法,IP checksum算法,tcp checksum算法,udp checksum算法。

2017-07-10 09:01:40 86138 2

原创 Dns数据包内容分析

dns,dns解析,dns数据包分析,dns命名规则

2017-07-01 16:35:56 21334

原创 dns工作过程及原理 (linux dns及android dan的实现差异)

dns原理、dns工作过程、dns的实现、linux dns配置原因、android dns的实现框图。前言本文分析dns工作过程及原理,给一个简单的dns实现代码流程,并针对linux及android

2017-01-10 18:38:38 7310

原创 网络各层使用的协议

网络各层使用的协议OSI7层体系结构、5层体系结构、TCP/IP体系结构的对应关系。体系结构中各层使用的网络协议。

2016-12-24 16:45:43 5480

原创 android的wifi扫描流程及管理(framework层的wifi扫描分析)

前言:本文介绍wifi framework层的扫描处理流程,所介绍的流程的代码全部在下面的文件中: (android\frameworks\opt\net\wifi\service\java\com\android\server\wifi\WifiStateMachine.java)一、wifi状态的转变没连接ap时打开wifi的状态转变: InitialState->SupplicantSt

2016-12-19 18:55:11 5653

原创 蓝牙协议栈(Bluetooth stack)简介

1 前言 本文只要对蓝牙协议栈做一个简单介绍,包含hci层、acl链路、l2cap层,sdp服务及几个常见的profile,让初学蓝牙协议栈的人对整个蓝牙协议栈有一个整体框架的了解。2 HCI层2.1 Hci命令及应答的控制由于不同的hci命令对结果有不同的处理,有的不需要结果,有些需要等待结果后才能执行下一步动作,有些在一定状态下才有效,对这些命令的应答,也依赖蓝牙当前的状态及实际的运行情况。所

2016-12-05 18:51:46 38236 2

原创 CRC8算法

crc8校验算法、原理、查表法、计算法、c代码

2016-11-01 18:31:10 120044 29

原创 蓝牙的音频通路

如上图: 音频通路1:Audio->L2CAP->ACL->HCI->Baseband,a2dp音频走这种方式; 音频通路2:Audio->Voice->SCO/eSCO->HCI->Baseband,hfp、hsp蓝牙通话走这种方式; 音频通路3:Audio->Voice->PCM->Baseband,hfp、hsp蓝牙通话走这种方式; 蓝牙通话的方式有音频通路2、音频通路3,这两种方式表

2016-09-22 19:42:30 7648 1

原创 Android修改蓝牙默认名称

android下,如果厂家没有对蓝牙默认名称做修改,那蓝牙的默认名称为“Android Bluedroid”。蓝牙首次打开时就会从bluedroid获取蓝牙名称,并保存到文件,后面就是使用这个名称了,除非用户在设置里手动修改蓝牙名称。 Bluedroid中蓝牙获取名称代码在:android\external\bluetooth\bluedroid\btif\src\btif_dm.cstatic

2016-09-20 20:11:17 10025

原创 Linux无线网络架构

Android中无线网络的软件涉及linux内核、supplicant、framework、wifi service,代码从c、c++、java都有,这一篇主要介绍linux内核中的无线网络。要了解linux的无线网络,首先要了解linux的网络架构,接着介绍无线网络的架构,然后分析网络数据包的收、发流程。1 Linux的网络架构首先看一下linux的网络架构  系统调用接口 系统调用接

2016-09-08 15:55:25 6841

原创 android网络的评分机制、连接国内ap wifi不回连问题

本文介绍了android下网络的评分机制,同时分析wifi连接国内ap时,重新打开wifi后,wifi不回连ap的问题,并提供解决方法。android下可以有多种网络存在,如:wifi、mobile network、ethernet、bt-pan。而对于上层应用来说,只会看到一个连通的网络,在多个网络同时存在的情况下,android就需要一套评分机制来选择一个当前使用的网络。

2016-09-03 17:34:37 5180

原创 android音频hal层简介

android音频hal层简介,介绍android的音频hal层所处位置,音频hal的组织方式。

2016-09-03 17:29:37 17241 2

原创 android dumpsys使用

列出能dump的service: service listdumpsys某一个service dumpsys dumpsys connectivitydumpsys信息的实现在对应service中,如dumpsys connectivity,输出信息由ConnectivityService类的dump实现。 需要增加调试信息时,也可以在dump中加入相关的信息,这样在dumpsys时就可以输出

2016-09-03 14:05:08 1146

原创 WIFI快连技术介绍

前言现在的智能硬件产品,以WiFi品类居多,这些WiFi硬件没有人机交互界面,但设备要上网肯定要配置SSID等相关信息,于是WiFi快连应运而生。 事实上在2010年,wifi联盟就推出过简单配置的协议规范《WiFi Simple Configure》,通过输入PIN码或者按键来接入AP,这技术被称为WPS。可惜这个功能需要路由器支持,市面上一些路由器不支持,导致没有大规模推行。 快连不需要路由

2016-09-01 20:20:10 12052

原创 Android下bluedroid、bluetooth apk介绍

前言本文档主要介绍android平台下bluetooth的应用层软件,先介绍bluetooth应用层的框架,接着分别介绍Bluedroid层软件、Bluetooth应用程序(Bluetooth.apk),Bluetooth framework层,最后完整分析一些蓝牙的操作流程。基于android 5.1的平台,涉及的bluetooth硬件为realtek的蓝牙。文档主要针对蓝牙的初学者,提供基础的学

2016-09-01 20:01:35 12950 4

转载 使用strace, ltrace寻找故障原因的线索

http://blog.csdn.net/delphiwcdj/article/details/7387325

2016-08-29 16:53:19 474

原创 linux驱动参数及参数的设置及修改

在linux中,每一个module加载到kernel后,都会在/sys/module目录下生成以该模块命名的一个文件夹, 在里面包含了该模块的一些信息。这里分析一下parameters下的参数。parameters目录下面有该module定 义的参数,用于与用户层交互数据。以boardcom的wifi驱动为例,加载驱动后, 在/sys/module/wlan_bcmdhd/parameters

2016-08-29 16:32:22 4190

原创 wifi ip地址租约处理

在wifi中,每个station连接ap后,ap都会给station分配一个ip地址,如果station关闭后,ap是否会一直保留这个ip地址给该station不?答案是否定的,每个ap都有一个ip地址租约时间的配置项,就是 station在向ap申请ip地址后,只有一个有限的时间使用该ip地址,如果时间到后station没有再次向ap获取 ip地址,该station就会被ap踢出去,这样做目的是为

2016-08-17 18:33:57 3642

原创 Ubuntu系统(bluez)蓝牙调试

前言现在调试的Ubuntu、debian系统,蓝牙上层的协议使用bluez,蓝牙的移植与bluedroid略有不同。本文主要介绍Ubuntu(蓝牙移植上debian与Ubuntu是一样的)系统下蓝牙移植的相关知识,并给出移植指导。涉及的知识点有bluez下蓝牙的驱动、hciattach的作用、蓝牙电源的控制、蓝牙移植修改点。1 Bluez下内核蓝牙框架简介使用Bluez时,需要内核提供一系列的soc

2016-08-04 20:08:01 23254 5

原创 Linux下sdio设备扫描过程

前言本文基于Linux version 3.10.52版本代码分析sdio设备的扫描过程,同时选择sdio wifi设备作为分析对象,在分析过程中,附带上sdio的协议内容,帮助初学人员学习sdio协议基本内容及sdio的扫描过程。1 SDIO设备接口及内部结构本节介绍SDIO设备的硬件接口及内部寄存器等。1.1 SDIO设备硬件接口SDIO设备的硬件操作接口有3种方式: A、 SPI mode

2016-07-28 19:39:08 12755 1

原创 linux wait返回及timer_create问题

前言前段时间查一个问题,发现应用层在使用wait函数时,在没有等到信号的情况下,wait函数返回了,并且返回值为0,没有超时及异常提示,不符合常理,跟进后发现,虽然c库代码编写不够严谨,但根源是应用层代码对timer_create的不当使用,引入了隐患。在这做一个分析,作为以后分析同类问题的参考。

2016-07-23 15:44:20 2314

原创 Supplicant层socket与内核网口、socket的对应连接

Supplicant层socket与内核网口、socket的对应连接

2016-07-23 15:28:37 1479

原创 wifi的扫描调用过程(从supplicant到kernel)

wifi的扫描调用过程,从supplicant到kernel到wifidriver

2016-07-23 15:20:27 8519

原创 linux内核中Wifi控制部分的通信框架

Wifi控制部分通信走两种接口: A、基于网口的ioctl机制,如wext接口,android或厂家的独有命令,通过register_netdev注册网络ioctl接口,每个网口注册一个; B、基于消息机制,使用netlink接口,如 cfg80211、nl80211,通过wiphy_register注册wiphy接口,每个网口注册一个wiphy; 如下图:

2016-07-20 18:32:38 4503

原创 android wifiNative到linux内核的通信框架

android wifiNative到linux内核的通信框架图

2016-07-20 18:29:07 1675

原创 wifi连接ap的认证过程处理

1、supplicant向驱动发起connect请求; 2、wifi驱动进行Authentication,Association Request,Association Response处理,驱动完成后返回一个connect完成事件给supplicant; 3、supplicant收到connect完成事件后,后面是4 way handshake流程,supplicant监听l2_packet层

2016-07-20 18:24:30 10435

原创 linux输出内核线程栈

打印信息从console控制台输出,先把内核打印等级/proc/sys/kernel/printk调到7;打印单个线程栈:echo tid > /proc/show_stack 打印所有线程栈:echo 0 > /proc/show_stack 打印内核所有线程栈:echo “t” > proc/sysrq-trigger有些内核没有/proc/show_stack节点,就只能使用proc/sy

2016-07-19 09:39:42 1867

原创 P2P GO Client角色的协商

P2P GO Client角色的协商

2016-07-18 19:50:51 10432

原创 linux、android下网桥实现

linux下网桥实现:1、安装编译安装bridge-utils;apt-get install bridge-utils2、配置网桥 brctl addbr bridgeifconfig eth0 downifconfig eth1 downifconfig eth0 0.0.0.0ifconfig eth1 0.0.0.0brctl addif bridge

2016-07-05 19:08:51 2921 1

原创 linux下操作wifi连接(android不启动时操作wifi连接ap)

linux下操作wifi连接(android不启动时操作wifi连接ap)手动通过supplicant操作wifi连接ap

2016-07-05 19:03:09 1581

原创 android 无法休眠查看

1:检查userspace wakelock状态dumpsys powercat /sys/power/wake_lock2:检查kernel wakelock状态cat /sys/kernel/debug/wakeup_sources查看actvie_since列,大于0的会导致无法suspendcat /proc/wakelocks

2016-07-05 19:00:35 2136

原创 trace抓取

打印到trace:应用层:ATRACE_CALL();定义ATRACE_TAG:Hwcomposer使用了ATRACE_TAG_GRAPHICS,表示它和Graphics相关。ATRACE_INIT:用于统计某个变量使用的情况。下文将见到代码中”VSYNC”的统计结果。ATRACE_CALL:用于统计函数的调用情况。内核层:trace_printk("1\n")

2016-07-05 18:53:37 8033

原创 android service名称长度

android service名称长度不能大于16个字节,如下面的setwlpro不能大于16个字节service setwlpro /system/bin/setwlproclass mainoneshot

2016-07-05 18:52:46 677

原创 linux cpu调频

路径:/sys/devices/system/cpu

2016-07-05 18:51:48 481

原创 chrome查看trace

在chrome的地址栏中敲入chrome://tracing/然后通过load 按钮加载你的trace 文件点击箭头工具,选择需要查看的trace

2016-07-05 18:49:55 21547 1

原创 android查看内存使用情况

它从/proc/pid/maps中读取信息来进行统计。源码位于:/system/extras/procrank内存耗用:VSS/RSS/PSS/USSVSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)PSS - Proportional Set Size 实际

2016-07-05 18:48:38 992

原创 android查看input设备

如何查看有哪些input设备?命令:getevent -lp如何确认驱动上报事件?命令:getevent -lt /dev/input/event1问题3:tp/key无法使用如何解锁屏幕?解法1:用input工具模拟tp/key输入按电源键亮屏:input keyevent POWER按MENU键解锁: input keyevent MENU解法2:

2016-07-05 18:47:54 2631

原创 android adb push apk&jar重启机子无效

解法:检查编译配置,关闭odex优化 编译之前,修改BoardConfig.mk中修改:WITH_DEXPREOPT:=false

2016-07-05 18:46:25 2382 1

原创 linux内核版本来源&Android、linux代码在线查看

内核来源官方:www.kernel.orggit clone git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git/Google维护的android参考内核https://github.com/android/kernel_commongit clone https://github.com

2016-07-05 13:43:07 2077

原创 Android wifi触发回连ap的过程

涉及文件位置:Android\frameworks\opt\net\wifi\service\java\com\android\server\wifi\WifiMonitor.javaAndroid\frameworks\opt\net\wifi\service\java\com\android\server\wifi\WifiStateMachine.javaAndroid\fram

2016-07-05 13:17:23 3507

空空如也

空空如也

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

TA关注的人

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