android bluetooth l2cap data flow

android bluetooth l2cap data flow

just read code find data flow

sending_a_message.png
hciacl-l2cap_dataflow.png

add print in kernel and capture l2cap packet

I add follow print code in l2cap_sock.c, after compare with the capture file, we know that skb->len is l2cap packet length, skb->data is l2cap packet data

static void l2cap_do_send(struct l2cap_chan *chan, struct sk_buff *skb)
{
    struct hci_conn *hcon = chan->conn->hcon;
    unsigned char buffer[0x1000];
    unsigned char* p  = buffer;
    u16 flags;
    //change to printk
    printk("chan %p, skb %p len 0x%x priority %u", chan, skb, skb->len,
           skb->priority);
    int i=0;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    for(i=0;i<skb->len && p<buffer+sizeof(buffer)-2;i++){
        sprintf(p,"0x%2x ",skb->data[i]);
        p=p+5;
    }
    *p='\n';
    *(p+1)='\0';
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    printk(buffer);
    if (chan->hs_hcon && !__chan_is_moving(chan)) {
        if (chan->hs_hchan)
            hci_send_acl(chan->hs_hchan, skb, ACL_COMPLETE);
        else
            kfree_skb(skb);

        return;
    }
Screenshot from 2018-09-25 16-07-53.png
Screenshot from 2018-09-25 16-10-11.png
Screenshot from 2018-09-25 16-11-13.png

change the packet length and content

I add following code

int l2cap_chan_send(struct l2cap_chan *chan, struct msghdr *msg, size_t len){
...
char* mydata="413x-send-data";
memcpy(skb->data+8,mydata,sizeof(mydata));
skb->len=0x10;
l2cap_do_send(chan, skb);
...

get bluetooth snoop from pixel, use wireshark to open it

Screenshot from 2018-09-25 17-50-13.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,757评论 2 45
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,095评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,512评论 2 59
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    wgl0419阅读 11,519评论 1 9
  • 自从去了医院工作之后 很少赶上早高峰 拥挤的公交、街道上行色匆匆的行人 早起上学的学生党 卖早点的人们 突然之间有...
    赵小茜biu阅读 3,114评论 8 4

友情链接更多精彩内容