<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[github_33381613的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/github_33381613</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; github_33381613]]></copyright><item><title><![CDATA[CC2640R2 UART 配置]]></title><link>https://blog.youkuaiyun.com/github_33381613/article/details/119270222</link><guid>https://blog.youkuaiyun.com/github_33381613/article/details/119270222</guid><author>github_33381613</author><pubDate>Sat, 31 Jul 2021 09:50:51 +0800</pubDate><description><![CDATA[目录

参考
代码分析

参考
TI 官网 User Guide
参考如何替换成自己的项目的 Board.h 已经 GPIO的配置。
代码分析

这里的UART_count  / UART_config 是  extern，表示是需要外界进行赋值的。

CC2640R2_LAUNCHXL.c

在这个文件中修改UART PIN脚的位置。
UARTCC26XX.c


...]]></description><category></category></item><item><title><![CDATA[epoll 小记]]></title><link>https://blog.youkuaiyun.com/github_33381613/article/details/109531823</link><guid>https://blog.youkuaiyun.com/github_33381613/article/details/109531823</guid><author>github_33381613</author><pubDate>Fri, 06 Nov 2020 15:33:12 +0800</pubDate><description><![CDATA[epoll

]]></description><category></category></item><item><title><![CDATA[Android SELinux 小结]]></title><link>https://blog.youkuaiyun.com/github_33381613/article/details/109080495</link><guid>https://blog.youkuaiyun.com/github_33381613/article/details/109080495</guid><author>github_33381613</author><pubDate>Wed, 14 Oct 2020 22:39:18 +0800</pubDate><description><![CDATA[Android SELinux 知识点
运行模式
SELinux 按照默认拒绝的原则运行：任何未经明确允许的行为都会被拒绝。SELinux 可按两种全局模式运行：

宽容模式：权限拒绝事件会被记录下来，但不会被强制执行。
强制模式：权限拒绝事件会被记录下来并强制执行。

调试中修改运行模式
获取运行模式
getenforce
//Enforcing： seLinux已经打开；        
//Permissive：seLinux已经关闭；

修改运行模式
//关闭selinux
setenforce 0]]></description><category></category></item><item><title><![CDATA[Android Wifi小记 (2)]]></title><link>https://blog.youkuaiyun.com/github_33381613/article/details/108737015</link><guid>https://blog.youkuaiyun.com/github_33381613/article/details/108737015</guid><author>github_33381613</author><pubDate>Tue, 22 Sep 2020 21:39:31 +0800</pubDate><description><![CDATA[Hostapd ACS 开关控制
    public HostapdHal(Context context) {
        mEnableAcs = context.getResources().getBoolean(R.bool.config_wifi_softap_acs_supported);
        mEnableIeee80211AC =
                context.getResources().getBoolean(R.bool.config_wifi_sof]]></description><category></category></item><item><title><![CDATA[启动AP导致system_server挂掉]]></title><link>https://blog.youkuaiyun.com/github_33381613/article/details/108733399</link><guid>https://blog.youkuaiyun.com/github_33381613/article/details/108733399</guid><author>github_33381613</author><pubDate>Tue, 22 Sep 2020 15:53:01 +0800</pubDate><description><![CDATA[错误现象
在Setting中打开AP开关，过一会AP关闭，无法连接。屏幕黑屏。
错误分析
屏幕黑屏，大概率是system_server 进行重启了。从log中看是获取android.hardware.tetheroffload.config@1.0::IOffloadConfig/default失败。然后watchdog直接拉掉system_server。
至于AP关闭，则是system_server在重启过程中拉起WifiService。做初始的时候，将wlan0 节点给disable。
//WifiSe]]></description><category></category></item><item><title><![CDATA[Android Wifi小记]]></title><link>https://blog.youkuaiyun.com/github_33381613/article/details/108275351</link><guid>https://blog.youkuaiyun.com/github_33381613/article/details/108275351</guid><author>github_33381613</author><pubDate>Thu, 10 Sep 2020 14:53:09 +0800</pubDate><description><![CDATA[Wifi代码位置分布




代码路径
作用




/framework/opt/net/wifi/service
运行在system_server进程，位于Framework层。面向上层APP提供Wifi相关的服务


