Valóban kell a helymeghatározás a BT eszközök felderítésére?

Fórumok

https://play.google.com/store/apps/details?id=de.medisana.vitadockplus&… ezt az appot használom és ma azt tapasztaltam, hogy kéri a helymeghatározó bekapcsolását arra hivatkozva, hogy csak akkor tudja a BT felderítést elvégezni, ha ismeri a tartózkodási helyet. Lehet eddig be volt kapcsolva a helymeghatározés és emiatt nem vettem észre, de tegnap kikapcsoltam, így ma lehetséges oknak ezt tekintem. Ezzel kapcsolatban az MI ezt írja:

Miért kell android rendszeren a helymeghatározás akkor, ha bluetooth kapcsolatot akarok felderíteni?

 

A ChatGPT ezt mondta:

ChatGPT

Az Android rendszeren azért van szükség a helymeghatározás engedélyezésére, amikor Bluetooth-eszközöket keresel, mert bizonyos Bluetooth-eszközök használata során a helymeghatározás lehetővé teszi az eszközök pontos azonosítását és felderítését.

Ennek a fő oka a következő:

  1. Bluetooth Low Energy (BLE) alapú eszközök: Sok modern Bluetooth-eszköz, például okosórák, fitnesz-trackerek és más IoT-eszközök a BLE (Bluetooth Low Energy) technológiát használják. A BLE jelek elemzésével bizonyos helyadatokat is ki lehet nyerni, ami miatt az Android biztonsági szempontból kéri a helyhozzáférést. A BLE-eszközök gyakran olyan eszközök, amelyek kis energiával működnek, és rövidebb hatótávolságon belül érhetők el. Ezekhez a beolvasáshoz szükséges a helyadat, mivel ezek a jelek használhatók a felhasználó tartózkodási helyének becslésére.

  2. Adatvédelmi előírások: Az Android rendszer figyelembe veszi az adatvédelmi szabályokat, és úgy kezeli a Bluetooth-eszközöket, mint potenciálisan helyadatokat továbbító eszközöket. Mivel egyes Bluetooth-eszközök helyadatokat sugározhatnak vagy befolyásolhatják a felhasználó helyzetének meghatározását (például olyan nyilvános helyeken, mint boltok, ahol a Bluetooth beacon-ök működhetnek), a rendszer megköveteli, hogy a helymeghatározás be legyen kapcsolva, amikor ilyen eszközöket keresel.

Az Android tehát biztonsági és adatvédelmi okokból követeli meg a helymeghatározás bekapcsolását, amikor Bluetooth-eszközöket akarsz felderíteni, különösen a BLE eszközöknél.

Nem értem, hogy ha csak egy sima egészségügyi appot akarok elérni a BT eszközömmel, ami jelen esetben egy okos mérleg, miért kell neki meghatározni a helyemet?

Hozzászólások

Sose értettem, marhaság volt mindig is a magyarázat. Az, hogy esetleg BT eszközből kinyerhet helyadatra vonatkozó információt, az legyen már az én dolgom. (ha annyira okos akar lenni, akkor figyelmeztessen a veszélyre)

De az hogy noname kinai vackok (pl. hőmérő) app-ja gps hozzáférést kér és mindezt jogosan teszi, mert nem lehet máshogy megirni, az egy rossz vicc.

Régi szép - rootolt - időkben legalább be lehet hazudni a konkrét alkalmazásnak hamis koordinátákat, legalább ezt be kellene OS szintre emelni, kérjen GPS hozzáférést, de ne kapjon értelmes, de még közeli adatot se. (néha van opció, hogy ne a pontos koordinátákat kapja az alkalmazás, csak közelit, azt se szokták elfogadni, mert egy újabb hülyeség lévén erről értesül az alkalmazás, hogy nem a legpontosabb verziót kapja)

A mar parositott eszkozok eleresehez, vagy ismert MAC cimhez torteno csatlakozashoz nem szukseges scannelni, tehat nem szukseges a loactiom permission sem. Ha ez az eszkoz egy sima BT eszkoz, akkor parositsd ossze a rendszer bluetooth beallitasainal, ha ez egy BLE eszkoz, akkor add meg ideiglenesen az engedelyt, hogy meg tudja keresni az eszkozt, majd miutan ez megvan, el is veheted tole, mert legkozelebb fog tudni csatlakozni az eszkozhoz. Ennek persze, az a feltetele, hogy jol legyen megirva a szoftver. 

