FYI its still a socket. Showing up as target class socket. How its
addressed will either be abstract, via a fs reference or anonymous and
passed via direct IPC.
On Feb 17, 2014 6:12 PM, "Tai Nguyen (tainguye)" <[email protected]> wrote:

>  I think this is a special type of socket - the socket is created based
> on the device id (i.e., sock = hci_open_dev(hci_get_route(NULL))).
> This socket is the connection to the microcontroller of the local
> bluetooth adapter.  It is not typical client-server socket.
>
>  Tai
>
>   From: William Roberts <[email protected]>
> Date: Monday, February 17, 2014 at 8:59 PM
> To: Tai Nguyen <[email protected]>
> Cc: "[email protected]" <[email protected]>
> Subject: Re: How to set Security context for blueZ HCI socket
>
>   Well it depends on who is doing the create and in that code its not
> obvious to me. Is your socket created by the service declaration in
> init.rc? If so then look at the readme, theirs an option for specifying the
> contexts. You may need to do a dynamic type trans for that socket type.
> Depending on kernel version you can use named dynamic type trans.
> On Feb 17, 2014 5:49 PM, "Tai Nguyen (tainguye)" <[email protected]>
> wrote:
>
>>  This is a sample code of HCI socket that blueZ use (
>> http://people.csail.mit.edu/albert/bluez-intro/c404.html)
>>
>>  #include <stdio.h>
>> #include <stdlib.h>
>> #include <unistd.h>
>> #include <sys/socket.h>
>> #include <bluetooth/bluetooth.h>
>> #include <bluetooth/hci.h>
>> #include <bluetooth/hci_lib.h>
>>
>> int main(int argc, char **argv)
>> {
>>     inquiry_info *ii = NULL;
>>     int max_rsp, num_rsp;
>>     int dev_id, sock, len, flags;
>>     int i;
>>     char addr[19] = { 0 };
>>     char name[248] = { 0 };
>>
>>     dev_id = hci_get_route(NULL);
>>     sock = hci_open_dev( dev_id );
>>     if (dev_id < 0 || sock < 0) {
>>         perror("opening socket");
>>         exit(1);
>>     }
>>
>>     len  = 8;
>>     max_rsp = 255;
>>     flags = IREQ_CACHE_FLUSH;
>>     ii = (inquiry_info*)malloc(max_rsp * sizeof(inquiry_info));
>>
>>     num_rsp = hci_inquiry(dev_id, len, max_rsp, NULL, &ii, flags);
>>     if( num_rsp < 0 ) perror("hci_inquiry");
>>
>>     for (i = 0; i < num_rsp; i++) {
>>         ba2str(&(ii+i)->bdaddr, addr);
>>         memset(name, 0, sizeof(name));
>>         if (hci_read_remote_name(sock, &(ii+i)->bdaddr, sizeof(name),
>>             name, 0) < 0)
>>         strcpy(name, "[unknown]");
>>         printf("%s  %s\n", addr, name);
>>     }
>>
>>     free( ii );
>>     close( sock );
>>     return 0;
>> }
>>
>>  Tai
>>
>>   From: William Roberts <[email protected]>
>> Date: Monday, February 17, 2014 at 8:27 PM
>> To: Tai Nguyen <[email protected]>
>> Cc: "[email protected]" <[email protected]>
>> Subject: Re: How to set Security context for blueZ HCI socket
>>
>>   Depends on how the socket gets created. Could you provide more details?
>> On Feb 17, 2014 4:01 PM, "Tai Nguyen (tainguye)" <[email protected]>
>> wrote:
>>
>>>  Our device uses blueZ stack instead of bluedroid, and we have audit
>>> message about unlabeled socket
>>>
>>>  audit(1392652331.875:225): avc:  denied  { read } for  pid=5249
>>> comm="bluetoothd" scontext=u:r:bluetoothd:s0
>>> tcontext=u:object_r:unlabeled:s0 tclass=socket
>>>
>>>  This could be the hci socket that blueZ uses. How do I set security
>>> label for this type of socket?
>>>
>>>  Thanks,
>>> Tai
>>>
>>> _______________________________________________
>>> Seandroid-list mailing list
>>> [email protected]
>>> To unsubscribe, send email to [email protected].
>>> To get help, send an email containing "help" to
>>> [email protected].
>>>
>>>
_______________________________________________
Seandroid-list mailing list
[email protected]
To unsubscribe, send email to [email protected].
To get help, send an email containing "help" to 
[email protected].

Reply via email to