Portál AbcLinuxu, 27. dubna 2024 04:19


Dotaz: Kam zadat bluetooth PIN pro spárování?

Jiří Poláček avatar 11.3.2009 13:06 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
Kam zadat bluetooth PIN pro spárování?
Přečteno: 1555×
Odpovědět | Admin
Chtěl byl s pomocí Bluetooth propojit mobil s počítačem, na kterém běží Arch Linux. Vše jde dobře do okamžiku, kdy se mají porovnat klíče v telefonu a počítači – chybí agent pro zadání PIN. Ale kde ho vzít?
Mar 11 12:28:04 minea bluetoothd[7985]: Bluetooth daemon
Mar 11 12:28:04 minea bluetoothd[7985]: Starting SDP server
Mar 11 12:28:04 minea bluetoothd[7985]: Can't load plugin /usr/lib/bluetooth/plugins/netlink.so: libnl.so.1: cannot open shared object file: No such file or directory
Mar 11 12:28:04 minea bluetoothd[7985]: Registered interface org.bluez.Service on path /org/bluez/7985/any
Mar 11 12:28:04 minea bluetoothd[7985]: bridge pan0 created
Mar 11 12:28:04 minea bluetoothd[7985]: HCI dev 0 registered
Mar 11 12:28:04 minea bluetoothd[7985]: HCI dev 0 up
Mar 11 12:28:04 minea bluetoothd[7985]: Starting security manager 0
Mar 11 12:28:05 minea bluetoothd[7985]: Registered interface org.bluez.Service on path /org/bluez/7985/hci0
Mar 11 12:28:05 minea bluetoothd[7985]: Registered interface org.bluez.NetworkPeer on path /org/bluez/7985/hci0
Mar 11 12:28:05 minea bluetoothd[7985]: Registered interface org.bluez.NetworkHub on path /org/bluez/7985/hci0
Mar 11 12:28:05 minea bluetoothd[7985]: Registered interface org.bluez.NetworkRouter on path /org/bluez/7985/hci0
Mar 11 12:28:05 minea bluetoothd[7985]: Registered interface org.bluez.SerialProxyManager on path /org/bluez/7985/hci0
Mar 11 12:28:05 minea bluetoothd[7985]: Adapter /org/bluez/7985/hci0 has been enabled
Mar 11 12:28:17 minea bluetoothd[7985]: pin_code_request (sba=00:09:DD:50:1F:CC, dba=00:12:EE:89:2B:34)
Mar 11 12:28:17 minea bluetoothd[7985]: No agent available for 0 request
Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

11.3.2009 13:10 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Kam zadat bluetooth PIN pro spárování?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Obvykle to je nějaká komponenta desktopu, třeba bluez-gnome.
Weblate - překládání přes web | Gammu SMSD - posílání SMS | Blog
Jiří Poláček avatar 11.3.2009 13:18 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
Rozbalit Rozbalit vše Re: Kam zadat bluetooth PIN pro spárování?
Konkrétně bluez-gnome jsem si ze zoufalství nainstalovat, ale nějak jsem nepochopil, co bych s ním mohl vyvádět.

Ale proč sahat po komponentě desktopu, když chci v konzoli namapovat obsah telefonu přes obexfs?
Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
11.3.2009 14:24 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Kam zadat bluetooth PIN pro spárování?
Protože to umí zobrazit dialog, do kterého se ten PIN zadá :-). Prostě je potřeba něco co poslouchá na D-Busu a na žádost to vrátí PIN pro dané zařízení. Určitě takových programů existuje víc než jen ten pro Gnome, a když už nic jihého, tak na wiki mají ukázku jednoduchého agenta v Pythonu.
Jiří Poláček avatar 11.3.2009 15:29 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
Rozbalit Rozbalit vše Re: Kam zadat bluetooth PIN pro spárování?
Bohužel právě nevím, jak donutit něco, aby poslouchalo na D-Busu.

Vezmu-li například onen agent v Pythonu, nezdá se, že by to fungovalo stylem „zkopírovat a spustit“ …

Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
11.3.2009 14:02 hanzelko | skóre: 5
Rozbalit Rozbalit vše Re: Kam zadat bluetooth PIN pro spárování?
Odpovědět | | Sbalit | Link | Blokovat | Admin

Zdravim.

Prave som sa s tym hral. Tiez pouzivam obexftp, obexfs v konzole. Password  agent reaguje na D-BUS messages a musi take daco byt nainstalovane.

Ja som to vyriesil upravom zdrojakov, bluez-4.32,

src\security.c

 

 

To da natvrdo heslo 1234 a funguje to.

Alebo sa da pouzit python script ktory nato reaguje.

http://code.google.com/p/bluez-python/

A tam je Agent.py. Ten byto mohol vediet tiez. Ale toto som neskusal.

 