Az, hogy location permissiont ker az app, az nem jelenti azt, hogy a developer hasznalja is a location servicet, de azt sem, hogy megprobalja a BT/WiFi scanneles adataibol eloallitani az eszkoz koordinatajat (tehat, ha ezt nem irta bele a fejleszto, akkor nem fog ilyet csinalni az app), de mivel a kapott adatokbol ez az informacio rendelkezesre allhat, ezert van ehhez a permissionhoz kotve a dolog.

Valamiert sokszor egyutt jar a helymeghatarozashoz a GPS es a BT egyuttes engedelyezese. Lehet, hogy az egyik nepszeru (ertsd, kodmegoszto platformokrol surun kimasolt) API hivashoz mindketto kell? Valami Android gugu biztosan tudja, hogy miert.

Relative egyszerű oka van: vannak szolgáltatók (google pl) akik adatbázist építettek a földrajzi koordináta - milyen MAC című eszközök látszanak ezen a helyen összerendelésből.

Így egy app, ha van jogosultsága scannelni a környéken látható eszközöket, akkor szerver oldalról le tudja kérdezni, hogy sacc/kb hol lehet. Az assisted GPS fukció az Androidban erre épít (GPS first fix megtalálási idejét felgyorsítja, ha van egy viszonylag jó "tipp" a pozícióra). És persze ezen a módon naprakészen is tartja a Google az adatbázisát.

Mindenesetre a lényeg, hogy mac cím scanneléssel _effektíve_ lehet helyet meghatározni. Vagyis ha nem lenne a "helymeghatározás" jogosultsághoz kötve a környező eszközök scannelésére, akkor az appoknak lenne egy kerülőutas módszerük a helymeghatározásra, letiltott jogosultság mellett is (évekig így volt...).

Régóta vágyok én, az androidok mezonkincsére már!

Ezért kellett volna szétválasztani a két jogosultságot. GPS alapú helymeghatározás és BT eszközök scannelése a közelben. (utóbbi veszélyeiről lehet figyelmeztetni a usert)

A legtöbb esetben nyugodtan scannelheti a BT eszközöket, mert semmit nem fog megtudni belőle.

De az nonsense, hogy egy ilyen elméleti lehetőség miatt - azért nehogy elhigyjük már, hogy bárhol, bármilyen BT mac address-t bárki GPS koordinátára tud váltani - a konkrét méterpontos GPS koordinátákat is közölni kelljen egy nyamvadék kinai hőmérő appjával, mert máshogy nem találja meg BT-n az eszközt.

A permission meglete nem jelenti azt, hogy hasznal az app barmilyen on device location szolgaltast, ahogy azt sem jelenti hogy begyujti a latott WiFi/BT MAC cimeket es ezeket egy online szolgaltatas API hivasaval koordinatara csereli. Nem kap tole automatikusan koordinatat. Pusztan arra van, hogy jelezze a felhasznalonak, hogy ha engedelyezi, akkor akar a hely adatait is tudhatja a fejleszto.

Egyebkent, le kell 1 csillagozni az appot, es leirni, hogy a fejleszto nem ert hozza.

Mert ha a fejleszto szamara megfelelo az, hogy nem tud barmihez vakon csatlakozni (es nem latja az eszkozeid listajat, azaz pl. nem tud kemkedni), akkor a rendszernek van olyan szolgaltatasa eleg regota (talan Android 8 vagy 9?), hogy companion device kezeles. Ebben az esetben viszont, a fejleszto nem is latja az eszkozeidet. De ahhoz, hogy ez mukodjon, ennek a tamogatasaval kell megirni az appot, nem lesz megfelelo a 10 eve stack overflown ott levo kod.

Vagyis képzeljünk el egy repülőtéri csarnokot. Ha "A" ember egyszer felderített egy BT eszközt ott, akkor "B" ember megkapja az információt, hogy milyen BT eszközökre számíthat az adott helyen, így nem kell scannelnie? Egyből ugorhat a kapcsolódásra?