Commit Graph

1626 Commits

Author SHA1 Message Date
Jakub Tyszkowski
7dbe032c40 android/hal-gatt-api: Add Client Refresh Remote Cache 2014-02-27 21:57:28 +01:00
Jakub Tyszkowski
ca940bfa36 android/hal-gatt-api: Add Client Listen 2014-02-27 21:57:28 +01:00
Jakub Tyszkowski
557fc016de android/hal-gatt-api: Add Client Disconnect Remote 2014-02-27 21:57:27 +01:00
Jakub Tyszkowski
7ab2074a3e android/hal-gatt-api: Add Client Connect Remote 2014-02-27 21:57:27 +01:00
Jakub Tyszkowski
595a5cb7b2 android/hal-gatt-api: Add Client Scan 2014-02-27 21:57:27 +01:00
Jakub Tyszkowski
8b7d09015b android/hal-gatt-api: Add Client Unregister 2014-02-27 21:57:27 +01:00
Jakub Tyszkowski
494dcac6fe android/hal-gatt-api: Add Client Register 2014-02-27 21:57:27 +01:00
Jakub Tyszkowski
3e0e5c15a5 android/hal-gatt-api: Add missing opcodes in GATT Service
Add missing Listen and Set Advertising Data opcodes and reorder them as
they appear in HAL's headers.
2014-02-27 21:57:27 +01:00
Szymon Janc
61a8048b0c android/tester: Add breaks at last cases of switch statements 2014-02-27 15:05:31 +01:00
Jakub Tyszkowski
25d9d91d02 android/tester: Add guard for late callback calls
This fixes callbacks being called in wrong test case when current test
has already failed or timed out.
2014-02-27 15:05:31 +01:00
Szymon Janc
450d49cb07 android/tester: Use signalfd for tracking daemon lifetime
This fixes the main loop being blocked, waiting for daemon termination
while daemon waits for freezed emulator to respond.
2014-02-27 15:05:31 +01:00
Jakub Tyszkowski
1791338b1f android/tester: Execute hh virtual unplug cbacks in main loop
Execute generic HIDHost virtual_unplug_cb in tester's main loop.
2014-02-27 15:05:31 +01:00
Jakub Tyszkowski
36de542148 android/tester: Execute hh report cbacks in main loop
Execute HIDHost generic get_report_cb in tester's main loop.
2014-02-27 15:05:31 +01:00
Jakub Tyszkowski
768f55b498 android/tester: Execute hh protocol mode cbacks in main loop
Execute generic HIDHost protocol_mode_cb in tester's main loop.
2014-02-27 15:05:30 +01:00
Jakub Tyszkowski
baea35a68a android/tester: Execute hh info cbacks in main loop
Execute generic HIDHost hid_info_cb in tester's main loop.
2014-02-27 15:05:30 +01:00
Jakub Tyszkowski
ebfb3817ce android/tester: Execute hh connection state cbacks in main loop
Execute generic HIDHost connection_state_cb in tester's main loop.
2014-02-27 15:05:30 +01:00
Jakub Tyszkowski
1f1de7208f android/tester: Execute socket cbacks in main loop
Execute socket test's callbacks in tester's main loop.
2014-02-27 15:05:30 +01:00
Jakub Tyszkowski
7e9f86e933 android/tester: Execute adapter state changed cbacks in main loop
Execute generic adapter_state_changed_cb in tester's main loop.
2014-02-27 15:05:30 +01:00
Jakub Tyszkowski
75d38d39a0 android/tester: Execute adapter props cbacks in main loop
Execute generic adapter_properties_cb in tester's main loop.
2014-02-27 15:05:30 +01:00
Jakub Tyszkowski
38dc82f3b2 android/tester: Execute device properties cbacks in main loop
Execute generic remote_device_properties_cb in tester's main loop.
2014-02-27 15:05:30 +01:00
Jakub Tyszkowski
420ce17d67 android/tester: Execute discovery state cbacks in main loop
Execute generic discovery_state_changed_cb in tester's main loop.
2014-02-27 15:05:30 +01:00
Jakub Tyszkowski
378d18c25e android/tester: Execute device found cbacks in main loop
Execute generic device_found_cb in tester's main loop.
2014-02-27 15:05:30 +01:00
Andrei Emeltchenko
99af839d74 android/avrcp: Fix passing wrong len
When handling vendor dependent PDUs len was passed in wrong order to
callback function. It is really wrong to pass such a parameter and
expect that callbacks would handle it.
2014-02-26 18:26:04 +01:00
Andrei Emeltchenko
0da74a1afc unit/avrcp: Add /TP/CFG/BV-02-C test
Test verifies that the Target responds to Get Capability request.
2014-02-26 18:26:04 +01:00
Andrei Emeltchenko
ded70b727e android/avrcp: Add avrcp_get_capabilities request
Implement avrcp_get_capabilities() request through
avrcp_send_vendordep_req(). avctp_send_req() is not exported so we use
the functions which are exported by AVCTP code.
2014-02-26 18:26:03 +01:00
Johan Hedberg
32b444a25d build: Link crypto code with the emulator 2014-02-26 17:59:37 +02:00
Grzegorz Kolodziejczyk
6c0e9f03fc android/hal-ipc-api: Fix Add Set Volume command struct packing
This adds missed packed struct attribute to hal-ipc command.
2014-02-26 14:56:33 +01:00
Szymon Janc
c3ff0ca0d0 android/pts: Fix lines over 80 characters 2014-02-24 22:23:34 +01:00
Szymon Janc
af9ebd4a0f android/pts: Update MAP tests results 2014-02-24 22:12:52 +01:00
Szymon Janc
93c12a9281 android/hal-ipc: Fix race condition when closing IPC
Protect command socket cleanup with mutex to avoid bogus exit when
stopping notification thread.
2014-02-24 20:28:41 +01:00
Szymon Janc
3c7f2c9430 android/bluetooth: Don't set remote name to empty string
If remote device has name but it is empty (0 bytes) just ignore it and
continue using address as name. This will avoid sending remote device
property notification with empty name.
2014-02-24 20:28:41 +01:00
Luiz Augusto von Dentz
1e8a6d5b4d android/avctp: Checks error on send_event
In case of EINTR retry sending the event otherwise print the errno.
2014-02-24 17:02:11 +01:00
Luiz Augusto von Dentz
569685b752 android/avctp: Fix failing silently if uinput is not initialized
This adds a check for uinput before attempting to use send_key and if it
is not initialized response with AVC_CTYPE_NOT_IMPLEMENTED which is the
same code used when a unkown key is received.
2014-02-24 17:02:11 +01:00
Andrei Emeltchenko
6f51c94e27 android/avctp: Set uinput to invalid fd when creating session
When AVCTP session was created uinput was zero which is valid file
descriptor and that was conflicting with socketpair() fds.
2014-02-24 17:02:11 +01:00
Szymon Janc
aa887bf05a android: Update socket service id name to match service name 2014-02-24 13:45:09 +01:00
Luiz Augusto von Dentz
3dd85709ac android/avrcp-lib: Add avrcp_set_passthrough_handlers
This adds avrcp_set_passthrough_handlers which can be used to set
pass-through PDU handlers table and user data.
2014-02-24 13:34:18 +01:00
Luiz Augusto von Dentz
8656a965de android/avrcp-lib: Add avrcp_set_control_handlers
This adds avrcp_set_control_handlers which can be used to set control
PDU handlers table and user data.
2014-02-24 13:33:59 +01:00
Luiz Augusto von Dentz
2b0a3f5c7c android/avrcp-lib: Rename AVCTP session to conn 2014-02-24 13:33:51 +01:00
Andrei Emeltchenko
9f42e2dfc0 android/avrcp: Use NULL for zero pointers 2014-02-24 13:25:25 +01:00
Szymon Janc
64d17c7904 android: Add pts-pan.txt to EXTRA_DIST 2014-02-24 12:12:25 +01:00
Szymon Janc
34f32c03dd android/handsfree: Use HFP code for connection handling
HFP code is now able to handle disconnection on its own so just use
this instead of using own watches.
2014-02-24 10:49:38 +01:00
Andrei Emeltchenko
b4f90cf6f9 android/tester: Fix slang "never used" warning
The patch fixes following warning:
...
android/android-tester.c:2185:2: warning: Value stored to
'adapter_status' is never read
        adapter_status = data->if_bluetooth->set_adapter_property(prop);
        ^                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
2014-02-24 10:28:57 +01:00
Szymon Janc
07a07fadca android: Add --leak-check=full option to valgrin in system-emulator 2014-02-22 21:56:46 +01:00
Szymon Janc
c6d09297cd android/bluetooth: Fix memory leak in store_link_key
If loading key file from file failed free key file. This fix following:

490 (40 direct, 450 indirect) bytes in 1 blocks are definitely lost in
    loss record 122 of 126
   at 0x4028B4C: malloc (vg_replace_malloc.c:291)
   by 0x40A25B2: g_malloc (in /lib/i386-linux-gnu/
    libglib-2.0.so.0.3800.2)
   by 0x40B8DB1: g_slice_alloc (in /lib/i386-linux-gnu/
    libglib-2.0.so.0.3800.2)
   by 0x40B92DC: g_slice_alloc0 (in /lib/i386-linux-gnu/
    libglib-2.0.so.0.3800.2)
   by 0x40946BB: g_key_file_new (in /lib/i386-linux-gnu/
    libglib-2.0.so.0.3800.2)
   by 0x8054A84: new_link_key_callback (bluetooth.c:563)
   by 0x804FB44: notify_handler (mgmt.c:278)
   by 0x804F357: queue_foreach (queue.c:186)
   by 0x804FE6C: can_read_data (mgmt.c:290)
   by 0x804ED12: read_callback (io-glib.c:168)
   by 0x40E0CF4: ??? (in /lib/i386-linux-gnu/libglib-2.0.so.0.3800.2)
   by 0x409CAED: g_main_context_dispatch (in /lib/i386-linux-gnu/
    libglib-2.0.so.0.3800.2)
2014-02-22 21:56:46 +01:00
Marcel Holtmann
c7ccca8027 android: Add extra empty line in API docs 2014-02-21 22:09:21 -08:00
Marcel Holtmann
1fb4f90818 android: Fix copy&paste issue in error message 2014-02-21 10:20:35 -08:00
Sebastian Chlad
b1dd7119df android/pts: Update test results for A2DP 2014-02-21 17:54:36 +01:00
Andrzej Kaczmarek
8648ed970e android/socket: Fix calling cleanup with invalid pointer 2014-02-21 15:29:09 +01:00
Andrzej Kaczmarek
f68a71a4d4 android/hal-audio: Add simple downmix to mono
This patch adds simple downmix support from stereo to mono in order to
support mono channel mode as it's mandatory for SBC codec. It uses
simple (L+R)/2 calculation which should be good enough.
2014-02-21 13:01:50 +01:00
Grzegorz Kolodziejczyk
fd25ce76a2 android/tester: Fix Discovery Stop - Success test case
This removes start discovery returned status check what derives double
check of expected status. Returned status should be only checked for cancel
discovery.
2014-02-21 12:53:22 +01:00
Grzegorz Kolodziejczyk
dc8221d63d android/tester: Fix tester setup result set
Tester setup result is set to pass after set to fail because of missing
function return. This adds return from function after setting of setup
result to fail.
2014-02-21 12:53:22 +01:00
Lukasz Rymanowski
240eec7fed android: Do not resolve name if we have it in the cache
With this patch, deamon will not ask kernel to resolve name of remote
device during inquiry in case device name is already in the local cache.
Instead Android will be updated with already known device name.
2014-02-21 11:45:12 +01:00
Lukasz Rymanowski
be76f91c20 android: Add resolve_name parameter to confirm_device_name 2014-02-21 11:45:11 +01:00
Sebastian Chlad
42698720dd android/pts: PTS test results for PAN
This adds initial PTS test results for PAN profile.
2014-02-21 11:18:37 +01:00
Sebastian Chlad
37178ee0d9 android/pixit: correct PIXIT value
It is important for NAP role to set proper PTS btaddr in PIXIT
2014-02-21 11:18:37 +01:00
Szymon Janc
46246ab913 android/hal-handsfree: Use fixed size buffers for commands
This make code follow same conventions for all commands and simplify
code.
2014-02-21 11:18:37 +01:00
Szymon Janc
4d28eb85b7 android/hal-bluetooth: Use fixed size buffers for commands
This make code follow same conventions for all commands.
2014-02-21 11:18:37 +01:00
Andrei Emeltchenko
4351d46804 android: Add initial AVRCP common code
The patch makes AVRCP to be transport agnostic so that it can be used in
with socket pair to build unit tests.

The idea is that all AVRCP specific logic will stay on avrcp-lib until it
receives proper unit tests and then eventually will be used by audio
plugin as well.
2014-02-20 13:57:55 +02:00
Andrzej Kaczmarek
62261d0b6b android/README: Add note on libglib under Valgrind 2014-02-19 20:26:52 +01:00
Luiz Augusto von Dentz
3fb59115b7 android/hal-avrcp: Add notification handlers 2014-02-19 19:17:16 +01:00
Luiz Augusto von Dentz
32cc2bedbf android/hal-avrcp: Add .set_volume implementation 2014-02-19 19:17:16 +01:00
Luiz Augusto von Dentz
6753264d4e android/hal-avrcp: Add .register_notification_rsp implementation 2014-02-19 19:17:16 +01:00
Luiz Augusto von Dentz
5c3c1441ed android/hal-avrcp: Add .set_player_app_value_rsp implementation 2014-02-19 19:17:16 +01:00
Luiz Augusto von Dentz
96b14998e6 android/hal-avrcp: Add .get_element_attr_rsp implementation 2014-02-19 19:17:16 +01:00
Luiz Augusto von Dentz
3656c6fb14 android/hal-avrcp: Add .get_player_app_value_text_rsp implementation 2014-02-19 19:17:16 +01:00
Luiz Augusto von Dentz
7d519df9df android/hal-avrcp: Add .get_player_app_attr_text_rsp implementation 2014-02-19 19:17:16 +01:00
Luiz Augusto von Dentz
36f0586325 android/hal-avrcp: Add .get_player_app_value_rsp implementation 2014-02-19 19:17:15 +01:00
Luiz Augusto von Dentz
d4b59ee629 android/hal-avrcp: Add .list_player_app_value_rsp implementation 2014-02-19 19:17:15 +01:00
Luiz Augusto von Dentz
5aa5117647 android/hal-avrcp: Add .list_player_app_attr_rsp implementation 2014-02-19 19:17:15 +01:00
Luiz Augusto von Dentz
604acf4a34 android/hal-avrcp: Add .get_play_status implementation 2014-02-19 19:17:15 +01:00
Luiz Augusto von Dentz
b41ca5f43e android/avrcp: Add command handlers stubs 2014-02-19 19:17:15 +01:00
Luiz Augusto von Dentz
ff33778a87 android/hal-ipc-api: Use variable length for text attributes
This prevent having to increase the MTU size just to fit all attributes
when in fact some attributes are numbers (3 out of 8) in text format
which should not get even close to use 256 bytes defined by bt_rc.h.
2014-02-19 19:17:15 +01:00
Luiz Augusto von Dentz
1446bca69d android/hal-ipc-api: Add Set Volume command 2014-02-19 19:17:15 +01:00
Szymon Janc
6c1c75b368 android: Match socket IPC messages types with HAL name 2014-02-19 18:37:03 +01:00
Szymon Janc
c3b4322d18 android/hal-socket: Match functions names with HAL name 2014-02-19 18:37:03 +01:00
Szymon Janc
1f7c726bfd android/hal-sock: Rename to hal-socket
This will match convention used for lib and daemon part of HAL.
2014-02-19 18:37:03 +01:00
Szymon Janc
e323df9475 android/socket: Move statics declarations after types definitions
This also makes connections list static.
2014-02-19 18:37:03 +01:00
Szymon Janc
70bc1db7a2 android/hidhost: Add idle time callback implementation
Although this callback is for deprecated functionality and
corresponding notification is never send by daemon it should be
implemented for library and IPC completeness.
2014-02-19 18:37:03 +01:00
Szymon Janc
9d1f5a9ca9 android/pts: Update MAP results 2014-02-19 17:05:46 +01:00
Szymon Janc
fbe1e434a5 android/pixit: Update MAP setting 2014-02-19 17:05:46 +01:00
Szymon Janc
90b8f78803 android/pts: Update PTS test results for PBAP 2014-02-19 17:05:46 +01:00
Szymon Janc
307e4e14b3 android/pics: Fix PBAP settings 2014-02-19 17:05:46 +01:00
Szymon Janc
2ed242f4e9 android/socket: Update PBAP profile version in SDP record
Android supports PBAP 1.1.
2014-02-19 17:05:38 +01:00
Lukasz Rymanowski
f4ff283b43 android: Fix for BT Turn off while pairing
This patch fix an issue when Android disables BT during ongoing
paring. In this case mgmt did not accept any commands and BT gets
in some unknown state.
Since Android turns off BT anyway, it is ok to just cancel all
the mgmt requests before send power off command.
2014-02-17 14:42:15 +01:00
Marcel Holtmann
8addbf220e monitor: Add support for resolving random addresses 2014-02-17 00:23:29 -08:00
Andrei Emeltchenko
29fa9f53d8 android: Fix memory leak: uuid free
Free uuid before exiting.
2014-02-14 11:35:16 +01:00
Luiz Augusto von Dentz
0d8db636db android/hal-ipc-api: Add Passthrough Command notification 2014-02-14 11:30:10 +01:00
Luiz Augusto von Dentz
16b11a26a3 android/hal-ipc-api: Add Volume Changed notification 2014-02-14 11:30:10 +01:00
Luiz Augusto von Dentz
a040d1bfa1 android/hal-ipc-api: Add Register Notification notification 2014-02-14 11:30:10 +01:00
Luiz Augusto von Dentz
eebb90c754 android/hal-ipc-api: Add Get Element Attributes notification 2014-02-14 11:30:10 +01:00
Luiz Augusto von Dentz
83541b26ed android/hal-ipc-api: Add Set Player Values notification 2014-02-14 11:30:10 +01:00
Luiz Augusto von Dentz
a788d22d81 android/hal-ipc-api: Add Get Player Values Text notification 2014-02-14 11:30:10 +01:00
Luiz Augusto von Dentz
d69e42b45d android/hal-ipc-api: Add Get Player Attributes Text notification 2014-02-14 11:30:10 +01:00
Luiz Augusto von Dentz
cb78844274 android/hal-ipc-api: Add Get Player Values notification 2014-02-14 11:30:10 +01:00
Luiz Augusto von Dentz
c6a6cb31c7 android/hal-ipc-api: Add List Player Values notification 2014-02-14 11:30:10 +01:00
Luiz Augusto von Dentz
e23e02ed6a android/hal-ipc-api: Add List Player Attributes notification 2014-02-14 11:30:10 +01:00
Luiz Augusto von Dentz
eb1263196b android/hal-ipc-api: Add Get Play Status notification 2014-02-14 11:30:10 +01:00
Luiz Augusto von Dentz
786229f4f8 android/hal-ipc-api: Add Remote Features notification 2014-02-14 11:30:10 +01:00
Anderson Lizardo
ed1d75bee9 android/test-ipc: Use correct boolean values for glib functions 2014-02-12 20:20:03 +01:00
Luiz Augusto von Dentz
625fb585f5 android/hal-ipc-api: Add Register Notification Response 2014-02-12 19:26:32 +01:00
Luiz Augusto von Dentz
8c897760ca android/hal-ipc-api: Add Set Player Attributes Value Response 2014-02-12 19:26:32 +01:00
Luiz Augusto von Dentz
aad6de2ef1 android/hal-ipc-api: Add Get Element Attributes Text Response 2014-02-12 19:26:32 +01:00
Luiz Augusto von Dentz
c333844d4c android/hal-ipc-api: Add Get Player Values Text Response 2014-02-12 19:26:32 +01:00
Luiz Augusto von Dentz
c5522c9b0e android/hal-ipc-api: Add Get Player Attributes Text Response 2014-02-12 19:26:32 +01:00
Luiz Augusto von Dentz
0ff573021f android/hal-ipc-api: Add Get Player Attributes Response 2014-02-12 19:26:32 +01:00
Luiz Augusto von Dentz
341fe1cd57 android/hal-ipc-api: Add List Player Values Response 2014-02-12 19:26:32 +01:00
Luiz Augusto von Dentz
abe47600a8 android/hal-ipc-api: Add List Player Attributes Response 2014-02-12 19:26:32 +01:00
Luiz Augusto von Dentz
94b3b2b76f android/hal-ipc-api: Add Get Play Status Response 2014-02-12 19:26:32 +01:00
Andrei Emeltchenko
a6d0df8950 android/socket: Fix wrong memory access
This fixes accessing proto[2] in the code.
2014-02-12 15:23:22 +01:00
Szymon Janc
71f6681382 android/README: Update with implementation status summary
This will give a better overview of implemented features.
2014-02-12 13:59:55 +01:00
Andrzej Kaczmarek
968be4037c android/socket: Fix sockets security
Socket security shall be based on flags passed from HAL.