static void pin_code_request(int dev, bdaddr_t *sba, bdaddr_t *dba)
{

....

pin_agaion:
 if (pinlen > 0) {
  set_pin_length(sba, pinlen);
  memcpy(pr.pin_code, pin, pinlen);
  pr.pin_len = pinlen;
  hci_send_cmd(dev, OGF_LINK_CTL, OCF_PIN_CODE_REPLY,
    PIN_CODE_REPLY_CP_SIZE, &pr);
 } else {
  pinlen = 4;
  pin[0] = '1'; pin[1] = '2'; pin[2] = '3'; pin[3] = '4';  pin[4] = 0;
  goto pin_again;
   
  /* Request PIN from passkey agent */
  if (hcid_dbus_request_pin(dev, sba, ci) < 0)
   goto reject;
 }
 

Jiří Poláček avatar 11.3.2009 15:39 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
Rozbalit Rozbalit vše Re: Kam zadat bluetooth PIN pro spárování?
Do úpravy zdrojáku v tomto stylu nejdu, ale díky za nápad.

Co získám instalací onoho bluez-python? Pokud to dobře chápu, jedná se o knihovnu pro jiné programy v Pythonu …
Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
11.3.2009 15:49 hanzelko | skóre: 5
Rozbalit Rozbalit vše Re: Kam zadat bluetooth PIN pro spárování?

No mozno by sa to dalo s kombinovat s tou wiki z predchadzajuceho prispevku.

No v bluez-4 zmenili nazvy tych D-BUS agentov a preto to nechodi.

11.3.2009 15:16 myšák | skóre: 26 | blog: EmentuX | Ostrava
Rozbalit Rozbalit vše Re: Kam zadat bluetooth PIN pro spárování?
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co například podle tohoto návodu?
Je nesmírně těžké být idiotem, konkurence je obrovská...
Jiří Poláček avatar 11.3.2009 15:36 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
Rozbalit Rozbalit vše Re: Kam zadat bluetooth PIN pro spárování?
S novou verzí bluez je – zdá se – tento návod (a jemu podobné) neplatný. Viz například reakce zde.
Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
8.3.2010 16:02 scorpio
Rozbalit Rozbalit vše Re: Kam zadat bluetooth PIN pro spárování?
Odpovědět | | Sbalit | Link | Blokovat | Admin
V archu mam nyni bluez-4.61 a funguje mi bluez-simple-agent (v prikazovem radku spustim a pak paruji telefon)
Řešení 1× (thiemel)
8.3.2010 20:18 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Kam zadat bluetooth PIN pro spárování?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nutnost použít agenta na pin je ta největší opruzárna ... naštěstí existuje nepodporovaná metoda jak se tomu vyhnout.

Ve /var/lib/bluetooth existuje adresář s mac adresou Vašeho adaptéru, a v něm existuje/vytvořte soubor pincodes. Do něj dejte mac adresu vzdáleného zařízení a pin (každé zařízení na jeden řádek). Hotovo.

Příklad:
$ cat /var/lib/bluetooth/11\:22\:33\:44\:55\:66/pincodes
77:88:99:AA:BB:CC 1234
DD:EE:FF:00:11:22 5678
Podobně je tam soubor linkkeys, který obsahuje klíče ke "spárovaným" zařízením. "Odpárovat" můžete jednoduše tak, že příslušnou řádku umažete.
In Ada the typical infinite loop would normally be terminated by detonation.
28.7.2010 02:04 thiemel | skóre: 4 | 49°55'21.691N, 18°5'3.288E
Rozbalit Rozbalit vše Re: Kam zadat bluetooth PIN pro spárování?
Díky... on jen ten Linux čím dál "promakanější", že mi začíná připomínat Windows (bez extra GUI programu si ani "nevrzneš") :-( Já to na Debian Squeeze řešil přes hodinu a půl, proč to nejde, a von je v tom D-Bus... :-/
Tomáš Thiemel e-mail:thiemel(zavináč)centrum.cz
28.7.2010 02:22 thiemel | skóre: 4 | 49°55'21.691N, 18°5'3.288E
Rozbalit Rozbalit vše Re: Kam zadat bluetooth PIN pro spárování?
Tak jsem našel ještě jedno "čistější" řešení:

v konzoli "A" (nebo ve screen-u) se pustí:

# bluetooth-agent <pin> [<mac adresa>]

a v konzoli "B" pak třeba:

# obexftp -v -b <mac adresa> -l

Pak to tedy vypadá nějak takto:

AAAAAAAAA
gate1:~# bluetooth-agent 1111
Pincode request for device /org/bluez/10788/hci0/dev_00_1B_59_99_CD_B8

BBBBBBBBB
gate1:~# obexftp -v -b 00:1B:59:99:CD:B8 -l
Browsing 00:1B:59:99:CD:B8 ...
Connecting..\done
Tried to connect for 1026ms
Receiving "(null)"...|<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd">
<!--
 XML Coder, (C) 2001 Sony Ericsson Mobile Communications AB 
-->
<folder-listing version="1.0"><folder name="Paměť telefonu"/>
</folder-listing>
done
Disconnecting../done

CCCCCCCCCC
gate1:~# tail -f /var/log/syslog
Jul 28 02:13:43 gate1 bluetoothd[10788]: pin_code_request (sba=00:55:DD:11:22:33, dba=00:1B:59:99:CD:B8)
Jul 28 02:13:43 gate1 bluetoothd[10788]: link_key_notify (sba=00:55:DD:11:22:33, dba=00:1B:59:99:CD:B8, type=0)


Tomáš Thiemel e-mail:thiemel(zavináč)centrum.cz

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.