SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Downloaden Sie, um offline zu lesen
Apresentação da
Placa Wandboard
Wandboard
Processador Freescale i.MX6 Quad
Cores Quad Cortex-A9
Graphic Engine Vivante GC 2000 + Vivante GC 350 + Vivante GC
320
Memória RAM 2GB DDR3
Audio 1
HDMI 1 Output
Micro-SD Slot 2
Serial Port 1
USB 1
USB OTG 1
Gigabit LAN 1
Wifi (802.11n) 1
Bluetooth 4.1 1
Wandboard
Wandboard
Wandboard
HDMI
5V 2A
USB OTG
USB
Wandboard
http://www.wandboard.org
Arquitetura Wi-Fi Linux
Arquitetura
•cfg80211 – API de configuração para o padrão 802.11
•mac80211 – Implementação da camada MAC (Medium Access Control)
para SoftMAC
•Wireless Module Driver .ko
•Wireless Module Firmware
•Wireless Module configuration
Interfaces de I/O
•PCIe (Média / Alta Capacidade)
•SDIO – Secure Digital I/O (Baixa / Média Capacidade)
•USB (Baixa / Média Capacidade)
•Serial (Baixa Capacidade)
Linux Wi-Fi - SoftMAC
•Processamento do MAC em software (CPU)
•Fácil atualização
•Chips mais baratos
•Maior consumo de energia na CPU
•Menor desempenho
User Space
cfg80211
mac80211
Driver
Hardware
Linux Wi-Fi - FullMAC
•Processamento do MAC é realizado na Interface
•Atualização depende muito mais do fabricante
•Chips mais caros
•Menor consumo de CPU
•Maior Desempenho
User Space
cfg80211
Driver
Hardware
Linux Wi-Fi – Arquitetura
WEXT
Wireless Extension – Desenvolvido em 1997, foi a primeira
implementação de Wireless para Linux, algumas versões do
Utilizada em versões do Android anteriores a 4.2
O acesso ao driver é através de ioctl()
nl80211
Atual implementação para dispositivos Wireless no Linux
(cfg80211 / mac80211)
Realiza o acesso aos drivers através do protocolo netlink.
Possui retrocompatibilidade com WEXT.
Linux Wi-Fi – Arquitetura
Arquitetura de Rede Android
Tecnologias suportadas pelo Android
•Mobile: GSM / EDGE / HSDPA / LTE
•Wi-Fi
•Bluetooth
•Ethernet
•WiMax*
Arquitetura de Rede do Android
•Kernel Drivers (Ethernet, Wi-Fi, Bluetooth, WiMax...)
•Kernel TCP/IP Layer , POSIX user-space API support
•Android Hardware Abstraction Layer (HAL)
•Android Bionic C library
•Android libnetutils (Network Utilities)
•Android Netd (Network Daemon)
•Android ConnectivityManager e ConnectivityService
•Android Java Apps
Bionic C
O Android não implementa as configurações básicas de
interfaces de rede como conhecemos no Linux.
•/etc/network/interfaces
•/etc/resolv.conf
•Etc...
Todas essas informações estão disponíveis apenas através
dos comandos getprop / setprop
Bionic C
root@wandboard: # getprop | grep dhcp
[dhcp.eth0.pid]: [2684]
[dhcp.eth0.reason]: [PREINIT]
[dhcp.eth0.result]: [failed]
[dhcp.wlan0.dns1]: [192.168.1.1]
[dhcp.wlan0.dns2]: []
[dhcp.wlan0.dns3]: []
[dhcp.wlan0.dns4]: []
[dhcp.wlan0.domain]: [Home]
[dhcp.wlan0.gateway]: [192.168.1.1]
[dhcp.wlan0.ipaddress]: [192.168.1.5]
[dhcp.wlan0.leasetime]: [86400]
[dhcp.wlan0.mask]: [255.255.255.0]
[dhcp.wlan0.pid]: [4791]
[dhcp.wlan0.reason]: [REBOOT]
[dhcp.wlan0.result]: [failed]
[dhcp.wlan0.server]: [192.168.1.1]
[dhcp.wlan0.vendorInfo]: []
Netd / Libnetutils
Netd
•Responsável pelo gerenciamento das interfaces
•O Daemon é acessado através de Unix Socket.
• Pode ser controlado por apps ou através do comando ndc
Libnetutils
•Disponibiliza acesso baixo nível ao controle das interfaces
•Disponibiliza acesso a API para ifconfig / netcfg / route /
dhcpcd / dhcpc
•É utilizado pelo HAL e System Framework para controlar
as interfaces
Netd – Network Daemon
•Operação , Gerenciamento e Armazenamento de
informações das interfaces de rede
•Estatística de tráfego
•Controle de Banda (Quota)
•Gerenciamento das Tabelas de Roteamento
•Firewall
•NAT – Network Translation Address
•PAN – Personal Area Network
•Links PPP – Point to Point Protocol
•SoftAP (Hotspot)
•Tethering
•….
Netd – Network Daemon
Netd – Network Daemon
Documentação Oficial: Código Fonte
Netd
/system/netd
lib
/system/core/libsysutils/src
Framework
/frameworks/base/services/java/com/android/server/NetworkManagamentService.java
/frameworks/base/services/java/com/android/server/NativeDaemonConnector.java
Acessando o Netd através do command ndc
root@wandboard:/ # ndc
Usage: ndc [sockname] <monitor>|<cmd> [arg1] [arg2...]
root@wandboard:/ # ndc --help
500 0 Command not recognized
Como saber quais comandos utilizar ?
NDC – Network Daemon Command
NDC
/system/netd/ndc.cpp
/system/netd/CommandListener.cpp
Framework
/frameworks/base/services/java/com/android/server/NetworkManagamentService.java
CommandListener::CommandListener() :
FrameworkListener("netd", true) {
registerCmd(new InterfaceCmd());
registerCmd(new IpFwdCmd());
registerCmd(new TetherCmd());
registerCmd(new NatCmd());
registerCmd(new ListTtysCmd());
registerCmd(new PppdCmd());
registerCmd(new SoftapCmd());
registerCmd(new BandwidthControlCmd());
registerCmd(new IdletimerControlCmd());
registerCmd(new ResolverCmd());
registerCmd(new FirewallCmd());
registerCmd(new ClatdCmd());
event = mConnector.execute("interface", "getcfg", iface);
mConnector.execute("interface", "ipv6privacyextensions", iface, enable ? "enable" : "disable");
event = mConnector.execute("ipfwd", "status");
mConnector.execute("pppd", "attach", tty,
NetworkUtils.numericToInetAddress(localAddr).getHostAddress(),
NetworkUtils.numericToInetAddress(remoteAddr).getHostAddress(),
NetworkUtils.numericToInetAddress(dns1Addr).getHostAddress(),
NetworkUtils.numericToInetAddress(dns2Addr).getHostAddress());
NDC – Network Daemon Command
NDC – Network Daemon Command
Netd – Inicialização
Init.rc
Arquitetura Wi-Fi Android
Arquitetura Wi-Fi Android
O Android 4.3 suporta três modos de operação para
a interface Wi-Fi
•Cliente
•SoftAp
•P2P
Inicialização
Init.wandboard.rc
rc.wifi
Arquitetura Wi-Fi Android
A Arquitetura Wi-Fi do Android pode ser dividida em três
partes.
•Framework Java: (WifiManager, WifiMonitor, WifiSettings, WifiService,
WifiStateMachine, WifiNative...)
•HAL: wifi.c, wpa_supplicant, hostapd, netd…
•Kernel Space Modules: Wireless Stack, Wifi Drivers , Wifi Firmwares.
Arquitetura Wi-Fi Android
Arquitetura Wi-Fi Android – Framework Java
•WifiManager
Responsável por disponibilizar a API para outras
aplicações (Connectivity Manager) para que seja
possível gerenciar todos parâmetros de
conectividade da interface Wi-Fi.
lRealizar comunicação com o WifiServices através
do Binder.
lPath:
l/frameworks/base/wifi/java/android/net/wifi/WifiManager.java
Arquitetura Wi-Fi Android - Framework Java
•WifiService
Responsável por reportar os eventos da Interface
Wi-Fi e realizar a integração com o Binder (IPC).
Path:
/frameworks/base/services/java/com/android/server/WifiService.java
Arquitetura Wi-Fi Android - Framework Java
WifiStateMachine
Responsável realizar o gerenciamento do “ciclo de
do funcionamento” da interface Wi-Fi.
Três tipos de estados:
Enter(): executado quando entra no estado
Exit(): executando quando saí do estado atual
ProcessMessage(): executando quando é
recebido uma mensagem
Path:
/frameworks/base/wifi/java/android/net/wifi/WifiStateMachine.java
WifiStateMachine
Arquitetura Wi-Fi Android - Framework Java
WifiMonitor
•Responsável receber eventos e informações do
wpa_supplicant / hostapd / p2p
•Comunicação através de Sockets
WifiNative
•Responsável por enviar os comandos para a HAL
•Comunicação através do JNI
Path:
/frameworks/base/wifi/java/android/net/wifi/WifiMonitor.java
/frameworks/base/wifi/java/android/net/wifi/WifiNative.java
Arquitetura Wi-Fi Android - HAL
WifiJNI
•Realiza a interface de serviços Java e C/C++ (HAL)
Path:
/frameworks/base/core/jni/android_net_wifi_Wifi.cpp
/*
* JNI registration.
*/
static JNINativeMethod gWifiMethods[] = {
/* name, signature, funcPtr */
{ "loadDriver", "()Z", (void *)android_net_wifi_loadDriver },
{ "isDriverLoaded", "()Z", (void *)android_net_wifi_isDriverLoaded },
{ "unloadDriver", "()Z", (void *)android_net_wifi_unloadDriver },
{ "startSupplicant", "(Z)Z", (void *)android_net_wifi_startSupplicant },
{ "killSupplicant", "(Z)Z", (void *)android_net_wifi_killSupplicant },
{ "connectToSupplicant", "(Ljava/lang/String;)Z",
(void *)android_net_wifi_connectToSupplicant },
{ "closeSupplicantConnection", "(Ljava/lang/String;)V",
(void *)android_net_wifi_closeSupplicantConnection },
{ "waitForEvent", "(Ljava/lang/String;)Ljava/lang/String;",
(void*) android_net_wifi_waitForEvent },
{ "doBooleanCommand", "(Ljava/lang/String;Ljava/lang/String;)Z",
(void*) android_net_wifi_doBooleanCommand },
{ "doIntCommand", "(Ljava/lang/String;Ljava/lang/String;)I",
(void*) android_net_wifi_doIntCommand },
{ "doStringCommand", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;",
(void*) android_net_wifi_doStringCommand },
Arquitetura Wi-Fi Android - HAL
HAL
•Camada de abstração
•Funcionalidades para carregar firmware
•Inicializar/Finalizar driver e serviços (dhcp,
wpa_supplicant,hostapd, dhcpc, dhcpd..)
•Preparar interface de controle dos serviços
•Criar arquivo de entropia
•Carregar arquivos de configuração dos serviços
A implementação desta camada é responsabilidade do
fabricante do driver do módulo Wifi
Path:
/hardware/libhardware_legacy/wifi/wifi.c
/hardware/broadcom/wlan/bcmdhd/*
WPA_SUPPLICANT / HOSTAPD
•Os serviços hostapd e wpa_supplicant possuem
interfaces de controle via socket.
•Após inicializados é possível controlar os serviços via
console/adb utilizando as ferramentas wpa_cli e
hostapd_cli.
•As ferramentas possuem help com a relação dos
comandos que podem ser utilizados
•Alguns comandos dependem da implementação do driver
Para saber mais sobre os comandos que o Android envia ao
HAL consulte o arquivo WifiNative.java
WifiNative – comandos
/**
* Format of results:
* =================
* id=1
* bssid=68:7f:74:d7:1b:6e
* freq=2412
* level=-43
* tsf=1344621975160944
* age=2623
* flags=[WPA2-PSK-CCMP][WPS][ESS]
* ssid=zubyb
* ====
*
* RANGE=ALL gets all scan results
* RANGE=ID- gets results from ID
* MASK=<N> see wpa_supplicant/src/common/wpa_ctrl.h for details
*/
public String scanResults(int sid) {
return doStringCommand("BSS RANGE=" + sid + "- MASK=0x21987");
}
public boolean startDriver() {
return doBooleanCommand("DRIVER START");
}
public boolean stopDriver() {
return doBooleanCommand("DRIVER STOP");
}
Arquivo de configuração - wpa_supplicant.conf
Target: data/misc/wifi/wpa_supplicant.conf
##### wpa_supplicant configuration file template #####
update_config=1
ctrl_interface=DIR=/data/system/wpa_supplicant GROUP=wifi
eapol_version=1
ap_scan=1
fast_reauth=1
config_methods=virtual_push_button physical_display keypad
p2p_listen_channel=11
p2p_listen_reg_class=81
network={
ssid="lab1"
psk="123456789a"
key_mgmt=WPA-PSK
priority=2
}
Connectivity Manager
•Monitorar conexões (Wi-Fi , GPRS, UMTS, etc)
•Informar alteração do status de rede (Intent Broadcast)
•“Fail Over” entre interfaces de rede
•Fornecer API para aplicações verificarem status e
disponibilidade da rede
•Disponibilizar API para permitir ao aplicativo selecionar
qual interface de rede será utilizada para envio/recebimento
de informações
Connectivity Manager
Arquitetura Bluetooth Android
Android Bluetooth
BlueZ
•Utilizado até a versão Android 4.1 (2012)
•Licença GPL
•O port do BlueZ para Android é mantido fora da AOSP
•https://01.org/bluez-android
Bluedroid
•Foi integrado na AOSP a partir da versão 4.2
•Toda Stack é executada em User Space
•Desenvolvida inicialmente pela Broadcom
•Necessidade de adequar ao licenciamento do Android
•Foi considerado estável apenas na versão Android 6.0
•Em sua versão inicial suporta apenas dispositivos com
interface serial
Bluetooth - Bluedroid
Distribuição do código fonte:
Application
/packages/apps/Settings/src/com/android/settings/bluetooth
Java Framework
/frameworks/base/core/java/android/bluetooth
JNI
/packages/apps/Bluetooth/jni/com_android_bluetooth_{profile}.cpp
HAL- (BTIF – Bluetooth Interface)
/hardware/libhardware/include/hardware/bt_*.h
Bluetooth App (BTA – Bluetooth Application)
/packages/apps/Bluetooth/src/com/android/bluetooth
BlueDroid
/external/bluetooth/bluedroid
/system/bluetooth (adaptation code)
Bluedroid - Arquitetura
Profiles Suportados pelo BlueDroid no Android 4.3
•HFP – Hands Free Profile
•A2DP – Advance Audio Distribution
•HDP – Health Device Profile
•SPP – Serial Port Profile
•HID – Human Interface Device Profile
•PAN – Personal Area Network
•SDAP – Service Discovery Application Protocol
•HFP – Hands Free Profile
•MAP – Message Access Profile
•OPP - Object Push Profile
•PABP – Phone Book Access Profile
•AVRCP – Audio/Video Remote Control Profile
•GATT – Generic Attribute Profile
https://developer.bluetooth.org/TechnologyOverview/Pages/Profiles.aspx
Os profiles são implementados na HAL, BlueDroid e
possuem conectores JNI.
/hardware/libhardware/include/hardware/bluetooth.h (HAL)
/hardware/libhardware/include/hardware/bt_{profile}.h
/packages/apps/Bluetooth/jni/com_android_bluetooth_{profile}.cpp
Bluetooth - Profiles
/* Bluetooth profile interface IDs */
#define BT_PROFILE_HANDSFREE_ID "handsfree"
#define BT_PROFILE_ADVANCED_AUDIO_ID "a2dp"
#define BT_PROFILE_HEALTH_ID "health"
#define BT_PROFILE_SOCKETS_ID "socket"
#define BT_PROFILE_HIDHOST_ID "hidhost"
#define BT_PROFILE_PAN_ID "pan"
#define BT_PROFILE_GATT_ID "gatt"
#define BT_PROFILE_AV_RC_ID "avrcp"
/* Bluetooth profile interface IDs */
#define BT_PROFILE_HANDSFREE_ID "handsfree"
#define BT_PROFILE_HANDSFREE_CLIENT_ID
"handsfree_client"
#define BT_PROFILE_ADVANCED_AUDIO_ID "a2dp"
#define BT_PROFILE_ADVANCED_AUDIO_SINK_ID
"a2dp_sink"
#define BT_PROFILE_HEALTH_ID "health"
#define BT_PROFILE_SOCKETS_ID "socket"
#define BT_PROFILE_HIDHOST_ID "hidhost"
#define BT_PROFILE_PAN_ID "pan"
#define BT_PROFILE_MAP_CLIENT_ID "map_client"
#define BT_PROFILE_SDP_CLIENT_ID "sdp"
#define BT_PROFILE_GATT_ID "gatt"
#define BT_PROFILE_AV_RC_ID "avrcp"
#define BT_PROFILE_AV_RC_CTRL_ID "avrcp_ctrl"
Android 4.3 Android 6.0
/hardware/libhardware/include/hardware/bluetooth.h
Bluetooth - HAL
├── com_android_bluetooth_a2dp.cpp
├── com_android_bluetooth_avrcp.cpp
├── com_android_bluetooth_btservice_AdapterService.cpp
├── com_android_bluetooth_gatt.cpp
├── com_android_bluetooth.h
├── com_android_bluetooth_hdp.cpp
├── com_android_bluetooth_hfp.cpp
├── com_android_bluetooth_hid.cpp
└── com_android_bluetooth_pan.cpp
Android 4.3 Android 6.0
Bluetooth – HAL / JNI
/packages/apps/Bluetooth/jni
── com_android_bluetooth_a2dp.cpp
├── com_android_bluetooth_a2dp_sink.cpp
├── com_android_bluetooth_avrcp_controller.cpp
├── com_android_bluetooth_avrcp.cpp
├── com_android_bluetooth_btservice_AdapterServi
├── com_android_bluetooth_gatt.cpp
├── com_android_bluetooth.h
├── com_android_bluetooth_hdp.cpp
├── com_android_bluetooth_hfpclient.cpp
├── com_android_bluetooth_hfp.cpp
├── com_android_bluetooth_hid.cpp
├── com_android_bluetooth_pan.cpp
└── com_android_bluetooth_sdp.cpp
├── bluetooth.h
├── bt_av.h
├── bt_gatt_client.h
├── bt_gatt.h
├── bt_gatt_server.h
├── bt_gatt_types.h
├── bt_hf.h
├── bt_hh.h
├── bt_hl.h
├── bt_pan.h
├── bt_rc.h
├── bt_sock.h
├── bluetooth.h
├── boot_control.h
├── bt_av.h
├── bt_common_types.h
├── bt_gatt_client.h
├── bt_gatt.h
├── bt_gatt_server.h
├── bt_gatt_types.h
├── bt_hf_client.h
├── bt_hf.h
├── bt_hh.h
├── bt_hl.h
├── bt_mce.h
├── bt_pan.h
├── bt_rc.h
├── bt_sdp.h
├── bt_sock.h
Android 4.3 Android 6.0
Bluetooth - HAL
/hardware/libhardware/include/hardware/
Android 4.3
Bluetooth - libbtvendor
fsl/
└── wandboard
├── Android.mk
└── bt_vendor.conf
hardware/broadcom/libbt/conf
.
├── bt_vendor_brcm.c
├── conf.c
├── hardware.c
├── upio.c
└── userial_vendor.c
hardware/broadcom/libbt/src
hardware/broadcom/libbt/include
├── bt_vendor_brcm.h
├── upio.h
├── userial_vendor.h
├── vnd_crespo4g.txt
├── vnd_crespo.txt
├── vnd_generic.txt
├── vnd_generic_x86.txt
├── vnd_grouper.txt
├── vnd_hammerhead.txt
├── vnd_maguro.txt
├── vnd_mako.txt
├── vnd_manta.txt
├── vnd_phantasm.txt
├── vnd_stingray.txt
├── vnd_tilapia.txt
├── vnd_toro.txt
├── vnd_tuna.txt
└── vnd_wingray.txt
Bluetooth – Arquivos de Configurações
wandboard.mk
Host: system/bluetooth/data/
Target: system/etc/bluetooth
├── audio.conf
├── auto_pairing.conf
├── blacklist.conf
├── input.conf
├── main.conf
├── main.le.conf
├── main.nonsmartphone.conf
├──
main.nonsmartphone.le.conf
└── network.conf
Dúvidas ?
Obrigado!
Caio Pereira – caiop@inatel.br
Referências Bibliográficas
[1] WPA Supplicant Devel - http://w1.fi/wpa_supplicant/wpa_supplicant-devel.pdf
[2] Android Wi-Fi Manager and Bluetooth - http://pt.slideshare.net/pohjus/android-wifi-manager-and-bluetooth-connection
[3] Android 4.1 Netd detailed analysis of a Overview and Applications http://blog.csdn.net/xiaokeweng/article/details/8130218
[4] BirdView of Wifi in Linux/Android - http://pt.slideshare.net/leohyang66/wifiswbirdviewv04-46410468?related=1
[5] Android Service Black Magic - http://pt.slideshare.net/marakana/android-services-black-magic-by-aleksandar-gargenta
[6] Android Lollipop : Bluetooth LE Matures - https://newcircle.com/s/post/1697/android_lollipop_bluetooth_andevcon
[7] CLAT - http://dan.drown.org/android/clat/
[8] Linux Wireless Linux Kernel Networking (4) Advanced Topics - http://www.haifux.org/lectures/206/wirelessLec.pdf
[9] Linux 802.11 Solutions for Mobile Platforms - http://elinux.org/images/d/da/Ortiz-elce-2009.pdf
[10] Comparison of Open Source Wireless Driver - https://en.wikipedia.org/wiki/Comparison_of_open-source_wireless_drivers
[11] mac80211 Overview - https://wireless.wiki.kernel.org/_media/en/developers/documentation/mac80211.pdf
[12] Android.net.wifi - http://developer.android.com/intl/pt-br/reference/android/net/wifi/package-summary.html
[13] Returning BlueZ to Android - https://lwn.net/Articles/597293/
[14]Android Bluetooth Stack - https://source.android.com/devices/bluetooth.html
[15] Dive Into Android Networking: Adding Ethernet Connectivity - http://pt.slideshare.net/gxben/abs-2013-dive-into-android-networking-
adding-ethernet-connectivity
[16] Android Kitkat Internals - http://events.linuxfoundation.org/sites/events/files/slides/ABS%202014%20-%20Kit%20Kat%20Internals.pdf
[17] How to Support New WiFI Card in Android - https://community.freescale.com/docs/DOC-93603
[18] How Android Wifi State Machine Works - http://jhshi.me/2014/04/25/how-android-wifi-state-machine-works/
[19] – Android Bluetooth Stack: Bluedroid: The analysis of A2DP Source - http://blog.csdn.net/wendell_gong/article/details/29841967
[20] – Android Bluetooth Stack: Bluedroid - http://blog.csdn.net/wendell_gong/article/details/9630311
[21] – Android – Bluetooth Entry - http://blog.csdn.net/sungang860820/article/details/40344623
[22] – Android Bluetooth Stack: Bluedroid: Enable Bluetooth - http://blog.csdn.net/wendell_gong/article/details/9716619
[23] – Android Bluetooth OPP File Transfer - http://blog.csdn.net/safrans/article/details/27403287
[24] – Android Bluetooth Architecture (BlueZ) - http://blog.csdn.net/adazone/article/details/41082457
[25] – Android Bluetooth Introduction: Basic Concept and Hardware Interface - http://blog.csdn.net/adazone/article/details/41082405
[26] – Android ConnectivityManager - http://developer.android.com/intl/pt-br/reference/android/net/ConnectivityManager.html
[27] – Determining and Monitoring the Connectivity Status - http://developer.android.com/intl/pt-br/training/monitoring-device-
state/connectivity-monitoring.html

Weitere ähnliche Inhalte

Was ist angesagt?

How to Root 10 Million Phones with One Exploit
How to Root 10 Million Phones with One ExploitHow to Root 10 Million Phones with One Exploit
How to Root 10 Million Phones with One ExploitJiahong Fang
 
Kernel Recipes 2015 - Porting Linux to a new processor architecture
Kernel Recipes 2015 - Porting Linux to a new processor architectureKernel Recipes 2015 - Porting Linux to a new processor architecture
Kernel Recipes 2015 - Porting Linux to a new processor architectureAnne Nicolas
 
Kernel Recipes 2015: Anatomy of an atomic KMS driver
Kernel Recipes 2015: Anatomy of an atomic KMS driverKernel Recipes 2015: Anatomy of an atomic KMS driver
Kernel Recipes 2015: Anatomy of an atomic KMS driverAnne Nicolas
 
BlueHat v18 || Straight outta v mware - modern exploitation of the svga devic...
BlueHat v18 || Straight outta v mware - modern exploitation of the svga devic...BlueHat v18 || Straight outta v mware - modern exploitation of the svga devic...
BlueHat v18 || Straight outta v mware - modern exploitation of the svga devic...BlueHat Security Conference
 
[嵌入式系統] MCS-51 實驗 - 使用 IAR (2)
[嵌入式系統] MCS-51 實驗 - 使用 IAR (2)[嵌入式系統] MCS-51 實驗 - 使用 IAR (2)
[嵌入式系統] MCS-51 實驗 - 使用 IAR (2)Simen Li
 
44CON London - Attacking VxWorks: from Stone Age to Interstellar
44CON London - Attacking VxWorks: from Stone Age to Interstellar44CON London - Attacking VxWorks: from Stone Age to Interstellar
44CON London - Attacking VxWorks: from Stone Age to Interstellar44CON
 
Managing Large-scale Networks with Trigger
Managing Large-scale Networks with TriggerManaging Large-scale Networks with Trigger
Managing Large-scale Networks with Triggerjathanism
 
使用XMPP進行遠端設備控制
使用XMPP進行遠端設備控制使用XMPP進行遠端設備控制
使用XMPP進行遠端設備控制艾鍗科技
 
Qemu device prototyping
Qemu device prototypingQemu device prototyping
Qemu device prototypingYan Vugenfirer
 
Ищем уязвимости нулевого дня в ядре Linux
Ищем уязвимости нулевого дня в ядре LinuxИщем уязвимости нулевого дня в ядре Linux
Ищем уязвимости нулевого дня в ядре LinuxPositive Hack Days
 
got HW crypto-slides_hardwear
got HW crypto-slides_hardweargot HW crypto-slides_hardwear
got HW crypto-slides_hardwearGunnar Alendal
 
Debugging linux kernel tools and techniques
Debugging linux kernel tools and  techniquesDebugging linux kernel tools and  techniques
Debugging linux kernel tools and techniquesSatpal Parmar
 
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...Cyber Security Alliance
 
W8_2: Inside the UoS Educational Processor
W8_2: Inside the UoS Educational ProcessorW8_2: Inside the UoS Educational Processor
W8_2: Inside the UoS Educational ProcessorDaniel Roggen
 
Csw2016 gawlik bypassing_differentdefenseschemes
Csw2016 gawlik bypassing_differentdefenseschemesCsw2016 gawlik bypassing_differentdefenseschemes
Csw2016 gawlik bypassing_differentdefenseschemesCanSecWest
 
Csw2016 wheeler barksdale-gruskovnjak-execute_mypacket
Csw2016 wheeler barksdale-gruskovnjak-execute_mypacketCsw2016 wheeler barksdale-gruskovnjak-execute_mypacket
Csw2016 wheeler barksdale-gruskovnjak-execute_mypacketCanSecWest
 
The Ring programming language version 1.9 book - Part 57 of 210
The Ring programming language version 1.9 book - Part 57 of 210The Ring programming language version 1.9 book - Part 57 of 210
The Ring programming language version 1.9 book - Part 57 of 210Mahmoud Samir Fayed
 

Was ist angesagt? (20)

How to Root 10 Million Phones with One Exploit
How to Root 10 Million Phones with One ExploitHow to Root 10 Million Phones with One Exploit
How to Root 10 Million Phones with One Exploit
 
Kernel Recipes 2015 - Porting Linux to a new processor architecture
Kernel Recipes 2015 - Porting Linux to a new processor architectureKernel Recipes 2015 - Porting Linux to a new processor architecture
Kernel Recipes 2015 - Porting Linux to a new processor architecture
 
Kernel Recipes 2015: Anatomy of an atomic KMS driver
Kernel Recipes 2015: Anatomy of an atomic KMS driverKernel Recipes 2015: Anatomy of an atomic KMS driver
Kernel Recipes 2015: Anatomy of an atomic KMS driver
 
BlueHat v18 || Straight outta v mware - modern exploitation of the svga devic...
BlueHat v18 || Straight outta v mware - modern exploitation of the svga devic...BlueHat v18 || Straight outta v mware - modern exploitation of the svga devic...
BlueHat v18 || Straight outta v mware - modern exploitation of the svga devic...
 
[嵌入式系統] MCS-51 實驗 - 使用 IAR (2)
[嵌入式系統] MCS-51 實驗 - 使用 IAR (2)[嵌入式系統] MCS-51 實驗 - 使用 IAR (2)
[嵌入式系統] MCS-51 實驗 - 使用 IAR (2)
 
Ieee 1149.1-2013-tutorial-ijtag
Ieee 1149.1-2013-tutorial-ijtagIeee 1149.1-2013-tutorial-ijtag
Ieee 1149.1-2013-tutorial-ijtag
 
44CON London - Attacking VxWorks: from Stone Age to Interstellar
44CON London - Attacking VxWorks: from Stone Age to Interstellar44CON London - Attacking VxWorks: from Stone Age to Interstellar
44CON London - Attacking VxWorks: from Stone Age to Interstellar
 
Managing Large-scale Networks with Trigger
Managing Large-scale Networks with TriggerManaging Large-scale Networks with Trigger
Managing Large-scale Networks with Trigger
 
使用XMPP進行遠端設備控制
使用XMPP進行遠端設備控制使用XMPP進行遠端設備控制
使用XMPP進行遠端設備控制
 
Qemu device prototyping
Qemu device prototypingQemu device prototyping
Qemu device prototyping
 
Ищем уязвимости нулевого дня в ядре Linux
Ищем уязвимости нулевого дня в ядре LinuxИщем уязвимости нулевого дня в ядре Linux
Ищем уязвимости нулевого дня в ядре Linux
 
got HW crypto-slides_hardwear
got HW crypto-slides_hardweargot HW crypto-slides_hardwear
got HW crypto-slides_hardwear
 
Kgdb kdb modesetting
Kgdb kdb modesettingKgdb kdb modesetting
Kgdb kdb modesetting
 
Debugging linux kernel tools and techniques
Debugging linux kernel tools and  techniquesDebugging linux kernel tools and  techniques
Debugging linux kernel tools and techniques
 
Arduino
ArduinoArduino
Arduino
 
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...
App secforum2014 andrivet-cplusplus11-metaprogramming_applied_to_software_obf...
 
W8_2: Inside the UoS Educational Processor
W8_2: Inside the UoS Educational ProcessorW8_2: Inside the UoS Educational Processor
W8_2: Inside the UoS Educational Processor
 
Csw2016 gawlik bypassing_differentdefenseschemes
Csw2016 gawlik bypassing_differentdefenseschemesCsw2016 gawlik bypassing_differentdefenseschemes
Csw2016 gawlik bypassing_differentdefenseschemes
 
Csw2016 wheeler barksdale-gruskovnjak-execute_mypacket
Csw2016 wheeler barksdale-gruskovnjak-execute_mypacketCsw2016 wheeler barksdale-gruskovnjak-execute_mypacket
Csw2016 wheeler barksdale-gruskovnjak-execute_mypacket
 
The Ring programming language version 1.9 book - Part 57 of 210
The Ring programming language version 1.9 book - Part 57 of 210The Ring programming language version 1.9 book - Part 57 of 210
The Ring programming language version 1.9 book - Part 57 of 210
 

Ähnlich wie Android 4.2 Internals - Bluetooth and Network

JS Fest 2018. Володимир Шиманський. Запуск двіжка JS на мікроконтролері
JS Fest 2018. Володимир Шиманський. Запуск двіжка JS на мікроконтролеріJS Fest 2018. Володимир Шиманський. Запуск двіжка JS на мікроконтролері
JS Fest 2018. Володимир Шиманський. Запуск двіжка JS на мікроконтролеріJSFestUA
 
Labs_BT_20221017.pptx
Labs_BT_20221017.pptxLabs_BT_20221017.pptx
Labs_BT_20221017.pptxssuserb4d806
 
Android Things in action
Android Things in actionAndroid Things in action
Android Things in actionStefano Sanna
 
Lost in Translation: When Industrial Protocol Translation goes Wrong [CONFide...
Lost in Translation: When Industrial Protocol Translation goes Wrong [CONFide...Lost in Translation: When Industrial Protocol Translation goes Wrong [CONFide...
Lost in Translation: When Industrial Protocol Translation goes Wrong [CONFide...Marco Balduzzi
 
Skydive, real-time network analyzer, container integration
Skydive, real-time network analyzer, container integrationSkydive, real-time network analyzer, container integration
Skydive, real-time network analyzer, container integrationSylvain Afchain
 
Eclipse Edje: A Java API for Microcontrollers
Eclipse Edje: A Java API for MicrocontrollersEclipse Edje: A Java API for Microcontrollers
Eclipse Edje: A Java API for MicrocontrollersMicroEJ
 
用Raspberry Pi 學Linux I2C Driver
用Raspberry Pi 學Linux I2C Driver用Raspberry Pi 學Linux I2C Driver
用Raspberry Pi 學Linux I2C Driver艾鍗科技
 
Analyzing the Performance of Mobile Web
Analyzing the Performance of Mobile WebAnalyzing the Performance of Mobile Web
Analyzing the Performance of Mobile WebAriya Hidayat
 
DEF CON 27 - XILING GONG PETER PI - exploiting qualcom wlan and modem over th...
DEF CON 27 - XILING GONG PETER PI - exploiting qualcom wlan and modem over th...DEF CON 27 - XILING GONG PETER PI - exploiting qualcom wlan and modem over th...
DEF CON 27 - XILING GONG PETER PI - exploiting qualcom wlan and modem over th...Felipe Prado
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?Doug Hawkins
 
Track c-High speed transaction-based hw-sw coverification -eve
Track c-High speed transaction-based hw-sw coverification -eveTrack c-High speed transaction-based hw-sw coverification -eve
Track c-High speed transaction-based hw-sw coverification -evechiportal
 
Linux kernel debugging
Linux kernel debuggingLinux kernel debugging
Linux kernel debugginglibfetion
 
IoT on Raspberry PI v1.2
IoT on Raspberry PI v1.2IoT on Raspberry PI v1.2
IoT on Raspberry PI v1.2John Staveley
 
Original slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkOriginal slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkAarti Parikh
 
Web of Technologies
Web of TechnologiesWeb of Technologies
Web of Technologiesdynamis
 

Ähnlich wie Android 4.2 Internals - Bluetooth and Network (20)

IoT on Raspberry Pi
IoT on Raspberry PiIoT on Raspberry Pi
IoT on Raspberry Pi
 
Genode Compositions
Genode CompositionsGenode Compositions
Genode Compositions
 
Skydive 5/07/2016
Skydive 5/07/2016Skydive 5/07/2016
Skydive 5/07/2016
 
JS Fest 2018. Володимир Шиманський. Запуск двіжка JS на мікроконтролері
JS Fest 2018. Володимир Шиманський. Запуск двіжка JS на мікроконтролеріJS Fest 2018. Володимир Шиманський. Запуск двіжка JS на мікроконтролері
JS Fest 2018. Володимир Шиманський. Запуск двіжка JS на мікроконтролері
 
Labs_BT_20221017.pptx
Labs_BT_20221017.pptxLabs_BT_20221017.pptx
Labs_BT_20221017.pptx
 
Android Things in action
Android Things in actionAndroid Things in action
Android Things in action
 
Lost in Translation: When Industrial Protocol Translation goes Wrong [CONFide...
Lost in Translation: When Industrial Protocol Translation goes Wrong [CONFide...Lost in Translation: When Industrial Protocol Translation goes Wrong [CONFide...
Lost in Translation: When Industrial Protocol Translation goes Wrong [CONFide...
 
Skydive, real-time network analyzer, container integration
Skydive, real-time network analyzer, container integrationSkydive, real-time network analyzer, container integration
Skydive, real-time network analyzer, container integration
 
Eclipse Edje: A Java API for Microcontrollers
Eclipse Edje: A Java API for MicrocontrollersEclipse Edje: A Java API for Microcontrollers
Eclipse Edje: A Java API for Microcontrollers
 
用Raspberry Pi 學Linux I2C Driver
用Raspberry Pi 學Linux I2C Driver用Raspberry Pi 學Linux I2C Driver
用Raspberry Pi 學Linux I2C Driver
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
Analyzing the Performance of Mobile Web
Analyzing the Performance of Mobile WebAnalyzing the Performance of Mobile Web
Analyzing the Performance of Mobile Web
 
R-House (LSRC)
R-House (LSRC)R-House (LSRC)
R-House (LSRC)
 
DEF CON 27 - XILING GONG PETER PI - exploiting qualcom wlan and modem over th...
DEF CON 27 - XILING GONG PETER PI - exploiting qualcom wlan and modem over th...DEF CON 27 - XILING GONG PETER PI - exploiting qualcom wlan and modem over th...
DEF CON 27 - XILING GONG PETER PI - exploiting qualcom wlan and modem over th...
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?
 
Track c-High speed transaction-based hw-sw coverification -eve
Track c-High speed transaction-based hw-sw coverification -eveTrack c-High speed transaction-based hw-sw coverification -eve
Track c-High speed transaction-based hw-sw coverification -eve
 
Linux kernel debugging
Linux kernel debuggingLinux kernel debugging
Linux kernel debugging
 
IoT on Raspberry PI v1.2
IoT on Raspberry PI v1.2IoT on Raspberry PI v1.2
IoT on Raspberry PI v1.2
 
Original slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkOriginal slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talk
 
Web of Technologies
Web of TechnologiesWeb of Technologies
Web of Technologies
 

Mehr von Caio Pereira

TDC2017 - Embedded Linux - Deploy Software Update for Linux Devices
TDC2017 - Embedded Linux - Deploy Software Update for Linux DevicesTDC2017 - Embedded Linux - Deploy Software Update for Linux Devices
TDC2017 - Embedded Linux - Deploy Software Update for Linux DevicesCaio Pereira
 
Internet das Coisas - O que vai mudar na sua vida?
Internet das Coisas - O que vai mudar na sua vida?Internet das Coisas - O que vai mudar na sua vida?
Internet das Coisas - O que vai mudar na sua vida?Caio Pereira
 
Virtualização em Sistemas Embarcados
Virtualização em Sistemas EmbarcadosVirtualização em Sistemas Embarcados
Virtualização em Sistemas EmbarcadosCaio Pereira
 
IoT - Internet das Coisas e Suas oportunidades
IoT - Internet das Coisas e Suas oportunidadesIoT - Internet das Coisas e Suas oportunidades
IoT - Internet das Coisas e Suas oportunidadesCaio Pereira
 

Mehr von Caio Pereira (6)

TDC2017 - Embedded Linux - Deploy Software Update for Linux Devices
TDC2017 - Embedded Linux - Deploy Software Update for Linux DevicesTDC2017 - Embedded Linux - Deploy Software Update for Linux Devices
TDC2017 - Embedded Linux - Deploy Software Update for Linux Devices
 
Internet das Coisas - O que vai mudar na sua vida?
Internet das Coisas - O que vai mudar na sua vida?Internet das Coisas - O que vai mudar na sua vida?
Internet das Coisas - O que vai mudar na sua vida?
 
Virtualização em Sistemas Embarcados
Virtualização em Sistemas EmbarcadosVirtualização em Sistemas Embarcados
Virtualização em Sistemas Embarcados
 
IoT - Internet das Coisas e Suas oportunidades
IoT - Internet das Coisas e Suas oportunidadesIoT - Internet das Coisas e Suas oportunidades
IoT - Internet das Coisas e Suas oportunidades
 
Desafios do IoT
Desafios do IoTDesafios do IoT
Desafios do IoT
 
Redes Ad-Hoc
Redes Ad-HocRedes Ad-Hoc
Redes Ad-Hoc
 

Kürzlich hochgeladen

VVIP Pune Call Girls Balaji Nagar (7001035870) Pune Escorts Nearby with Compl...
VVIP Pune Call Girls Balaji Nagar (7001035870) Pune Escorts Nearby with Compl...VVIP Pune Call Girls Balaji Nagar (7001035870) Pune Escorts Nearby with Compl...
VVIP Pune Call Girls Balaji Nagar (7001035870) Pune Escorts Nearby with Compl...Call Girls in Nagpur High Profile
 
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...nagunakhan
 
Top Rated Pune Call Girls Katraj ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated  Pune Call Girls Katraj ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...Top Rated  Pune Call Girls Katraj ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated Pune Call Girls Katraj ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...Call Girls in Nagpur High Profile
 
Lucknow 💋 Call Girls Adil Nagar | ₹,9500 Pay Cash 8923113531 Free Home Delive...
Lucknow 💋 Call Girls Adil Nagar | ₹,9500 Pay Cash 8923113531 Free Home Delive...Lucknow 💋 Call Girls Adil Nagar | ₹,9500 Pay Cash 8923113531 Free Home Delive...
Lucknow 💋 Call Girls Adil Nagar | ₹,9500 Pay Cash 8923113531 Free Home Delive...anilsa9823
 
VVIP Pune Call Girls Warje (7001035870) Pune Escorts Nearby with Complete Sat...
VVIP Pune Call Girls Warje (7001035870) Pune Escorts Nearby with Complete Sat...VVIP Pune Call Girls Warje (7001035870) Pune Escorts Nearby with Complete Sat...
VVIP Pune Call Girls Warje (7001035870) Pune Escorts Nearby with Complete Sat...Call Girls in Nagpur High Profile
 
Gaya Call Girls #9907093804 Contact Number Escorts Service Gaya
Gaya Call Girls #9907093804 Contact Number Escorts Service GayaGaya Call Girls #9907093804 Contact Number Escorts Service Gaya
Gaya Call Girls #9907093804 Contact Number Escorts Service Gayasrsj9000
 
《伯明翰城市大学毕业证成绩单购买》学历证书学位证书区别《复刻原版1:1伯明翰城市大学毕业证书|修改BCU成绩单PDF版》Q微信741003700《BCU学...
《伯明翰城市大学毕业证成绩单购买》学历证书学位证书区别《复刻原版1:1伯明翰城市大学毕业证书|修改BCU成绩单PDF版》Q微信741003700《BCU学...《伯明翰城市大学毕业证成绩单购买》学历证书学位证书区别《复刻原版1:1伯明翰城市大学毕业证书|修改BCU成绩单PDF版》Q微信741003700《BCU学...
《伯明翰城市大学毕业证成绩单购买》学历证书学位证书区别《复刻原版1:1伯明翰城市大学毕业证书|修改BCU成绩单PDF版》Q微信741003700《BCU学...ur8mqw8e
 
如何办理(Adelaide毕业证)阿德莱德大学毕业证成绩单Adelaide学历认证真实可查
如何办理(Adelaide毕业证)阿德莱德大学毕业证成绩单Adelaide学历认证真实可查如何办理(Adelaide毕业证)阿德莱德大学毕业证成绩单Adelaide学历认证真实可查
如何办理(Adelaide毕业证)阿德莱德大学毕业证成绩单Adelaide学历认证真实可查awo24iot
 
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,Pooja Nehwal
 
VIP Call Girls Kavuri Hills ( Hyderabad ) Phone 8250192130 | ₹5k To 25k With ...
VIP Call Girls Kavuri Hills ( Hyderabad ) Phone 8250192130 | ₹5k To 25k With ...VIP Call Girls Kavuri Hills ( Hyderabad ) Phone 8250192130 | ₹5k To 25k With ...
VIP Call Girls Kavuri Hills ( Hyderabad ) Phone 8250192130 | ₹5k To 25k With ...Suhani Kapoor
 
Call Girls Delhi {Rohini} 9711199012 high profile service
Call Girls Delhi {Rohini} 9711199012 high profile serviceCall Girls Delhi {Rohini} 9711199012 high profile service
Call Girls Delhi {Rohini} 9711199012 high profile servicerehmti665
 
Pallawi 9167673311 Call Girls in Thane , Independent Escort Service Thane
Pallawi 9167673311  Call Girls in Thane , Independent Escort Service ThanePallawi 9167673311  Call Girls in Thane , Independent Escort Service Thane
Pallawi 9167673311 Call Girls in Thane , Independent Escort Service ThanePooja Nehwal
 
VIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service Saharanpur
VIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service SaharanpurVIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service Saharanpur
VIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service SaharanpurSuhani Kapoor
 
Call Girls in Nagpur Sakshi Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Sakshi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Sakshi Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Sakshi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Low Rate Call Girls Nashik Vedika 7001305949 Independent Escort Service Nashik
Low Rate Call Girls Nashik Vedika 7001305949 Independent Escort Service NashikLow Rate Call Girls Nashik Vedika 7001305949 Independent Escort Service Nashik
Low Rate Call Girls Nashik Vedika 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Dubai Call Girls O528786472 Call Girls In Dubai Wisteria
Dubai Call Girls O528786472 Call Girls In Dubai WisteriaDubai Call Girls O528786472 Call Girls In Dubai Wisteria
Dubai Call Girls O528786472 Call Girls In Dubai WisteriaUnited Arab Emirates
 
Alambagh Call Girl 9548273370 , Call Girls Service Lucknow
Alambagh Call Girl 9548273370 , Call Girls Service LucknowAlambagh Call Girl 9548273370 , Call Girls Service Lucknow
Alambagh Call Girl 9548273370 , Call Girls Service Lucknowmakika9823
 
定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一
定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一
定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一ga6c6bdl
 
Thane Escorts, (Pooja 09892124323), Thane Call Girls
Thane Escorts, (Pooja 09892124323), Thane Call GirlsThane Escorts, (Pooja 09892124323), Thane Call Girls
Thane Escorts, (Pooja 09892124323), Thane Call GirlsPooja Nehwal
 

Kürzlich hochgeladen (20)

VVIP Pune Call Girls Balaji Nagar (7001035870) Pune Escorts Nearby with Compl...
VVIP Pune Call Girls Balaji Nagar (7001035870) Pune Escorts Nearby with Compl...VVIP Pune Call Girls Balaji Nagar (7001035870) Pune Escorts Nearby with Compl...
VVIP Pune Call Girls Balaji Nagar (7001035870) Pune Escorts Nearby with Compl...
 
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
 
Top Rated Pune Call Girls Katraj ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated  Pune Call Girls Katraj ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...Top Rated  Pune Call Girls Katraj ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
Top Rated Pune Call Girls Katraj ⟟ 6297143586 ⟟ Call Me For Genuine Sex Serv...
 
Lucknow 💋 Call Girls Adil Nagar | ₹,9500 Pay Cash 8923113531 Free Home Delive...
Lucknow 💋 Call Girls Adil Nagar | ₹,9500 Pay Cash 8923113531 Free Home Delive...Lucknow 💋 Call Girls Adil Nagar | ₹,9500 Pay Cash 8923113531 Free Home Delive...
Lucknow 💋 Call Girls Adil Nagar | ₹,9500 Pay Cash 8923113531 Free Home Delive...
 
VVIP Pune Call Girls Warje (7001035870) Pune Escorts Nearby with Complete Sat...
VVIP Pune Call Girls Warje (7001035870) Pune Escorts Nearby with Complete Sat...VVIP Pune Call Girls Warje (7001035870) Pune Escorts Nearby with Complete Sat...
VVIP Pune Call Girls Warje (7001035870) Pune Escorts Nearby with Complete Sat...
 
Gaya Call Girls #9907093804 Contact Number Escorts Service Gaya
Gaya Call Girls #9907093804 Contact Number Escorts Service GayaGaya Call Girls #9907093804 Contact Number Escorts Service Gaya
Gaya Call Girls #9907093804 Contact Number Escorts Service Gaya
 
《伯明翰城市大学毕业证成绩单购买》学历证书学位证书区别《复刻原版1:1伯明翰城市大学毕业证书|修改BCU成绩单PDF版》Q微信741003700《BCU学...
《伯明翰城市大学毕业证成绩单购买》学历证书学位证书区别《复刻原版1:1伯明翰城市大学毕业证书|修改BCU成绩单PDF版》Q微信741003700《BCU学...《伯明翰城市大学毕业证成绩单购买》学历证书学位证书区别《复刻原版1:1伯明翰城市大学毕业证书|修改BCU成绩单PDF版》Q微信741003700《BCU学...
《伯明翰城市大学毕业证成绩单购买》学历证书学位证书区别《复刻原版1:1伯明翰城市大学毕业证书|修改BCU成绩单PDF版》Q微信741003700《BCU学...
 
如何办理(Adelaide毕业证)阿德莱德大学毕业证成绩单Adelaide学历认证真实可查
如何办理(Adelaide毕业证)阿德莱德大学毕业证成绩单Adelaide学历认证真实可查如何办理(Adelaide毕业证)阿德莱德大学毕业证成绩单Adelaide学历认证真实可查
如何办理(Adelaide毕业证)阿德莱德大学毕业证成绩单Adelaide学历认证真实可查
 
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
 
VIP Call Girls Kavuri Hills ( Hyderabad ) Phone 8250192130 | ₹5k To 25k With ...
VIP Call Girls Kavuri Hills ( Hyderabad ) Phone 8250192130 | ₹5k To 25k With ...VIP Call Girls Kavuri Hills ( Hyderabad ) Phone 8250192130 | ₹5k To 25k With ...
VIP Call Girls Kavuri Hills ( Hyderabad ) Phone 8250192130 | ₹5k To 25k With ...
 
Call Girls Delhi {Rohini} 9711199012 high profile service
Call Girls Delhi {Rohini} 9711199012 high profile serviceCall Girls Delhi {Rohini} 9711199012 high profile service
Call Girls Delhi {Rohini} 9711199012 high profile service
 
Pallawi 9167673311 Call Girls in Thane , Independent Escort Service Thane
Pallawi 9167673311  Call Girls in Thane , Independent Escort Service ThanePallawi 9167673311  Call Girls in Thane , Independent Escort Service Thane
Pallawi 9167673311 Call Girls in Thane , Independent Escort Service Thane
 
VIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service Saharanpur
VIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service SaharanpurVIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service Saharanpur
VIP Call Girl Saharanpur Aashi 8250192130 Independent Escort Service Saharanpur
 
Call Girls in Nagpur Sakshi Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Sakshi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Sakshi Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Sakshi Call 7001035870 Meet With Nagpur Escorts
 
Low Rate Call Girls Nashik Vedika 7001305949 Independent Escort Service Nashik
Low Rate Call Girls Nashik Vedika 7001305949 Independent Escort Service NashikLow Rate Call Girls Nashik Vedika 7001305949 Independent Escort Service Nashik
Low Rate Call Girls Nashik Vedika 7001305949 Independent Escort Service Nashik
 
Dubai Call Girls O528786472 Call Girls In Dubai Wisteria
Dubai Call Girls O528786472 Call Girls In Dubai WisteriaDubai Call Girls O528786472 Call Girls In Dubai Wisteria
Dubai Call Girls O528786472 Call Girls In Dubai Wisteria
 
🔝 9953056974🔝 Delhi Call Girls in Ajmeri Gate
🔝 9953056974🔝 Delhi Call Girls in Ajmeri Gate🔝 9953056974🔝 Delhi Call Girls in Ajmeri Gate
🔝 9953056974🔝 Delhi Call Girls in Ajmeri Gate
 
Alambagh Call Girl 9548273370 , Call Girls Service Lucknow
Alambagh Call Girl 9548273370 , Call Girls Service LucknowAlambagh Call Girl 9548273370 , Call Girls Service Lucknow
Alambagh Call Girl 9548273370 , Call Girls Service Lucknow
 
定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一
定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一
定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一
 
Thane Escorts, (Pooja 09892124323), Thane Call Girls
Thane Escorts, (Pooja 09892124323), Thane Call GirlsThane Escorts, (Pooja 09892124323), Thane Call Girls
Thane Escorts, (Pooja 09892124323), Thane Call Girls
 

Android 4.2 Internals - Bluetooth and Network

  • 1.
  • 2.
  • 4. Wandboard Processador Freescale i.MX6 Quad Cores Quad Cortex-A9 Graphic Engine Vivante GC 2000 + Vivante GC 350 + Vivante GC 320 Memória RAM 2GB DDR3 Audio 1 HDMI 1 Output Micro-SD Slot 2 Serial Port 1 USB 1 USB OTG 1 Gigabit LAN 1 Wifi (802.11n) 1 Bluetooth 4.1 1
  • 10. Arquitetura •cfg80211 – API de configuração para o padrão 802.11 •mac80211 – Implementação da camada MAC (Medium Access Control) para SoftMAC •Wireless Module Driver .ko •Wireless Module Firmware •Wireless Module configuration Interfaces de I/O •PCIe (Média / Alta Capacidade) •SDIO – Secure Digital I/O (Baixa / Média Capacidade) •USB (Baixa / Média Capacidade) •Serial (Baixa Capacidade)
  • 11. Linux Wi-Fi - SoftMAC •Processamento do MAC em software (CPU) •Fácil atualização •Chips mais baratos •Maior consumo de energia na CPU •Menor desempenho User Space cfg80211 mac80211 Driver Hardware
  • 12. Linux Wi-Fi - FullMAC •Processamento do MAC é realizado na Interface •Atualização depende muito mais do fabricante •Chips mais caros •Menor consumo de CPU •Maior Desempenho User Space cfg80211 Driver Hardware
  • 13. Linux Wi-Fi – Arquitetura WEXT Wireless Extension – Desenvolvido em 1997, foi a primeira implementação de Wireless para Linux, algumas versões do Utilizada em versões do Android anteriores a 4.2 O acesso ao driver é através de ioctl() nl80211 Atual implementação para dispositivos Wireless no Linux (cfg80211 / mac80211) Realiza o acesso aos drivers através do protocolo netlink. Possui retrocompatibilidade com WEXT.
  • 14. Linux Wi-Fi – Arquitetura
  • 16. Tecnologias suportadas pelo Android •Mobile: GSM / EDGE / HSDPA / LTE •Wi-Fi •Bluetooth •Ethernet •WiMax*
  • 17. Arquitetura de Rede do Android •Kernel Drivers (Ethernet, Wi-Fi, Bluetooth, WiMax...) •Kernel TCP/IP Layer , POSIX user-space API support •Android Hardware Abstraction Layer (HAL) •Android Bionic C library •Android libnetutils (Network Utilities) •Android Netd (Network Daemon) •Android ConnectivityManager e ConnectivityService •Android Java Apps
  • 18. Bionic C O Android não implementa as configurações básicas de interfaces de rede como conhecemos no Linux. •/etc/network/interfaces •/etc/resolv.conf •Etc... Todas essas informações estão disponíveis apenas através dos comandos getprop / setprop
  • 19. Bionic C root@wandboard: # getprop | grep dhcp [dhcp.eth0.pid]: [2684] [dhcp.eth0.reason]: [PREINIT] [dhcp.eth0.result]: [failed] [dhcp.wlan0.dns1]: [192.168.1.1] [dhcp.wlan0.dns2]: [] [dhcp.wlan0.dns3]: [] [dhcp.wlan0.dns4]: [] [dhcp.wlan0.domain]: [Home] [dhcp.wlan0.gateway]: [192.168.1.1] [dhcp.wlan0.ipaddress]: [192.168.1.5] [dhcp.wlan0.leasetime]: [86400] [dhcp.wlan0.mask]: [255.255.255.0] [dhcp.wlan0.pid]: [4791] [dhcp.wlan0.reason]: [REBOOT] [dhcp.wlan0.result]: [failed] [dhcp.wlan0.server]: [192.168.1.1] [dhcp.wlan0.vendorInfo]: []
  • 20. Netd / Libnetutils Netd •Responsável pelo gerenciamento das interfaces •O Daemon é acessado através de Unix Socket. • Pode ser controlado por apps ou através do comando ndc Libnetutils •Disponibiliza acesso baixo nível ao controle das interfaces •Disponibiliza acesso a API para ifconfig / netcfg / route / dhcpcd / dhcpc •É utilizado pelo HAL e System Framework para controlar as interfaces
  • 21. Netd – Network Daemon •Operação , Gerenciamento e Armazenamento de informações das interfaces de rede •Estatística de tráfego •Controle de Banda (Quota) •Gerenciamento das Tabelas de Roteamento •Firewall •NAT – Network Translation Address •PAN – Personal Area Network •Links PPP – Point to Point Protocol •SoftAP (Hotspot) •Tethering •….
  • 23. Netd – Network Daemon Documentação Oficial: Código Fonte Netd /system/netd lib /system/core/libsysutils/src Framework /frameworks/base/services/java/com/android/server/NetworkManagamentService.java /frameworks/base/services/java/com/android/server/NativeDaemonConnector.java
  • 24. Acessando o Netd através do command ndc root@wandboard:/ # ndc Usage: ndc [sockname] <monitor>|<cmd> [arg1] [arg2...] root@wandboard:/ # ndc --help 500 0 Command not recognized Como saber quais comandos utilizar ?
  • 25. NDC – Network Daemon Command NDC /system/netd/ndc.cpp /system/netd/CommandListener.cpp Framework /frameworks/base/services/java/com/android/server/NetworkManagamentService.java CommandListener::CommandListener() : FrameworkListener("netd", true) { registerCmd(new InterfaceCmd()); registerCmd(new IpFwdCmd()); registerCmd(new TetherCmd()); registerCmd(new NatCmd()); registerCmd(new ListTtysCmd()); registerCmd(new PppdCmd()); registerCmd(new SoftapCmd()); registerCmd(new BandwidthControlCmd()); registerCmd(new IdletimerControlCmd()); registerCmd(new ResolverCmd()); registerCmd(new FirewallCmd()); registerCmd(new ClatdCmd()); event = mConnector.execute("interface", "getcfg", iface); mConnector.execute("interface", "ipv6privacyextensions", iface, enable ? "enable" : "disable"); event = mConnector.execute("ipfwd", "status"); mConnector.execute("pppd", "attach", tty, NetworkUtils.numericToInetAddress(localAddr).getHostAddress(), NetworkUtils.numericToInetAddress(remoteAddr).getHostAddress(), NetworkUtils.numericToInetAddress(dns1Addr).getHostAddress(), NetworkUtils.numericToInetAddress(dns2Addr).getHostAddress());
  • 26. NDC – Network Daemon Command
  • 27. NDC – Network Daemon Command
  • 30. Arquitetura Wi-Fi Android O Android 4.3 suporta três modos de operação para a interface Wi-Fi •Cliente •SoftAp •P2P
  • 32. Arquitetura Wi-Fi Android A Arquitetura Wi-Fi do Android pode ser dividida em três partes. •Framework Java: (WifiManager, WifiMonitor, WifiSettings, WifiService, WifiStateMachine, WifiNative...) •HAL: wifi.c, wpa_supplicant, hostapd, netd… •Kernel Space Modules: Wireless Stack, Wifi Drivers , Wifi Firmwares.
  • 34.
  • 35. Arquitetura Wi-Fi Android – Framework Java •WifiManager Responsável por disponibilizar a API para outras aplicações (Connectivity Manager) para que seja possível gerenciar todos parâmetros de conectividade da interface Wi-Fi. lRealizar comunicação com o WifiServices através do Binder. lPath: l/frameworks/base/wifi/java/android/net/wifi/WifiManager.java
  • 36. Arquitetura Wi-Fi Android - Framework Java •WifiService Responsável por reportar os eventos da Interface Wi-Fi e realizar a integração com o Binder (IPC). Path: /frameworks/base/services/java/com/android/server/WifiService.java
  • 37. Arquitetura Wi-Fi Android - Framework Java WifiStateMachine Responsável realizar o gerenciamento do “ciclo de do funcionamento” da interface Wi-Fi. Três tipos de estados: Enter(): executado quando entra no estado Exit(): executando quando saí do estado atual ProcessMessage(): executando quando é recebido uma mensagem Path: /frameworks/base/wifi/java/android/net/wifi/WifiStateMachine.java
  • 39. Arquitetura Wi-Fi Android - Framework Java WifiMonitor •Responsável receber eventos e informações do wpa_supplicant / hostapd / p2p •Comunicação através de Sockets WifiNative •Responsável por enviar os comandos para a HAL •Comunicação através do JNI Path: /frameworks/base/wifi/java/android/net/wifi/WifiMonitor.java /frameworks/base/wifi/java/android/net/wifi/WifiNative.java
  • 40. Arquitetura Wi-Fi Android - HAL WifiJNI •Realiza a interface de serviços Java e C/C++ (HAL) Path: /frameworks/base/core/jni/android_net_wifi_Wifi.cpp /* * JNI registration. */ static JNINativeMethod gWifiMethods[] = { /* name, signature, funcPtr */ { "loadDriver", "()Z", (void *)android_net_wifi_loadDriver }, { "isDriverLoaded", "()Z", (void *)android_net_wifi_isDriverLoaded }, { "unloadDriver", "()Z", (void *)android_net_wifi_unloadDriver }, { "startSupplicant", "(Z)Z", (void *)android_net_wifi_startSupplicant }, { "killSupplicant", "(Z)Z", (void *)android_net_wifi_killSupplicant }, { "connectToSupplicant", "(Ljava/lang/String;)Z", (void *)android_net_wifi_connectToSupplicant }, { "closeSupplicantConnection", "(Ljava/lang/String;)V", (void *)android_net_wifi_closeSupplicantConnection }, { "waitForEvent", "(Ljava/lang/String;)Ljava/lang/String;", (void*) android_net_wifi_waitForEvent }, { "doBooleanCommand", "(Ljava/lang/String;Ljava/lang/String;)Z", (void*) android_net_wifi_doBooleanCommand }, { "doIntCommand", "(Ljava/lang/String;Ljava/lang/String;)I", (void*) android_net_wifi_doIntCommand }, { "doStringCommand", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", (void*) android_net_wifi_doStringCommand },
  • 41. Arquitetura Wi-Fi Android - HAL HAL •Camada de abstração •Funcionalidades para carregar firmware •Inicializar/Finalizar driver e serviços (dhcp, wpa_supplicant,hostapd, dhcpc, dhcpd..) •Preparar interface de controle dos serviços •Criar arquivo de entropia •Carregar arquivos de configuração dos serviços A implementação desta camada é responsabilidade do fabricante do driver do módulo Wifi Path: /hardware/libhardware_legacy/wifi/wifi.c /hardware/broadcom/wlan/bcmdhd/*
  • 42. WPA_SUPPLICANT / HOSTAPD •Os serviços hostapd e wpa_supplicant possuem interfaces de controle via socket. •Após inicializados é possível controlar os serviços via console/adb utilizando as ferramentas wpa_cli e hostapd_cli. •As ferramentas possuem help com a relação dos comandos que podem ser utilizados •Alguns comandos dependem da implementação do driver Para saber mais sobre os comandos que o Android envia ao HAL consulte o arquivo WifiNative.java
  • 43. WifiNative – comandos /** * Format of results: * ================= * id=1 * bssid=68:7f:74:d7:1b:6e * freq=2412 * level=-43 * tsf=1344621975160944 * age=2623 * flags=[WPA2-PSK-CCMP][WPS][ESS] * ssid=zubyb * ==== * * RANGE=ALL gets all scan results * RANGE=ID- gets results from ID * MASK=<N> see wpa_supplicant/src/common/wpa_ctrl.h for details */ public String scanResults(int sid) { return doStringCommand("BSS RANGE=" + sid + "- MASK=0x21987"); } public boolean startDriver() { return doBooleanCommand("DRIVER START"); } public boolean stopDriver() { return doBooleanCommand("DRIVER STOP"); }
  • 44. Arquivo de configuração - wpa_supplicant.conf Target: data/misc/wifi/wpa_supplicant.conf ##### wpa_supplicant configuration file template ##### update_config=1 ctrl_interface=DIR=/data/system/wpa_supplicant GROUP=wifi eapol_version=1 ap_scan=1 fast_reauth=1 config_methods=virtual_push_button physical_display keypad p2p_listen_channel=11 p2p_listen_reg_class=81 network={ ssid="lab1" psk="123456789a" key_mgmt=WPA-PSK priority=2 }
  • 45. Connectivity Manager •Monitorar conexões (Wi-Fi , GPRS, UMTS, etc) •Informar alteração do status de rede (Intent Broadcast) •“Fail Over” entre interfaces de rede •Fornecer API para aplicações verificarem status e disponibilidade da rede •Disponibilizar API para permitir ao aplicativo selecionar qual interface de rede será utilizada para envio/recebimento de informações
  • 48. Android Bluetooth BlueZ •Utilizado até a versão Android 4.1 (2012) •Licença GPL •O port do BlueZ para Android é mantido fora da AOSP •https://01.org/bluez-android Bluedroid •Foi integrado na AOSP a partir da versão 4.2 •Toda Stack é executada em User Space •Desenvolvida inicialmente pela Broadcom •Necessidade de adequar ao licenciamento do Android •Foi considerado estável apenas na versão Android 6.0 •Em sua versão inicial suporta apenas dispositivos com interface serial
  • 49. Bluetooth - Bluedroid Distribuição do código fonte: Application /packages/apps/Settings/src/com/android/settings/bluetooth Java Framework /frameworks/base/core/java/android/bluetooth JNI /packages/apps/Bluetooth/jni/com_android_bluetooth_{profile}.cpp HAL- (BTIF – Bluetooth Interface) /hardware/libhardware/include/hardware/bt_*.h Bluetooth App (BTA – Bluetooth Application) /packages/apps/Bluetooth/src/com/android/bluetooth BlueDroid /external/bluetooth/bluedroid /system/bluetooth (adaptation code)
  • 51. Profiles Suportados pelo BlueDroid no Android 4.3 •HFP – Hands Free Profile •A2DP – Advance Audio Distribution •HDP – Health Device Profile •SPP – Serial Port Profile •HID – Human Interface Device Profile •PAN – Personal Area Network •SDAP – Service Discovery Application Protocol •HFP – Hands Free Profile •MAP – Message Access Profile •OPP - Object Push Profile •PABP – Phone Book Access Profile •AVRCP – Audio/Video Remote Control Profile •GATT – Generic Attribute Profile https://developer.bluetooth.org/TechnologyOverview/Pages/Profiles.aspx
  • 52. Os profiles são implementados na HAL, BlueDroid e possuem conectores JNI. /hardware/libhardware/include/hardware/bluetooth.h (HAL) /hardware/libhardware/include/hardware/bt_{profile}.h /packages/apps/Bluetooth/jni/com_android_bluetooth_{profile}.cpp Bluetooth - Profiles
  • 53. /* Bluetooth profile interface IDs */ #define BT_PROFILE_HANDSFREE_ID "handsfree" #define BT_PROFILE_ADVANCED_AUDIO_ID "a2dp" #define BT_PROFILE_HEALTH_ID "health" #define BT_PROFILE_SOCKETS_ID "socket" #define BT_PROFILE_HIDHOST_ID "hidhost" #define BT_PROFILE_PAN_ID "pan" #define BT_PROFILE_GATT_ID "gatt" #define BT_PROFILE_AV_RC_ID "avrcp" /* Bluetooth profile interface IDs */ #define BT_PROFILE_HANDSFREE_ID "handsfree" #define BT_PROFILE_HANDSFREE_CLIENT_ID "handsfree_client" #define BT_PROFILE_ADVANCED_AUDIO_ID "a2dp" #define BT_PROFILE_ADVANCED_AUDIO_SINK_ID "a2dp_sink" #define BT_PROFILE_HEALTH_ID "health" #define BT_PROFILE_SOCKETS_ID "socket" #define BT_PROFILE_HIDHOST_ID "hidhost" #define BT_PROFILE_PAN_ID "pan" #define BT_PROFILE_MAP_CLIENT_ID "map_client" #define BT_PROFILE_SDP_CLIENT_ID "sdp" #define BT_PROFILE_GATT_ID "gatt" #define BT_PROFILE_AV_RC_ID "avrcp" #define BT_PROFILE_AV_RC_CTRL_ID "avrcp_ctrl" Android 4.3 Android 6.0 /hardware/libhardware/include/hardware/bluetooth.h Bluetooth - HAL
  • 54. ├── com_android_bluetooth_a2dp.cpp ├── com_android_bluetooth_avrcp.cpp ├── com_android_bluetooth_btservice_AdapterService.cpp ├── com_android_bluetooth_gatt.cpp ├── com_android_bluetooth.h ├── com_android_bluetooth_hdp.cpp ├── com_android_bluetooth_hfp.cpp ├── com_android_bluetooth_hid.cpp └── com_android_bluetooth_pan.cpp Android 4.3 Android 6.0 Bluetooth – HAL / JNI /packages/apps/Bluetooth/jni ── com_android_bluetooth_a2dp.cpp ├── com_android_bluetooth_a2dp_sink.cpp ├── com_android_bluetooth_avrcp_controller.cpp ├── com_android_bluetooth_avrcp.cpp ├── com_android_bluetooth_btservice_AdapterServi ├── com_android_bluetooth_gatt.cpp ├── com_android_bluetooth.h ├── com_android_bluetooth_hdp.cpp ├── com_android_bluetooth_hfpclient.cpp ├── com_android_bluetooth_hfp.cpp ├── com_android_bluetooth_hid.cpp ├── com_android_bluetooth_pan.cpp └── com_android_bluetooth_sdp.cpp
  • 55. ├── bluetooth.h ├── bt_av.h ├── bt_gatt_client.h ├── bt_gatt.h ├── bt_gatt_server.h ├── bt_gatt_types.h ├── bt_hf.h ├── bt_hh.h ├── bt_hl.h ├── bt_pan.h ├── bt_rc.h ├── bt_sock.h ├── bluetooth.h ├── boot_control.h ├── bt_av.h ├── bt_common_types.h ├── bt_gatt_client.h ├── bt_gatt.h ├── bt_gatt_server.h ├── bt_gatt_types.h ├── bt_hf_client.h ├── bt_hf.h ├── bt_hh.h ├── bt_hl.h ├── bt_mce.h ├── bt_pan.h ├── bt_rc.h ├── bt_sdp.h ├── bt_sock.h Android 4.3 Android 6.0 Bluetooth - HAL /hardware/libhardware/include/hardware/
  • 56. Android 4.3 Bluetooth - libbtvendor fsl/ └── wandboard ├── Android.mk └── bt_vendor.conf hardware/broadcom/libbt/conf . ├── bt_vendor_brcm.c ├── conf.c ├── hardware.c ├── upio.c └── userial_vendor.c hardware/broadcom/libbt/src hardware/broadcom/libbt/include ├── bt_vendor_brcm.h ├── upio.h ├── userial_vendor.h ├── vnd_crespo4g.txt ├── vnd_crespo.txt ├── vnd_generic.txt ├── vnd_generic_x86.txt ├── vnd_grouper.txt ├── vnd_hammerhead.txt ├── vnd_maguro.txt ├── vnd_mako.txt ├── vnd_manta.txt ├── vnd_phantasm.txt ├── vnd_stingray.txt ├── vnd_tilapia.txt ├── vnd_toro.txt ├── vnd_tuna.txt └── vnd_wingray.txt
  • 57. Bluetooth – Arquivos de Configurações wandboard.mk Host: system/bluetooth/data/ Target: system/etc/bluetooth ├── audio.conf ├── auto_pairing.conf ├── blacklist.conf ├── input.conf ├── main.conf ├── main.le.conf ├── main.nonsmartphone.conf ├── main.nonsmartphone.le.conf └── network.conf
  • 59. Obrigado! Caio Pereira – caiop@inatel.br
  • 60. Referências Bibliográficas [1] WPA Supplicant Devel - http://w1.fi/wpa_supplicant/wpa_supplicant-devel.pdf [2] Android Wi-Fi Manager and Bluetooth - http://pt.slideshare.net/pohjus/android-wifi-manager-and-bluetooth-connection [3] Android 4.1 Netd detailed analysis of a Overview and Applications http://blog.csdn.net/xiaokeweng/article/details/8130218 [4] BirdView of Wifi in Linux/Android - http://pt.slideshare.net/leohyang66/wifiswbirdviewv04-46410468?related=1 [5] Android Service Black Magic - http://pt.slideshare.net/marakana/android-services-black-magic-by-aleksandar-gargenta [6] Android Lollipop : Bluetooth LE Matures - https://newcircle.com/s/post/1697/android_lollipop_bluetooth_andevcon [7] CLAT - http://dan.drown.org/android/clat/ [8] Linux Wireless Linux Kernel Networking (4) Advanced Topics - http://www.haifux.org/lectures/206/wirelessLec.pdf [9] Linux 802.11 Solutions for Mobile Platforms - http://elinux.org/images/d/da/Ortiz-elce-2009.pdf [10] Comparison of Open Source Wireless Driver - https://en.wikipedia.org/wiki/Comparison_of_open-source_wireless_drivers [11] mac80211 Overview - https://wireless.wiki.kernel.org/_media/en/developers/documentation/mac80211.pdf [12] Android.net.wifi - http://developer.android.com/intl/pt-br/reference/android/net/wifi/package-summary.html [13] Returning BlueZ to Android - https://lwn.net/Articles/597293/ [14]Android Bluetooth Stack - https://source.android.com/devices/bluetooth.html [15] Dive Into Android Networking: Adding Ethernet Connectivity - http://pt.slideshare.net/gxben/abs-2013-dive-into-android-networking- adding-ethernet-connectivity [16] Android Kitkat Internals - http://events.linuxfoundation.org/sites/events/files/slides/ABS%202014%20-%20Kit%20Kat%20Internals.pdf [17] How to Support New WiFI Card in Android - https://community.freescale.com/docs/DOC-93603 [18] How Android Wifi State Machine Works - http://jhshi.me/2014/04/25/how-android-wifi-state-machine-works/ [19] – Android Bluetooth Stack: Bluedroid: The analysis of A2DP Source - http://blog.csdn.net/wendell_gong/article/details/29841967 [20] – Android Bluetooth Stack: Bluedroid - http://blog.csdn.net/wendell_gong/article/details/9630311 [21] – Android – Bluetooth Entry - http://blog.csdn.net/sungang860820/article/details/40344623 [22] – Android Bluetooth Stack: Bluedroid: Enable Bluetooth - http://blog.csdn.net/wendell_gong/article/details/9716619 [23] – Android Bluetooth OPP File Transfer - http://blog.csdn.net/safrans/article/details/27403287 [24] – Android Bluetooth Architecture (BlueZ) - http://blog.csdn.net/adazone/article/details/41082457 [25] – Android Bluetooth Introduction: Basic Concept and Hardware Interface - http://blog.csdn.net/adazone/article/details/41082405 [26] – Android ConnectivityManager - http://developer.android.com/intl/pt-br/reference/android/net/ConnectivityManager.html [27] – Determining and Monitoring the Connectivity Status - http://developer.android.com/intl/pt-br/training/monitoring-device- state/connectivity-monitoring.html