/framework/opt/net/wifi/wifi_hal
运行在android.hardware.wifi@service-1.0 进程。 位于hal层，定义芯片接口方便不同芯片供应商实现。[1]


/external/wpa_supplicant_8
wpa_supplica]]></description><category></category></item><item><title><![CDATA[使用Ellisys抓取蓝牙空中包]]></title><link>https://blog.youkuaiyun.com/github_33381613/article/details/108381276</link><guid>https://blog.youkuaiyun.com/github_33381613/article/details/108381276</guid><author>github_33381613</author><pubDate>Thu, 03 Sep 2020 14:38:53 +0800</pubDate><description><![CDATA[Ellisys 工具
本地使用的Ellisys vanguard 版本。对应的软件下载地址Ellisys vanguard download
是需要填写公司信息，软件本身是免费的。注意如果别人有现成的安装包，在用U盘拷贝的时候一定要注意是否拷贝完整（在Ubuntu下拷贝，进度显示已经完成，但是退出的时候会报错。这种就是没有拷贝完成）。不完整的安装包在安装过程中会提示缺少文件。所以最好是自己下载。
获取操作手册
在安装好软件后，电子快捷栏靠右侧的紫色书本小图标，获取操作手册。也可以通过网址获取，但是网站上的手]]></description><category></category></item><item><title><![CDATA[libnativehelper 加载库失败]]></title><link>https://blog.youkuaiyun.com/github_33381613/article/details/108197322</link><guid>https://blog.youkuaiyun.com/github_33381613/article/details/108197322</guid><author>github_33381613</author><pubDate>Mon, 24 Aug 2020 13:34:32 +0800</pubDate><description><![CDATA[问题现象
Android无法正常启动，但是不影响native进程运行。主要影响zygote 初始化
pid: 8035, tid: 8035, name: main  &gt;&gt;&gt; zygote &lt;&lt;&lt;
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Abort message: 'Error preloading public library libcommonsystem_jni.so: dlopen ]]></description><category></category></item><item><title><![CDATA[如何给三方App进行系统签名]]></title><link>https://blog.youkuaiyun.com/github_33381613/article/details/108104175</link><guid>https://blog.youkuaiyun.com/github_33381613/article/details/108104175</guid><author>github_33381613</author><pubDate>Wed, 19 Aug 2020 17:25:19 +0800</pubDate><description><![CDATA[系统签名
在AOSP 中，package/apps/ 下面的app 会进行系统签名，拥有系统签名后，就可以干一些三方app不能干的时候。但是一般非厂商或者厂商合作方也无法进行系统签名。
源码环境下签名
App源码编译
如果你直接将app源码放在AOSP下编译，可以参考package/apps下任意 app Android.mk 即可
//  Bluetooth/Android.mk
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_F]]></description><category></category></item><item><title><![CDATA[Bluetooth HCI 学习]]></title><link>https://blog.youkuaiyun.com/github_33381613/article/details/107014643</link><guid>https://blog.youkuaiyun.com/github_33381613/article/details/107014643</guid><author>github_33381613</author><pubDate>Sat, 08 Aug 2020 11:47:43 +0800</pubDate><description><![CDATA[四种数据类型


Command (0x1)
协议格式：



ACL Data (0x2)
协议格式：


SCO Data (0x3)
协议格式


Event (0x4)
协议格式：


HCI Command &amp; Events
Link Control Command
参考 Core_v5.2  Vol4 - Part E - P1929


]]></description><category></category></item><item><title><![CDATA[Android通过rc启动三方可执行文件]]></title><link>https://blog.youkuaiyun.com/github_33381613/article/details/107716182</link><guid>https://blog.youkuaiyun.com/github_33381613/article/details/107716182</guid><author>github_33381613</author><pubDate>Fri, 31 Jul 2020 17:13:13 +0800</pubDate><description><![CDATA[步骤

编写rc文件
添加te文件
加入编译

编写rc文件
service dms_server /vendor/bin/dms --flagfile=/vendor/bin/dms.flag
    user root
    oneshot
    group root shell system inet
    disable