Android public API uses both encrypt and auth flags for "secure"
sockets which should be mapped to high security on our side, but since
this would also trigger requirement for 16-digits pin code (which is
not used in Android) we'll ignore auth flag and use either low or
medium security based on encrypt flag value only.
2014-02-12 13:50:49 +01:00
Andrzej Kaczmarek
4e3ad171df android/socket: Update channel numbers
OPP and PBAP channel numbers are set to same values as in Bluedroid.
Both MAP and SPP use channel numbers assigned dynamically.
2014-02-12 13:50:49 +01:00
Andrzej Kaczmarek
5b2756dd9b android/socket: Include HF AG in built-in profiles
This patch adds entry for HF AG profile in built-in profiles list. This
it to reserve channel number so it's not assigned to other service
registered by application. Method for creating SDP record is not
provided so it's not possible for application to register HF AG service
by mistake (this can be only done by handsfree profile implementation).
2014-02-12 13:50:49 +01:00
Andrzej Kaczmarek
6c411b1832 android/socket: Register SDP record for application service
This patch adds SDP record for services registered from application
(other than built-in services).
2014-02-12 13:50:49 +01:00
Andrzej Kaczmarek
a41087b916 android/socket: Add support for dynamic channel numbers
This patch adds support to register server with channel number assigned
dynamically, i.e. first free number is assigned. Channels which are
reserved for built-in services are not assigned for other services.
2014-02-12 13:50:49 +01:00
Andrzej Kaczmarek
f6b4d248ed android/tester: Update test data
Trying to listen on already assigned channel will now return busy
status instead of just fail.
2014-02-12 13:50:49 +01:00
Andrzej Kaczmarek
7f9ab50d9d android/socket: Make servers list as static array
Since there is only small, fixed number of channels to allocate for
RFCOMM servers we can store them in static array. This will make
lookup for free channel simpler once we add support to assign channel
numbers dynamically.

At startup, channels reserved for built-in services which have static
channel number are marked as reserved so they cannot be assigned for
other service.
2014-02-12 13:50:49 +01:00
Andrzej Kaczmarek
18f045b574 android/socket: Simplify SDP records handling
Records are now created using helper function which creates SDP record
with common contents like service class, name and protocols. Other
attributes are then added by custom functions.
2014-02-12 13:50:49 +01:00
Andrzej Kaczmarek
a5e248b29d android/socket: Improve logging
This patch makes logging more consistent by including rfsock pointer in
most messages which identifies socket structure unambigously (instead
of using bunch of file descriptors for the same purpose) and puts other
parameters in order in some cases.

Additionally, some new logs are introduced to better track socket
structures and connections lifetime.
2014-02-12 13:50:49 +01:00
Andrzej Kaczmarek
30023350be android/socket: Refactor socket related symbol names
This patch changes names of symbols related to various sockets to be
consistent and easier to follow in code.

Symbols related to actual BT (RFCOMM) socket are prefixed with "bt_".
Symbols related to local socket for Java comm are prefixed with "jv_".
Remote socket for Java comm is called "hal_sock".
2014-02-12 13:50:49 +01:00
Andrzej Kaczmarek
eb5e7f97e6 android/bluetooth: Handle 128-bit UUIDs
It's now possible to add record with 128-bit UUID Service Class which
are used for custom applications. To simplify implementation adapter
uuids list stores now full UUID in uuid_t structure instead of uint16_t
short UUID.
2014-02-12 13:50:49 +01:00
Szymon Janc
b751d1894b android: Fix btmon build 2014-02-12 13:49:53 +01:00
Anderson Lizardo
124f6f0595 android: Add test-ipc to "make check" 2014-02-12 11:49:31 +02:00
Anderson Lizardo
10be885113 android/test-ipc: Fix crash due to invalid ipc_register() parameter
This test checks for proper handling of invalid Service ID on a IPC
message, but it was attempting to register handlers for this invalid ID,
which on current ipc_register() implementation was causing a buffer
overrun.

The fix was to use a valid ID during registration, but still attempt to
use an invalid one when sending the message.
2014-02-12 11:26:56 +02:00
Anderson Lizardo
e6c0fa067b android/client: Fix set_info command
Although this command is not implemented by BlueZ, make sure it is
callable from haltest so at least the IPC can be tested.

Also memset() the hid_info parameter to not pass uninitialized data
around.
2014-02-12 11:26:56 +02:00
Anderson Lizardo
cdbede8514 android/hidhost: Trivial coding style fix
Fix two lines over 80 columns.
2014-02-12 11:26:56 +02:00
Anderson Lizardo
03a24ae461 android/tester: Update SDP PDU after UUID change
Now it is expected to receive a 16-bit UUID for PNP_INFO.
2014-02-12 11:26:56 +02:00
Anderson Lizardo
9b00e93b11 android: Use 16-bit UUID for SDP search
These UUIDs are assigned by BT-SIG and therefore there is no need to
use full 128-bit UUIDs. This also avoids unnecessary conversion from
string representation.
2014-02-12 11:26:56 +02:00
Marcel Holtmann
cde69653e0 android: Update copyright and license details 2014-02-11 10:42:56 -08:00
Andrzej Kaczmarek
0a38f7f3e5 android/README: Add Valgrind description 2014-02-11 17:31:42 +01:00
Andrzej Kaczmarek
1b7c044dc4 android: Add support for Valgrind in debug variants
This patch allows bluetoothd to be run with Valgrind easily in debug
variants.

For userdebug and eng variants bluetoothd is renamed to bluetoothd-main
and bluetoothd acts a wrapper to launch it either with or without
Valgrind (this is decided by value of persist.sys.bluetooth.valgrind
property).
2014-02-11 17:31:39 +01:00
Szymon Janc
ba4702b208 android/handsfree: Use uint16_t for buffer length in IPC messages
This will match other IPC messages format.
2014-02-10 16:08:50 +01:00
Szymon Janc
5827e1f047 android: Fix Handsfree volume command notification description 2014-02-10 13:38:36 +01:00
Szymon Janc
b79d1f2d39 android/hal-msg: Match handsfree structures to IPC document 2014-02-10 13:38:36 +01:00
Luiz Augusto von Dentz
ea609c0b01 android/avdtp: Fix coding style
Respect 80 columns limit.
2014-02-10 14:08:45 +02:00
Andrei Emeltchenko
00c35d3f1d android/avdtp: Fix passing NULL pointer to memcpy
The patch fixes following clang warning:
...
profiles/audio/avdtp.c:3293:2: warning: Null pointer passed as an
argument to a 'nonnull' parameter
        memcpy(cap->data, data, length);
        ^                 ~~~~
