summaryrefslogtreecommitdiffstats
path: root/hcid/simple-service
blob: 5279a3a6dd9f34118abaca8a253eceec17fefb23 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/usr/bin/python

import sys
import time
import dbus

xml = ' \
<?xml version="1.0" encoding="UTF-8" ?> 	\
<record>					\
  <attribute id="0x0001">			\
    <sequence>					\
      <uuid value="0x1101"/>			\
    </sequence>					\
  </attribute>					\
						\
  <attribute id="0x0002">			\
     <uint32 value="0"/>			\
  </attribute>					\
						\
  <attribute id="0x0003">			\
    <uuid value="00001101-0000-1000-8000-00805f9b34fb"/> \
  </attribute>					\
						\
  <attribute id="0x0004">			\
    <sequence>					\
      <sequence>				\
        <uuid value="0x0100"/>			\
      </sequence>				\
      <sequence>				\
        <uuid value="0x0003"/>			\
        <uint8 value="23"/>			\
      </sequence>				\
    </sequence>					\
  </attribute>					\
						\
  <attribute id="0x0005">			\
    <sequence>					\
      <uuid value="0x1002"/>			\
    </sequence>					\
  </attribute>					\
						\
  <attribute id="0x0006">			\
    <sequence>					\
      <uint16 value="0x656e"/>			\
      <uint16 value="0x006a"/>			\
      <uint16 value="0x0100"/>			\
    </sequence>					\
  </attribute>					\
						\
  <attribute id="0x0007">			\
     <uint32 value="0"/>			\
  </attribute>					\
						\
  <attribute id="0x0008">			\
     <uint8 value="0xff"/>			\
  </attribute>					\
						\
  <attribute id="0x0009">			\
    <sequence>					\
      <sequence>				\
        <uuid value="0x1101"/>			\
        <uint16 value="0x0100"/>		\
      </sequence>				\
    </sequence>					\
  </attribute>					\
						\
  <attribute id="0x000a">			\
    <url value="http://www.bluez.org/"/>	\
  </attribute>					\
						\
  <attribute id="0x000b">			\
    <url value="http://www.bluez.org/"/>	\
  </attribute>					\
						\
  <attribute id="0x000c">			\
    <url value="http://www.bluez.org/"/>	\
  </attribute>					\
						\
  <attribute id="0x0100">			\
    <text value="Serial Port"/>			\
  </attribute>					\
						\
  <attribute id="0x0101">			\
    <text value="Serial Port Service"/>		\
  </attribute>					\
						\
  <attribute id="0x0102">			\
     <text value="BlueZ"/>			\
  </attribute>					\
						\
  <attribute id="0x0200">			\
    <sequence>					\
      <uint16 value="0x0100"/>			\
    </sequence>					\
  </attribute>					\
						\
  <attribute id="0x0201">			\
     <uint32 value="0"/>			\
  </attribute>					\
</record>					\
'

bus = dbus.SystemBus()
manager = dbus.Interface(bus.get_object("org.bluez", "/"),
						"org.bluez.Manager")

if len(sys.argv) > 1:
	path = manager.FindAdapter(sys.argv[1])
else:
	path = manager.DefaultAdapter()

adapter = dbus.Interface(bus.get_object("org.bluez", path),
						"org.bluez.Adapter")

handle = adapter.AddServiceRecord(xml)

print "Service record with handle 0x%04x added" % (handle)

print "Press CTRL-C to remove service record"

try:
	time.sleep(1000)
	print "Terminating session"
except:
	pass

adapter.RemoveServiceRecord(dbus.UInt32(handle))