on property:vendor.dms.enable=1
    chmod 0777 /mnt/obb
    touch /mnt/obb/raw_driver
]]></description><category></category></item><item><title><![CDATA[AOSP 预编译]]></title><link>https://blog.youkuaiyun.com/github_33381613/article/details/107654280</link><guid>https://blog.youkuaiyun.com/github_33381613/article/details/107654280</guid><author>github_33381613</author><pubDate>Wed, 29 Jul 2020 12:57:04 +0800</pubDate><description><![CDATA[Android.bp 支持的预编译
var prebuiltTypes = map[string]string{
        "SHARED_LIBRARIES": "cc_prebuilt_library_shared",
        "STATIC_LIBRARIES": "cc_prebuilt_library_static",
        "EXECUTABLES":      "cc_prebuilt_binary",
        "JAVA_LIBRARIES":   "java]]></description><category></category></item><item><title><![CDATA[Bluetooth OBEX&PBAP分析 (1)-协议]]></title><link>https://blog.youkuaiyun.com/github_33381613/article/details/107495382</link><guid>https://blog.youkuaiyun.com/github_33381613/article/details/107495382</guid><author>github_33381613</author><pubDate>Wed, 22 Jul 2020 09:20:31 +0800</pubDate><description><![CDATA[OBEX 交互
交互协议格式

opcode （1 Byte）
PBAP 支持的操作如下：

其对应的值如下：

Length (2 Bytes)
长度，感觉不需要多余的解释
Headers
这个比较重要，一条交互协议可能包含多个header。


表示基于OBEX的上层应用协议在请求或响应包中传递的附加信息，也是由一系列连续的Tag-Length-Value构造组成：

支持的属性header

三种常见Opcode
Connect


OBEX version number：已编码的OBEX协议版本，当]]></description><category></category></item><item><title><![CDATA[BlueDroid HFP 源码分析笔记（1）]]></title><link>https://blog.youkuaiyun.com/github_33381613/article/details/107376581</link><guid>https://blog.youkuaiyun.com/github_33381613/article/details/107376581</guid><author>github_33381613</author><pubDate>Thu, 16 Jul 2020 14:18:33 +0800</pubDate><description><![CDATA[BlueDroid 代码分析
对部分代码一眼无法知道运行结果的地方备注。
HPF Connect
可以理解为闭包吧！将参数和方法打包在一起传入队列中等待执行。最终执行的就是 connect_init(),参数就是bd_addr, connect_init。
static bt_status_t connect(RawAddress* bd_addr) {
  return btif_queue_connect(UUID_SERVCLASS_HF_HANDSFREE, bd_addr, connect_int]]></description><category></category></item><item><title><![CDATA[Bluetooth L2CAP 学习]]></title><link>https://blog.youkuaiyun.com/github_33381613/article/details/107055905</link><guid>https://blog.youkuaiyun.com/github_33381613/article/details/107055905</guid><author>github_33381613</author><pubDate>Wed, 01 Jul 2020 18:36:06 +0800</pubDate><description><![CDATA[信道的概念
CID （Channel ID） 在L2CAP层的很重要。
其中有一些固定的CID，比如在ACL_U逻辑链路上，

0x0001 代表Signaling channel
0x0002 代表无连接的信道
0x0040~0xFFFF 用于动态分配（主要用于connection-orientation 面向连接）



基本的信道类型
如下图所示，基本的信道主要是三种：

Connection-oriented
Connectionless Data
L2CAP Signaling
其中面向连接的Co]]></description><category></category></item><item><title><![CDATA[Android StateMachine记录]]></title><link>https://blog.youkuaiyun.com/github_33381613/article/details/106692673</link><guid>https://blog.youkuaiyun.com/github_33381613/article/details/106692673</guid><author>github_33381613</author><pubDate>Thu, 11 Jun 2020 19:12:40 +0800</pubDate><description><![CDATA[分析例子
对StateMachine中例子进行逐步分析
其状态切换逻辑图如下：
        mP1      mP2
       /   \
      mS2   mS1 &lt;-InitState

几条重要的概念：

1 State方法有enter()/exit() 分别在进入状态的和离开当前状态执行
2 状态机初始化的时候，在根节点到初始节点上的节点都会执行enter.且执行顺序是从根节点开始
3 在进行状态切换的时候，是从目标节点向上查找跟当前的节点的共同父节点。如图：

     mP1]]></description><category></category></item></channel></rss>