2014-02-10 14:08:45 +02:00
Andrei Emeltchenko
47f6853fa2 android/avdtp: Fix passing NULL pointer to memcpy
send_request can be called as
send_request(session, FALSE, NULL, AVDTP_DISCOVER, NULL, 0) with NULL
pointer which is passed to memcpy().
2014-02-10 14:08:45 +02:00
Andrei Emeltchenko
600ad0f6cd android/haltest: Remove unneeded assignment 2014-02-10 14:08:45 +02:00
Szymon Janc
d2e481c322 android/build: Some whitespace fixes 2014-02-10 13:05:45 +01:00
Szymon Janc
6a43401fb7 android/build: Match compiler options used in autotools and Android.mk 2014-02-10 13:05:45 +01:00
Andrzej Kaczmarek
4190ac1223 android/a2dp: Fix audio deregistration
Unregistering a SEP can trigger abort_cfm callback if some device is
connected thus we should free setups list after all endpoints are
unregistered to avoid error in abort_cfm due to non-existing setup.
2014-02-10 13:22:57 +02:00
Andrzej Kaczmarek
496dd38b11 android/a2dp: Disconnect headset on IPC failure
In case audio IPC is suddenly disconnected (most likely due to crash of
mediaserver process) we should disconnect headset since it is no longer
associated with valid setup and cannot be used properly.
2014-02-10 13:22:57 +02:00
Andrzej Kaczmarek
17b55a1f90 android/hal-audio: Write SBC parameters to logcat 2014-02-10 13:22:57 +02:00
Andrzej Kaczmarek
3290badf07 android/hal-audio: Ignore write call when closing
We should not try to neither auto-resume nor write when state is set to
NONE as this is case when we're being closed and it's ok do ignore
write request.
2014-02-10 13:22:57 +02:00
Andrzej Kaczmarek
217b2102f1 android/a2dp: Notify audio state on SEP close 2014-02-10 13:22:57 +02:00
Andrzej Kaczmarek
4e50a5f7ff android/a2dp: Shutdown AVDTP gracefully
When shutting down AVDTP connection we first abort and wait for stream
to go to idle state before disconnecting signalling channel.
2014-02-10 13:22:56 +02:00
Andrei Emeltchenko
a7032c97ef android/haltest: Close file in case of error 2014-02-07 11:03:08 +01:00
Szymon Janc
7bb2a16843 android/pan: Bring bridge interface down before removing it
Otherwise bridge will be 'in use' and won't be removed.
2014-02-07 11:21:22 +02:00
Szymon Janc
5ab76c6042 android/pan: Pass error in nap_remove_bridge
Don't return EOPNOTSUPP but just pass error from errno.
2014-02-07 11:21:22 +02:00
Szymon Janc
b4fbbb033e android/pan: Use ioctl instead of sysfs for setting forward delay
Using sysfs is causing problems due to filesystem permissions
(bluetoothd is running as bluetooth user) and bluetoothd already has
required capabilities for setting forward delay through ioctl.
2014-02-07 11:21:22 +02:00
Ravi kumar Veeramally
ce8bf58e5f android/pan: Fix bnep interface name
Android uses bt-pan static interface in PAN profile. In server role
it uses it as bridge name. But current implementaion passes interface
names like bnep0, bnep1... Android Framework is unaware of this name
and unable to allocate IP address after profile connection setup.
2014-02-07 11:21:22 +02:00
Szymon Janc
375bed1c4d android/pan: Fix unregistering NAP bridge
This fix not removing NAP bridge in case of error or last device
disconnect.
2014-02-07 11:21:22 +02:00
Szymon Janc
29bf1a3aab android/pan: Move functions up to avoid forward declarations 2014-02-07 11:21:22 +02:00
Szymon Janc
800c6b6678 profiles/network: Allow to pass interface name to bnep_new 2014-02-07 11:21:22 +02:00
Szymon Janc
7498648468 android/client-audio: Fix not stopping play thread on write error 2014-02-06 15:08:57 +01:00
Luiz Augusto von Dentz
7af429c001 android/pan: Use g_slist_free_full to free devices list
Calling g_slist_remove within the callback of g_slist_foreach is very
inefficient as it has to iterate in the list twice to figure which
element to remove.
2014-02-06 15:23:50 +02:00
Luiz Augusto von Dentz
1d1fc983e4 android/hidhost: Use g_slist_free_full to free devices list
Calling g_slist_remove within the callback of g_slist_foreach is very
inefficient as it has to iterate twice in the list to figure which
element to remove.
2014-02-06 15:23:00 +02:00
Luiz Augusto von Dentz
939d25f0b0 android/AVRCP: Fix possible invalid read
Like in A2DP case it is not safe to call g_slist_remove within
g_slist_free_full callback.
2014-02-06 14:32:18 +02:00
Luiz Augusto von Dentz
8da3f38086 android/A2DP: Fix invalid read
Invalid read of size 8
   at 0x30EE465A78: g_slice_free_chain_with_offset (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x418209: bt_a2dp_unregister (a2dp.c:1576)
   by 0x4039E6: main (main.c:347)
 Address 0x4f2d248 is 8 bytes inside a block of size 16 free'd
   at 0x4A07577: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x30EE44EF7E: g_free (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x30EE4655CA: g_slice_free1 (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x30EE465F0C: g_slist_remove (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x41645F: a2dp_device_free (a2dp.c:174)
   by 0x30EE466477: g_slist_foreach (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x30EE46649A: g_slist_free_full (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x418209: bt_a2dp_unregister (a2dp.c:1576)
   by 0x4039E6: main (main.c:347)
2014-02-06 14:00:56 +02:00
Luiz Augusto von Dentz
cbce18be22 audio/AVCTP: Lookup key name from key_map table
The key_map table already contain the key name.
2014-02-05 16:23:42 +02:00
Luiz Augusto von Dentz
b47d64f7a5 audio/AVCTP: Add keys that can be mapped to uinput
This adds the remaining AV/C keys that can be mapped to uinput.
2014-02-05 16:22:22 +02:00
Jakub Tyszkowski
83c7a21fe4 android/client-audio: Add sine generator as fallback
When no audio file path is provided use sine generator.
2014-02-05 15:08:24 +01:00
Jakub Tyszkowski
5002b8a9b9 android/client-audio: Add init_check
Add calling init check for audio device.
2014-02-05 15:08:24 +01:00
Jakub Tyszkowski
11bdba6ee4 android/client-audio: Add setting sample rate
Add setting sample rate for output stream.
2014-02-05 15:08:24 +01:00
Jakub Tyszkowski
0a72877566 android/client-audio: Add set_parameters
Add seting output stream parameters using key=value pairs string
(key1=value1;key2=value2).
2014-02-05 15:08:24 +01:00
Jakub Tyszkowski
0fa227bd77 android/client-audio: Add get_parameters for output
Get current parameters for the audio stream.
2014-02-05 15:08:24 +01:00
Jakub Tyszkowski
9613c04075 android/client-audio: Add getting sample rate
Get current sample rate for output stream.
2014-02-05 15:08:24 +01:00
Jakub Tyszkowski
5c4241f514 android/client-audio: Add getting audio format
Get current audio format for output stream.
2014-02-05 15:08:24 +01:00
Jakub Tyszkowski
3fd697c505 android/client-audio: Add get_channels
Get audio channels configuration.
2014-02-05 15:08:24 +01:00
Jakub Tyszkowski
6f94ee9b6d android/client-audio: Add get_buffer_size for output
Get buffer size for output stream.
2014-02-05 15:08:24 +01:00
Jakub Tyszkowski
e19841f0d3 android/client-audio: Add get_latency for output
Get output stream latency.
2014-02-05 15:08:24 +01:00
Jakub Tyszkowski
d40b147c2b android/client-audio: Add playback suspend/resume
Add audio stream suspending and resuming.
2014-02-05 15:08:24 +01:00
Jakub Tyszkowski
66e32e61d5 android/client-audio: Add audio file playback
This patch adds audio file playback capability. Proper 16-bit signed
float stereo PCM file is needed.
2014-02-05 15:08:24 +01:00
Jakub Tyszkowski
4d36a19391 android/client-audio: Add open/close output stream
Add opening and closing output stream.
2014-02-05 15:08:24 +01:00
Jakub Tyszkowski
1e831f0551 android/client-av: Fix checking for a2dp interface 2014-02-05 15:08:24 +01:00
Luiz Augusto von Dentz
16c6bf15d5 android: Disconnect AVRCP once A2DP is disconnected
If A2DP is disconnected also disconnect AVRCP.
2014-02-05 14:44:20 +01:00
Luiz Augusto von Dentz
a8a4a233b9 android: Connect AVRCP once A2DP is connected
In case of being the initiator of the A2DP connection also attempt to
connect AVRCP.
2014-02-05 14:44:20 +01:00
Luiz Augusto von Dentz
65cfccf1b1 android/AVRCP: Add bt_avrcp_disconnect
This adds bt_avrcp_disconnect function which can be used to disconnect
AVRCP sessions.
2014-02-05 14:44:20 +01:00
Luiz Augusto von Dentz
d0d30cace4 android/AVRCP: Add bt_avrcp_connect
This adds bt_avrcp_connect function which can be used to request AVRCP
connections.
2014-02-05 14:44:20 +01:00
Andrei Emeltchenko
ed713a8319 android/handsfree: Fix memory leak
Free classes if sdp_get_access_protos fails.
2014-02-05 14:44:20 +01:00
Szymon Janc
5ca0c401ef android/handsfree: Fix address printed in debug 2014-02-05 11:15:33 +01:00
Sebastian Chlad
7bc33b7eb3 android/pts: Update PICS and PTS for AVCTP
Since we do not support AVCTP fragmentation for now we shell set PICS
settings for AVCTP accordingly as well as set respective PTS test cases
as N/A
2014-02-05 10:46:59 +01:00
Szymon Janc
f52cd974a3 android/handsfree: Use NULL instead of zero for pointers 2014-02-05 10:03:30 +01:00
Szymon Janc
077a899e87 android/handsfree: Add disconnect command handling 2014-02-05 09:53:54 +01:00
Szymon Janc
9ae2eda45d android/handsfree: Add connect command handling
This allows to query SDP for RFCOMM channel and connect.
2014-02-05 09:53:54 +01:00
Szymon Janc
d404ab9874 android/handsfree: Add initial code for AT commands processing
Currently always reply with error and disconnect connection.
2014-02-05 09:53:54 +01:00
Szymon Janc
d08d1dbb2a android/handsfree: Add support for RFCOMM connection handling
This adds incoming connection handling and initial connection state
tracking. Only one device is allowed to be connected at the same time.
2014-02-05 09:53:54 +01:00
Szymon Janc
82d4ce30ce android/handsfree: Add SDP record for AG
Service Name: Hands-Free Audio GatewayService RecHandle: 0x10001
Service Class ID List:
  "Handsfree Audio Gateway" (0x111f)
  "Generic Audio" (0x1203)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 13
Profile Descriptor List:
  "Handsfree" (0x111e)
    Version: 0x0106
2014-02-05 09:53:53 +01:00
Szymon Janc
370e59fe13 android/hal-handsfree: Implement sending commands
This implements HAL interface methods and pass commands over IPC.
2014-02-05 09:53:53 +01:00
Szymon Janc
2d9378292f android/hal-handsfree: Implement notifications handling
This implements all notifications handlers and call proper HAL
callbacks.
2014-02-05 09:53:53 +01:00
Szymon Janc
74241d6755 android/handsfree: Add stubs for commands handlers
Add empty handlers for all IPC commands.
2014-02-05 09:53:53 +01:00
Szymon Janc
729fd52b8b android/handsfree: Add commands and events definition to IPC header 2014-02-05 09:53:53 +01:00
Szymon Janc
db17fbe467 android/handsfree: Add initial files
This adds initial HAL and daemon code for Handsfree profile.
2014-02-05 09:53:53 +01:00
Szymon Janc
49b7522726 android/bluetooth: Send prop change event only if prop was changed 2014-02-05 09:46:33 +01:00
Szymon Janc
13f1bbffef android/bluetooth: Refactor update_found_device function
This function grown too big and was hard to follow. Split it to helpers
for clarity.
2014-02-05 09:46:33 +01:00
Szymon Janc
d334b11100 android/bluetooth: Add threshold to RSSI change
There is no need to report very small RSSI changes.
2014-02-05 09:46:33 +01:00
Szymon Janc
ef2b882fcc android/unit: Some codestyle cleanups 2014-02-04 21:35:11 +01:00
Szymon Janc
e6d44eb406 android/unit: Make tests names shorter 2014-02-04 21:35:11 +01:00
Jakub Tyszkowski
08c2d2d152 android/unit: Add cases for msg size verification
This patch adds checking for proper msg size verification in case it is
not declared in handlers that this is variable sized message. In
such case malformed data should not be accepted.
2014-02-04 21:35:11 +01:00
Jakub Tyszkowski
46ad7c46da android/unit: Add case for sending incomplete header
Header size is the bare minimum that should always be sent.
2014-02-04 21:35:11 +01:00
Jakub Tyszkowski
ce6444c8bd android/unit: Add negative case for msg size verification
Case for checking message size declared inside the header against the
amount of data sent for variable sized message.
2014-02-04 21:35:11 +01:00
Jakub Tyszkowski
de260fd378 android/unit: Add case for out of range service
Check reaction for sending message to services not listed inside
hal-msg.h
2014-02-04 21:35:11 +01:00
Jakub Tyszkowski
daeee89e77 android/unit: Add another case for variable sized data
This patch adds test for variable length data handling. Handlers struct
have static values representing minimum payload. It cannot be predicted
how large data will be sent so they should accept data larger than
declared inside ipc_handler array, which holds the minimum size of such
message.
2014-02-04 21:35:10 +01:00
Jakub Tyszkowski
c14110cb1d android/unit: Add test case for variable sized data
Check if sending variable length data with proper msg size declared inside the
header succeeds.
2014-02-04 21:35:10 +01:00
Jakub Tyszkowski
bdceceb9d4 android/unit: Add support for variable length data
This patch adds sending messages larger than just hal_hdr, and fixes
response verification which worked only for empty messages but was
failing when sending something more than just header.
2014-02-04 21:35:10 +01:00
Jakub Tyszkowski
639abb4ba9 android/unit: Add case for opcode without handler
This test case checks if IPC shuts down on unhandled opcode.
2014-02-04 21:35:10 +01:00
Jakub Tyszkowski
e7a054a8b2 android/unit: Add test cases for proper handler calls
This patch adds tests for calling proper opcode handler. Two handlers
are registered, but one always results in failure. No failure means that
proper opcode <-> handler maching is done by the ipc mechanism.
2014-02-04 21:35:10 +01:00
Jakub Tyszkowski
cca001f942 android/unit: Rename cmd handler
This handler responses for opcode == 1, thus should use proper naming to
avoid confision when more functions sending different responses will be
added.
2014-02-04 21:35:10 +01:00
Jakub Tyszkowski
aeed33339c android/unit: Fix checking for expected termination
This fix makes sure that when signalled termination is expected,
it actually happens. If IPC termination is expected no response will be
sent, so cmd_watch will never be executed. But if it is executed when
expecting termination, its a failure.
2014-02-04 21:35:10 +01:00
Andrzej Kaczmarek
c79676c3ee android/hal-audio: Add RTP timestamps 2014-02-03 21:53:08 +01:00
Andrzej Kaczmarek
66a267e985 android/hal-audio: Fix RTP sequence numbers 2014-02-03 21:53:08 +01:00
Andrzej Kaczmarek
f4a6021a4d android/hal-audio: Fix audio with large omtu value
This patch fixes media packet construction with devices which use large
omtu value. In such cases it's possible that we will try to fit more
than 15 SBC frames in single media packet (which is maximum possible
value as it's encoded using 4 bits) which will cause frame counter to
wrap around and provide incorrect data to SBC encoder.

This behaviour was seen on UPF with one of carkit devices which set
omtu=2688.
2014-02-03 21:53:08 +01:00
Andrzej Kaczmarek
f68715ecd4 android/hal-audio: Print calculated SBC parameters 2014-02-03 21:53:08 +01:00
Andrzej Kaczmarek
210ae146f0 android/hal-audio: Be more verbose on SBC errors 2014-02-03 21:53:08 +01:00
Andrzej Kaczmarek
f6101a11d8 android/hal-audio: Remove unsupported mono channel mode
AudioFlinger can only provide PCM 16bit Stereo data for A2DP track so
we should not advertise mono channel mode in capabilities since we
can't downmix this internally.
2014-02-03 21:53:08 +01:00
Szymon Janc
99052be6c2 android/unit: Rename tests names to be more descriptive 2014-02-03 14:15:00 +01:00
Marcin Kraglak
eeae8babb5 android/unit: Add /android_ipc/send_cmd_3 test case
This case will register service, next unregister it and send
command. Expected status is raise SIGTERM.
2014-02-03 14:15:00 +01:00
Marcin Kraglak
3ac803d029 android/unit: Add /android_ipc/send_cmd_2 test case
This will test sending command to previously registered service.
2014-02-03 14:15:00 +01:00
Marcin Kraglak
898ad7e90a android/unit: Add /android_ipc/send_cmd_1 test case
This test case will check if ipc lib will raise SIGTERM
after sending command to not registered service.
2014-02-03 14:15:00 +01:00
Marcin Kraglak
e648a5bd68 android/ipc: Remove watches on cleanup
Remove watches on cleanup. It will avoid receiving
events after cleanup.
2014-02-03 14:15:00 +01:00
Marcin Kraglak
981459271d android/unit: Add android IPC unit tests
It will test ipc library. First test case will check
ipc_init() call.
2014-02-03 14:15:00 +01:00
Andrei Emeltchenko
1d7219ce3d android/avrcp: Close AVRCP channel on error
This fixes resource leak.
2014-02-02 07:59:47 -08:00
Andrei Emeltchenko
6d9fcff748 android/hal-audio: Fix style issues 2014-02-02 07:43:52 -08:00
Andrei Emeltchenko
69a8e1c3fb android/hal-audio: Fix memory leak
Free preset if set_blocking() fails.
2014-02-02 07:43:52 -08:00
Andrei Emeltchenko
014471cae8 android/hal-audio: Do not allocate memory if fd < 0
Fixes memory leak when returning bad fd we still allocate memory which
is not freed in the caller function audio_open_output_stream().
2014-02-02 07:43:52 -08:00
Andrei Emeltchenko
d8beaba79f android/hal-audio: Check calloc return value
calloc() might return NULL and is usually checked for NULL in BlueZ.
2014-02-02 07:43:52 -08:00
Sebastian Chlad
9b6ab7ebf8 android/pts: Correct typo 2014-01-31 14:41:38 +01:00
Sebastian Chlad
5529d54e0d android/pts: Add Android version to PTS tests
This trivial patch adds Android version to the PTS test results.
It helps tracking tests status.
2014-01-31 14:41:38 +01:00
Sebastian Chlad
c9bed7fc9c android: Add avtest to debug builds 2014-01-31 14:41:37 +01:00
Sebastian Chlad
6bb342bea7 android/pts: PTS test results for PBAP 2014-01-30 17:25:43 +01:00
Sebastian Chlad
2b07b9b23c android/pts: PTS test results for OPP 2014-01-30 17:25:43 +01:00
Sebastian Chlad
818ac15cc6 android/pts: PTS test results for AVCTP 2014-01-30 17:25:43 +01:00
Sebastian Chlad
d096e7d710 android/pts: PTS test results for L2CAP 2014-01-30 16:42:56 +01:00
Szymon Janc
6fd7e0f2e9 android/a2dp: Fix crash on remote disconnection
Remove setups when a2dp device is removed. This fix following:

Invalid read of size 4
   at 0x115E32: bt_stream_close (a2dp.c:1352)
   by 0x111DFB: ipc_handle_msg (ipc.c:95)
   by 0x11234B: audio_watch_cb (audio-ipc.c:67)
   by 0x48BD9C7: ??? (in /system/lib/libglib.so)
 Address 0x4a590f4 is 12 bytes inside a block of size 20 free'd
   at 0x4897E6C: free (in
       /system/lib/valgrind/vgpreload_memcheck-arm-linux.so)
   by 0x48C5E2B: g_free (in /system/lib/libglib.so)

Invalid read of size 4
   at 0x113638: avdtp_close (avdtp.c:3201)
   by 0x115E39: bt_stream_close (a2dp.c:1352)
   by 0x111DFB: ipc_handle_msg (ipc.c:95)
   by 0x11234B: audio_watch_cb (audio-ipc.c:67)
   by 0x48BD9C7: ??? (in /system/lib/libglib.so)
 Address 0x4a594a4 is 28 bytes inside a block of size 1,100 free'd
   at 0x4897E6C: free (in
       /system/lib/valgrind/vgpreload_memcheck-arm-linux.so)
   by 0x48C5E2B: g_free (in /system/lib/libglib.so)
2014-01-29 09:17:22 -08:00
Andrei Emeltchenko
4e6071ffe3 android/avctp: Move AVC_HEADER_LENGTH from avctp header
There is currently inconsistence in the avctp code with
AVC_HEADER_LENGTH defined in avctp.h but AVCTP_HEADER_LENGTH defined in
avctp.c. Move definition to place it is actually used in consistent way.
2014-01-29 09:05:30 -08:00
Andrei Emeltchenko
632b388cd7 android/avctp: Fix wrong error message 2014-01-29 09:05:29 -08:00
Andrei Emeltchenko
e315d10828 android/avctp: Use predefined HEADER_LENGTH instead of sizeof
Make code consistent with using HEADER_LENGTH defined. Remove also type
conversion.
2014-01-29 09:05:29 -08:00
Szymon Janc
2a07e06b09 android/bluetooth: Fix unbonding device on auth failure
This was causing removal of device info from storage and resulting in
loosing bond after bluetoothd restart.
2014-01-29 17:22:36 +01:00
Szymon Janc
e099ed45af android/README: Update with kernel requirements 2014-01-29 04:01:47 +01:00
Szymon Janc
6b59feb963 android/README: Add information about SBC requirement 2014-01-29 04:01:47 +01:00
Szymon Janc
637b8ca452 android/README: Fix typo 2014-01-29 04:01:47 +01:00
Luiz Augusto von Dentz
cabb62a161 build: Fix make check
Fix not checking for ENOTSOCK while setting priority.
2014-01-28 15:40:30 -08:00
Luiz Augusto von Dentz
55c3cacc1e android/hal-audio: Set stream fd to blocking
This makes the stream to block on io operation so it does not return
EAGAIN on syscall such as write.
2014-01-29 00:31:59 +01:00
Luiz Augusto von Dentz
0220ba41b0 android/hal-audio: Fix not handling EINTR errors
If the kernel interrupts us while writting just try again.
2014-01-29 00:31:59 +01:00
Luiz Augusto von Dentz
0212a969f6 android/AVDTP: Make stream channel priority 5
This makes channel priority 5 so it has higher priority than regular
traffic but less than signalling channel.
2014-01-29 00:31:59 +01:00
Luiz Augusto von Dentz
6fe28e354d android/AVDTP: Make signalling channel priority 6
This makes signalling priority 6 so it can push commands before the
stream channel, without this the stream channel may be schedule
first and cause the signalling commands to timeout while waiting a slot.
2014-01-29 00:31:59 +01:00
Sebastian Chlad
c8791dd8a5 android/pts: PTS test results for GAP 2014-01-28 16:51:09 +01:00
Sebastian Chlad
1495018605 android/pts: PTS test results for DID 2014-01-28 16:51:09 +01:00
Sebastian Chlad
3688eb7504 android/pts: PTS test results for A2DP 2014-01-28 16:51:09 +01:00
Sebastian Chlad
fa498a0e13 android/pts: Add PTS test results for AVRCP 2014-01-28 16:51:09 +01:00
Ravi kumar Veeramally
696372263d android/pan: Handle error case properly in NAP registration 2014-01-28 16:17:07 +01:00
Ravi kumar Veeramally
1c23302203 android/pan: Fix control state change callback parameters order
Callback declared in bt_pan.h is
'typedef void (*btpan_control_state_callback)
(btpan_control_state_t state, bt_status_t error, int local_role,
const char* ifname);

But PanService.Java defined it wrong way.
private void onControlStateChanged(int local_role, int state,
int error, String ifname).
First and third parameters are misplaced, so sending data according
to PanService.Java, discard this fix if issue fixed in PanService.Java.
2014-01-28 16:11:47 +01:00
Anderson Lizardo
c8886711d4 android: Trivial replacement of tabs where spaces are expected 2014-01-27 21:48:02 +01:00
Anderson Lizardo
334254e4d0 android: Remove useless extra parenthesis 2014-01-27 21:48:02 +01:00
Anderson Lizardo
3badc45e21 android/tester: Fix crash on failure inside setup()
The various setup_* functions were still continuing even though setup()
failed and did not initialize data->if_bluetooth properly.

Also do a little refactoring by moving tester_setup_failed() calls to
the setup() callers, so they stay close to the other failure points and
not hidden deep into a helper function.

Crash detected by Valgrind:

==4959== Invalid read of size 4
==4959==    at 0x805967A: setup_base (android-tester.c:2029)
==4959==    by 0x8055541: setup_callback (tester.c:373)
==4959==    by 0x408348F: g_idle_dispatch (gmain.c:5250)
==4959==    by 0x4086A75: g_main_context_dispatch (gmain.c:3065)
==4959==    by 0x4086E14: g_main_context_iterate.isra.23 (gmain.c:3712)
==4959==    by 0x40872FA: g_main_loop_run (gmain.c:3906)
==4959==    by 0x41744D2: (below main) (libc-start.c:226)
==4959==  Address 0x4 is not stack'd, malloc'd or (recently) free'd
2014-01-27 21:48:02 +01:00
Andrei Emeltchenko
1d1f856b74 android/avctp: Trivial cleanup code
Avoid extra header calculation and fix wrong line indentation.
2014-01-27 11:30:12 -08:00
Marcel Holtmann
f047cb6a8a android: Fix typo in configure.ac path 2014-01-26 20:04:29 -08:00
Marcel Holtmann
2dc5a7df03 android: Second attempt to extrac version number for OSX builds 2014-01-26 19:40:51 -08:00
Luiz Augusto von Dentz
dc675d8252 android/AVRCP: Add initial socket handling
This adds the initial socket listening and handling incoming connections.
2014-01-26 16:19:24 -08:00
Luiz Augusto von Dentz
5826775ee8 android/AVCTP: Add avctp_set_destroy_cb
This adds avctp_set_destroy_cb that can be use to set a callback when
the AVCTP has been disconnected.
2014-01-26 16:19:24 -08:00
Luiz Augusto von Dentz
538237b299 android/AVRCP: Add implementation of SDP record
This adds the following record:

Service Name: AVRCP TG
Service RecHandle: 0x10002
Service Class ID List:
  "AV Remote Target" (0x110c)
Protocol Descriptor List:
  "L2CAP" (0x0100)
    PSM: 23
  "AVCTP" (0x0017)
    uint16: 0x103
Profile Descriptor List:
  "AV Remote" (0x110e)
    Version: 0x0100
2014-01-26 16:19:24 -08:00
Luiz Augusto von Dentz
7568d14b66 android/haltest: Add init and cleanup calls to rc methods 2014-01-26 16:19:24 -08:00
Luiz Augusto von Dentz
44ef6f0c4c android: Add initial skeleton for AVRCP in the HAL 2014-01-26 16:19:24 -08:00
Luiz Augusto von Dentz
c466e79d6b android: Add initial skeleton for AVRCP in the daemon 2014-01-26 16:19:24 -08:00
Luiz Augusto von Dentz
51753d8e6e android/AVCTP: Strip dependencies
This strips AVCTP code of any dependency of core and btio to make it
transport agnostic.
2014-01-26 16:19:24 -08:00
Luiz Augusto von Dentz
7dbdc87e66 android: Add copy of current AVCTP implemention
These files are not added to any makefile on purpose because they still
have external dependencies.
2014-01-26 16:19:24 -08:00
Marcel Holtmann
5b2c07b144 android: Use sed instead of cpp to extract version number 2014-01-26 15:12:22 -08:00
Marcel Holtmann
5484736c10 android: Fix leftover src/log.h include 2014-01-26 00:27:02 -08:00
Marcel Holtmann
c1add0ff9f android: Use src/log.h include instead of just log.h 2014-01-26 00:23:15 -08:00
Marcel Holtmann
7f218e37eb android: Remove unneeded include path for src directory 2014-01-25 20:42:49 -08:00
Marcel Holtmann
61fea27878 android: Use full include path for header files 2014-01-25 20:11:19 -08:00
Marcel Holtmann
49f69d54f0 android: Avoid using src include path for btmgmt tool 2014-01-25 17:08:28 -08:00
Marcel Holtmann
cb7f2809fe android: No need to use special include for src/shared headers 2014-01-25 16:47:53 -08:00
Marcel Holtmann
cf4715cd44 android: Remove the unneeded include path for libsbc 2014-01-25 16:41:40 -08:00
Marcel Holtmann
a057e82562 android: Enable SBC_HIGH_PRECISION build for libsbc 2014-01-25 16:28:44 -08:00
Marcel Holtmann
14bb94a4dc android: Compile with ring buffer and HFP framework 2014-01-25 14:18:08 -08:00
Andrzej Kaczmarek
c7fb97e921 android: Update Audio IPC documentation
Open Stream commands now also returns outoging MTU for returned socket.
2014-01-24 22:59:45 +01:00
Sebastian Chlad
26a78aee9e android/pts: Add PTS test results for PBAP 2014-01-24 22:59:45 +01:00
Sebastian Chlad
861d2b763e android/pts: Add PTS test results for A2DP 2014-01-24 22:59:45 +01:00
Andrzej Kaczmarek
77ff405a45 android/a2dp: Fix audio resume on started stream
In case stream is started from remote we'll receive Resume Stream IPC
when audio is already considered as started (i.e. on first write from
AudioFlinger). In such case we should not try to send AVDTP_START since
this will fail but just reply success over IPC instead.
2014-01-24 22:59:45 +01:00
Andrzej Kaczmarek
ca90266d4f android/hal-audio: Remove DBG from SBC functions
These are redundant since callers will always print some information
which can be used to see what was actually called so no need to flood
output.
2014-01-24 22:59:45 +01:00
Andrzej Kaczmarek
349fd0522d android/hal-audio: Refactor error messages 2014-01-24 22:59:45 +01:00
Szymon Janc
3be8272df5 android/bluetooth: Handle device unpaired mgmt event 2014-01-24 20:20:15 +01:00
Szymon Janc
90fb3a75e3 android/bluetooth: Check event length in mgmt_auth_failed_event 2014-01-24 20:20:15 +01:00
Szymon Janc
f5512018e2 android/bluetooth: Fix removing bonded device if connection failed 2014-01-24 20:20:15 +01:00
Szymon Janc
509b120a1a android/bluetooth: Check not paired status in unpair_device_complete
This is needed to make sure framework is updated with proper bond state
of device.
2014-01-24 15:17:24 +01:00
Szymon Janc
b8207d382f android/bluetooth: Rename devices list to cached_devices
This makes it clear what is the purpose of this list.
2014-01-24 15:17:24 +01:00
Szymon Janc
a7fc397087 android/bluetooth: Add support for loading caches devices from storage
Info is now stored for all devices and bond state depends on file.
Based on that devices loaded from storage are put either to cache
or to bonded_devices list.
2014-01-24 15:17:23 +01:00
Szymon Janc
3c12dc59e3 android/bluetooth: Add support for caching remote device info
Cache is limited to DEVICES_CACHE_MAX. Devices are sorted with
timestamp so if cache is full olderst device is removed.
2014-01-24 15:17:23 +01:00
Szymon Janc
579e1af763 android/bluetooth: Use defines for settings and devices files paths 2014-01-24 15:17:23 +01:00
Szymon Janc
429f9eb75b android/bluetooth: Split devices list to devices and bonded_devices
Bonded devices are permament until unbondedn. Non-bonded devices will
be held in (size limited) cache based on timestamp property so split
list to ease separation.
2014-01-24 15:17:23 +01:00
Andrzej Kaczmarek
9dc257e9db android/hal-audio: Workaround AudioFlinger issues
Audio HAL code calculates accurate input stream buffer size which
allows to fill media packets with as much data as possible. However,
in most cases calculated buffer size does not work well with Android
audio code which causes glitches when playing simultaneously to
different audio output (like notification) or crashes mediaserver
when disconnecting with headset.

This patch changes input buffer size to fixed magic value 20*512 which
is used in Bluedroid Audio HAL. Such change requires that we need to
drop assumption that each input buffer can be used to fill exactly one
media packet and need to use it to fill multiple media packets. To
avoid buffering in Audio HAL, we allow that last media packet can be
filled in non-optimal way, i.e. has less data that can fit.
2014-01-24 10:29:04 +01:00
Szymon Janc
f1c4969ff8 android/hidhost: Verify set info command correctness
Although it is not implemented verify command correctness for IPC
completeness.
2014-01-24 00:05:37 +01:00
Jakub Tyszkowski
72d2c6c415 android/ipc-tester: Add case for BT Set remote prop
This patch adds test for verifying data length inside
hal_cmd_set_remote_device_prop struct.
2014-01-23 23:42:30 +01:00
Jakub Tyszkowski
b39585c050 android/ipc-tester: Add case for BT Set adapter prop
This patch adds test for verifying data length inside
hal_cmd_set_adapter_prop struct.
2014-01-23 23:42:30 +01:00
Jakub Tyszkowski
2b964faca8 android/ipc-tester: Add cases for A2DP msg size
Add cases testing message size veification for A2DP opcodes.
2014-01-23 23:42:30 +01:00
Jakub Tyszkowski
0d06fdd1fa android/ipc-tester: Add cases for PAN msg size
Add cases testing message size verification for PAN opcodes.
2014-01-23 23:42:30 +01:00
Jakub Tyszkowski
aa6d67930f android/ipc-tester: Add case for HIDHOST Send Data
This adds test for verifying data length inside
hal_cmd_hidhost_send_data struct.
2014-01-23 23:42:30 +01:00
Jakub Tyszkowski
7620fee1e9 android/ipc-tester: Add case for HIDHOST Set Report
This patch adds test for verifying data length inside
hal_cmd_hidhost_set_report struct.
2014-01-23 23:42:30 +01:00
Jakub Tyszkowski
177fe93488 android/ipc-tester: Add case for HIDHOST Set Info
This patch adds test for verifying data length inside
hal_cmd_hidhost_set_info struct.
2014-01-23 23:42:30 +01:00
Jakub Tyszkowski
fddce77253 android/ipc-tester: Add cases for HIDHOST msg size
Add cases testing message size verification for HIDHOST opcodes.
2014-01-23 23:42:29 +01:00
Jakub Tyszkowski
2708345e29 android/ipc-tester: Add cases for SOCK msg size
Add cases testing message size verification for SOCK opcodes.
2014-01-23 23:42:29 +01:00
Luiz Augusto von Dentz
c19c7df0e7 android/A2DP: Fix invalid read after unregistering an endpoint
The endpoint is unregistered but it was still accessible via endpoints
list causing the following trace when audio HAL is closed:
Invalid read of size 8
   at 0x414A49: unregister_endpoint (a2dp.c:114)
   by 0x3862466477: g_slist_foreach (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x386246649A: g_slist_free_full (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x414985: audio_disconnected (a2dp.c:1446)
   by 0x40FD5C: audio_watch_cb (audio-ipc.c:79)
   by 0x38624492A5: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x3862449627: ??? (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x3862449A39: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x4034D5: main (main.c:449)
 Address 0x4cd5e68 is 8 bytes inside a block of size 32 free'd
   at 0x4A07577: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x386244EF7E: g_free (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x4159FD: bt_audio_close (a2dp.c:1296)
   by 0x40F629: ipc_handle_msg (ipc.c:95)
   by 0x40FD9F: audio_watch_cb (audio-ipc.c:67)
   by 0x38624492A5: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x3862449627: ??? (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x3862449A39: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.3800.2)
   by 0x4034D5: main (main.c:449)
2014-01-23 19:59:58 +02:00
Szymon Janc
acc4dfbfff android/hal-audio: Don't try to unregister endpoints on handler exit
audio_sk is already closed at this point so just cleanup any leftovers
in enpoints states.
2014-01-23 19:56:35 +02:00
Szymon Janc
878564f8b2 android/hal-audio: Simplify and fix locking
This fix various issues with locking like missing unlock on
audio_ipc_cmd() return or accesing audio_sk without holding lock.
close_thread is removed to simplify code and shutdown on listen_sk is
used to indicate that that handler thread should stop.
2014-01-23 19:56:35 +02:00
Lukasz Rymanowski
29eb4fe6f5 android/audio: Fix for loading audio lib
clock_gettime requires linking with -rt for glibc versions before 2.17
2014-01-23 19:55:14 +02:00
Luiz Augusto von Dentz
e7bb627371 android: Move audio.a2dp.default.la build definitions
This way they are not spread in different parts of Makefile.am
2014-01-23 11:37:17 +02:00
Luiz Augusto von Dentz
69baf8732b android/hal-audio: Fix code style 2014-01-23 11:34:19 +02:00
Andrzej Kaczmarek
8392aa08c3 android/hal-audio: Return proper latency for stream
This patch implements get_latency() for output stream properly by
returning some meaningful value, i.e. calculated duration of single
media packet increased by fixed A2DP playback latency. This is the
same as PulseAudio does.
2014-01-23 11:34:19 +02:00
Andrzej Kaczmarek
c194584a00 android/hal-audio: Add proper SBC encoding
Input and output stream is configured in a way that each input buffer
can be encoded to exactly one output buffer.

Reading from AudioFlinger is synchronized based on amounts of frames
which were expected to be sent since stream was resumed, i.e. as long
as we sent enough data we can wait for period of single media packet
before we need another buffer from input. Without synchronization
we'd receive next input buffer as soon as we process current one.
2014-01-23 11:34:19 +02:00
Andrzej Kaczmarek
955c88d639 android/hal-audio: Read fd from Output Stream response 2014-01-23 11:34:19 +02:00
Andrzej Kaczmarek
b95bc74111 android/hal-audio: Return proper buffer size to AudioFlinger 2014-01-23 11:34:19 +02:00
Andrzej Kaczmarek
95cbb7d413 android/hal-audio: Add resume to codec callbacks
Once stream is resumed it may be required to reset some state of codec,
i.e. in case of SBC we need to reset monotonic clock and frames count
which are used for synchronization.
2014-01-23 11:34:19 +02:00
Andrzej Kaczmarek
d7bf6c3c9d android/hal-audio: Calculate SBC stream parameters
This patch adds necessary calculations for SBC stream parameters.

Both input and output buffers are expected to have exact amount of
data to fill single media packet (based on transport channel MTU).

Frame duration will be used to synchronize input and output streams.
2014-01-23 11:34:19 +02:00
Andrzej Kaczmarek
0551b9eca7 android/hal-audio: Initialize SBC encoder 2014-01-23 11:34:19 +02:00
Andrzej Kaczmarek
d4e075016f android/hal-audio: Rename sbc_init to avoid collision with libsbc 2014-01-23 11:34:19 +02:00
Andrzej Kaczmarek
68141f0889 android: Build Audio HAL with SBC
Build for Android requires libsbc sources to be available in
external/bluetooth/sbc. Build for host requires libsbc package to be
installed.
2014-01-23 11:34:19 +02:00
Andrzej Kaczmarek
adaa54bdf7 android: Add MTU data to Open Stream Audio IPC
MTU value for transport channel is sent in Open Stream response, which
is required to calculate number of frames which can be packed into
single media packet.

This is to avoid including GPLv2 licensed headers in Audio HAL
implementation.
2014-01-23 11:34:19 +02:00
Szymon Janc
282f0d076a android/tester: Update hidhost tests with DeviceID SDP search 2014-01-22 23:50:58 +01:00
Andrzej Kaczmarek
c95e067c3e android/hidhost: Fix vid and pid information
For HID device vendor, product and version numbers should be retrieved
using Device ID profile which is mandatory for devices implementing
HIDP.
2014-01-22 23:50:58 +01:00
Szymon Janc
908733202d android/pan: Remove not needed intialization to NULL 2014-01-22 17:35:52 +01:00
Andrei Emeltchenko
2649f6dc0d android/pan: Fix possible NULL dereference
It is better to return here since dev is not allocated and assigned NULL
value.
2014-01-22 17:33:23 +01:00
Andrei Emeltchenko
98ab7a7a66 android/ipc: trivial: Remove empty line 2014-01-22 17:33:23 +01:00
Andrei Emeltchenko
a163b8c0af android/pan: Fix wrong freeing dev
It does make sense free() dev after it is used. g_free() is not needed
here since it will be already executed in bt_pan_notify_conn_state().
2014-01-22 15:49:39 +02:00
Andrzej Kaczmarek
5bededf104 android: Refactor paths in Android.mk
Using source paths relative to android/ directory created mess in
Android's obj directory since object files are created also relative
to bluetoothd_intermediates (thus can be created outside it).

To avoid this we set LOCAL_PATH to absolute path (in terms of Android
build root) of directory in which bluez/ is located and change and
update source paths accordingly.

This also allows us to build in future glib and sbc easily using
Android.mk in BlueZ.
2014-01-22 09:36:55 +01:00
Andrzej Kaczmarek
c6c1cd9a5e android: Add l2ping to debug builds 2014-01-22 01:02:48 +01:00
Andrzej Kaczmarek
23075a9bc0 android: Add btmgmt to debug builds 2014-01-22 01:02:47 +01:00
Luiz Augusto von Dentz
732b97d209 android/ipc: Leave the connect callback to handle errors
It is not necessary to check connect errors since there is a watch
created for that.
2014-01-21 16:20:54 +01:00
Luiz Augusto von Dentz
c26f5203fd android/A2DP: Add retry logic to Audio IPC
In case the audio HAL disconnects without cleaning up its endpoints treat
it as unclean disconnection and attempt to reconnect.
2014-01-21 16:20:54 +01:00
Ravi kumar Veeramally
82a56092a8 android/tester: Add HIDhost GetReport test 2014-01-21 16:18:03 +01:00
Ravi kumar Veeramally
9d30a5a539 android/hidhost: Fix miscalculation of get report event notification length
Event length is size of struct + data len (if any). It is miscalulated.
2014-01-21 16:18:03 +01:00
Szymon Janc
ce7eb5d0c5 android: Fix build error due to glib-helper.c rename 2014-01-21 15:49:57 +01:00
Szymon Janc
326d212791 android/bluetooth: Move option_index declaration to close other static
Don't intermix defines with static variables.
2014-01-21 15:19:43 +01:00
Johan Hedberg
1a9051e9ee Rename glib-helper to uuid-helper 2014-01-21 14:12:47 +02:00
Luiz Augusto von Dentz
e2551c5f54 android/A2DP: Fix sending notification on bt_a2dp_unregister
At this point IPC might have been closed already.
2014-01-21 13:37:35 +02:00
Jakub Tyszkowski
f3b010cc51 android/ipc-tester: Add cases for BT message data size
This patch adds sending invalid size data for each of
Bluetooth service opcodes.
2014-01-20 23:23:28 +01:00
Jakub Tyszkowski
e82fcc7c2c android/ipc-tester: Add cases for Core message data size
Add testing for improper data sizes for Core service opcodes.
2014-01-20 23:23:28 +01:00
Jakub Tyszkowski
f9d9b513c2 android/ipc-tester: Add cases for service opcode boundaries
This patch adds tests sending out of range opcode for each service.
2014-01-20 23:23:28 +01:00
Jakub Tyszkowski
d3b695dfa4 android/ipc-tester: Add more cases for malformed data
This patch adds tests for more types of possible data malformations.
2014-01-20 23:23:28 +01:00
Jakub Tyszkowski
f11e2ee8d8 android/ipc-tester: Add basic test cases for IPC's daemon site
This patch adds first few test cases checking for proper daemon
termination in case of receiving invalid IPC data.
2014-01-20 23:23:28 +01:00
Jakub Tyszkowski
411df0651e android/ipc-tester: Register services
This patch adds basic bluetooth service registration during setup procedure.
Without this daemon would reject commands for not registered services.
2014-01-20 23:23:27 +01:00
Jakub Tyszkowski
378f27f9e6 android/ipc-tester: Add sending test data with ipc
This patch adds some data structures used to send data with ipc during
test setup and run stage. Test execution macro is extended for easy
data preparation.
2014-01-20 23:23:27 +01:00
Jakub Tyszkowski
b1d3bdfaed android/ipc-tester: Add daemon shutdown handler
Handle daemon shutdown asynchronously.
2014-01-20 23:23:27 +01:00
Jakub Tyszkowski
732acf30cf android/ipc-tester: Add IPC initialization
This patch adds IPC mechanism initialization.
The deamon is being started and IPC socket connection is established.
2014-01-20 23:23:27 +01:00
Jakub Tyszkowski
e82c8804f3 android/ipc-tester: Run daemon in separate process
This patch adds new process waiting to run daemon when needed.
2014-01-20 23:23:27 +01:00
Jakub Tyszkowski
8cc27935d3 android/ipc-tester: Skeleton for ipc negative tester
Add skeleton for ipc negative testing.
2014-01-20 23:23:27 +01:00
Ravi kumar Veeramally
f1a83a702f android/tester: Add HIDhost SendData test 2014-01-20 16:26:35 +01:00
Ravi kumar Veeramally
f30427d185 android/tester: Add HIDhost SetReport test 2014-01-20 16:26:30 +01:00
Ravi kumar Veeramally
16b7f0c59e android/tester: Add HIDhost SetProtocol test 2014-01-20 16:23:38 +01:00
Ravi kumar Veeramally
d4b09ba697 android/tester: Add HIDhost GetProtocol test 2014-01-20 16:23:38 +01:00