모바일 10

[AOSP] Framework Service와 HAL 바인드 과정 살펴보기

저번에 AOSP의 아키텍쳐를 살펴봤다. 오늘은 그 아키텍처중에 Android Framework 가장 아랫단에 있는 Service Layer가 Hal과 연결되어 있는 방식을 살펴보겠다. 시스템 서비스는 HAL과 두가지 형태로 연결되어 있는데, Wifi의 시스템적 기능을 제공하는 인터페이스인 Supplicant의 HAL 과제조사가 제작하여 하드웨어 칩의 기능을 제공하는 인터페이스인 VendorHAL이다. 이들은 각각 대응되는 Service 클래스에서 Binder 객체에 의해 바인드되어 요청과 응답을 통신하는 방식으로 연결되어 있다. 이 바인더 과정이 어떻게 되는지 살펴보겠다. 1. SystemServce – HAL Binder 연결 과정 (Vendor Hal) Vendor Hal의 바인더 과정을 살펴보기 위..

모바일 2024.11.26

[Android] AOSP architecture

오늘은 안드로이드 오픈소스 코드인 AOSP의 아키텍처 구조가 어떻게 되어있는지 정리해보겠다. 안드로이드 코드는 의외로 오픈소스이기때문에 누구나 코드를 통해 안드로이드 휴대폰을 만들수 있는데,이때문에 안드로이드 개발 초기에 이를 지원하는 디바이스 제조사들이 생겨났다.나도 그 회사 중 한 회사에 다니고 있는 것이고. 그래서 우리 회사는 안드로이드의 코드를 받아 포팅한 후,회사의 납품 고객사 특성에 맞게 디바이스를 최적화하여 판매하는데 따라서 해당 코드가 어떤 플로우로 흘러가고, 또 각 기능을 하는 코드는 어떻게 layer가 나눠져 있는지를 파악하고 있어야 한다. Android Architecture   안드로이드의 코드인 AOSP는 다음과 같이 추상적으로 Layer가 나눠져 있다. 사실 아직도 Runtime..

모바일 2024.11.22

[WLAN] Wi-Fi protocol (2) - Band Protocol

오늘은 Wi-Fi 프로토콜 중 데이터가 실리는 채널 밴드의 프로토콜에 대한 내용을 다루겠다. Wi-Fi는 데이터를 라디오파를 이용하여 전송하는데, 라디오파의 주파수를 어떻게 설정하냐에 따라 Band값이 달라진다. 2.4GHz 대역과 5GHz 대역, 6GHz 대역이 현재까지 발전되어 사용해왔고 한 밴드 채널을 여러 기기가 많이 사용하면 혼잡도때문에 속도가 느려져서 새로운 밴드를 계속 발전시키고 있다. 현재 가장 최근에 나온 대역폭은 6GHz로 주파수가 가장 높은데 주파수가 높다고 무조건 좋은 것이 아니라장단점이 있기 때문에 단점을 보완하는 기술도 함께 등장하곤 한다. 이와 관련된 내용들을 다뤄보겠다.   1. 802.11b 프로토콜도 이전에 암호화 인증 방식을 살펴본 것과 같이 시대순으로 발전 과정을 살펴..

모바일 2024.11.21

[Wi-Fi Network] Wi-Fi 의 protocol들

Wifi에는 여러가지 기능을 제공하는 프로토콜들이 존재한다. 프로토콜은 규약이라는 뜻으로,말그대로 어떤 기능, 규격 들을 이름짓는데 많이 사용되는데IEEE 802.11 이라는 이름으로 Wifi는 규격 이름이 지어진다. 오늘은 IEEE 802.11에 있는 네가지 특징적인 기능을 규격화한 프로토콜을 알아보자  1. 802.11k 첫번째 프로토콜은 802.11k 프로토콜로 무선 자원 관리와 네트워크 성능 최적화라는 역할을 수행한다. 해당 프로토콜은 디바이스의 주변 AP 정보를 제공하고 무선 통신 환경을 모니터링하면서특정 AP에 많은 디바이스가 연결되어있지는 않은지 확인한다. 즉, 특정 네트워크가 완화되어야 하는 상태는 아닌지 확인하는 역할을 한다.  2. 802.11v  v 프로토콜은 네트워크에서의 무선 장치..

모바일 2024.11.14

[Wifi Network Study] 암호화 방식 별 특징

오늘은 Wifi Network의 암호화 방식을 학습할 예정이다. Wifi Network는 비밀번호가 있는 경우와 없는 경우 두가지가 있는 것 같지만사실 발전하는 보안 방식에 의해 여러가지의 암호화 방식이 존재한다. 이 암호화 방식은 Wifi가 나온 초기부터 당시엔 신경을 써서 도입하였지만,방식별로 새롭게 계속 등장하는 공격 방법을 억제하기 위해 새로운 보안 방식이 계속 등장했다. 그래서 이 암호화 방식을 시대 별로 나열하고 각각 어떤 특징이 있으며,어떻게 발전해왔는지 확인해보도록 하겠다.   1. WEP 와이파이의 암호화 설명 순서는 등장한 시대순으로 나열했다.각 암호화의 기능과 한계를 살펴보면서 보안 성능을 어떻게 발전해왔는지에 초점을 두고 설명하겠다.가장 먼저 무선 네트워크의 첫 보안 방안으로 199..

모바일 2024.11.12

Wifi Network Authentication - 4-way Handshake process

요즘 회사 퇴근하고 블로그 쓰는데 쓰고나면 기분이 좋다. 챌린지끝나고도 쓰고 싶은데, 나 언제까지 갈 수 있을까..?  오늘은 Wifi 네트워크의 인증 절차 중 아주 중요한 요소인 4-way handshake의 과정에 대해 설명하려 한다. 지금까지 Web 개발을 공부하면서 3 ways handshake는 많이 들었다.TCP 통신 시 양 단의 소켓을 생성하는 과정이었던걸로 기억하는데..(확실히는 아직도 잘 모르겠다) Wifi에서 무선 네트워크 통신 시 누군가 패킷을 훔쳐 데이터를 확인하더라도데이터를 알아볼 수 없게 난수화하여 데이터를 보내게 된다. 이 데이터는 해석할 수 있는 key를 가지고 있어야만 복호화 함수에 적용하여 데이터를 추출해낼 수 있는데이 비밀 Key를 생성하고 주고 받는 과정이 4-Way ..

모바일 2024.11.11

Wifi Network - IEEE 802.1X Authentication process

오늘은 지난 10월에 세미나를 통해 학습했던 내용 중 WIFI WPA2/3 의 인증 과정 중 하나인 IEEE 802.1X의 패킷 분석 내용에 대해 설명하려고 한다.   802.1X Authentication Protocol   먼저 802.1X란 WIFI의 수많은 통신 프로토콜인 802.11x와 매우 유사한 이름을 가지고 있지만, 그 특성 자체는 전혀 다른 종류의 프로토콜이다. 이 프로토콜은 WPA2 이후의 암호화 방식에서 Enterprise 모드의 더 고급화된 암호화 방식을 추가하기 위해 생겨난 방식이다. web에서 TLS를 활용하여 HTTPS로 통신 패킷을 보안하듯이 이 보안 방식 또한 TLS 터널링이라는 과정을 포함하여 패킷을 보안하여, 이후 암호화 과정에서 통신을 수행할 때 사용하는 Key를 안전..

모바일 2024.11.10

WiFi Enable process 분석 - Wifi Scanning (3)

블챌 3일차! 오늘은 어제 분석해보았던 WifiScan 요청의 시작의 흐름을 이어서 Wifi 탐색 요청을 어떻게 수행하는지그리고 주변 Wifi AP를 탐색한 결과를 Android Framework가 어떻게 받아오는지를 알아보자.     WifiManager.startScan() - Scan 요청의 시작  지난 포스팅에서 마지막으로 WifiManager의 startScan()으로 Wifi의 스캔 요청을 수행한다고 설명했다. 그리고 Android Framework에서는 사용자 측면에서 기기의 설정을 제어하기 위해 Manager를 사용하는데이는 권한문제때문에 Service 클래스와 격리되어있다. 그래서 Manager는 사용자 측면에서 요청을 대리로 수행하고, 권한이 필요한 내부 동작은 Manager가 Serv..

모바일 2024.11.09

WiFi Enable process 분석 - Wifi Scanning (2)

오블완 챌린지 2일차! 언제까지 유지되나 함 보자 싶지만,오늘까지는 일단써보자 (대충 내일 일기 쓸 궁리중) 오늘은 어제 리뷰한 State Machine을 사용해서 Wifi가 연결하기 위해 주변 AP를 Scanning하는 코드를 분석하겠다. 하면서 항상 느끼지만 나처럼 이런 내용을 분석해주는 사람이 단 한명도 없어서 골머리를 앓고 있는데누가 나대신 분석해서 이렇게 친절히 정리좀 해줬으면 좋겠음.    Wifi Scanning   Wifi Scanning을 하기 위해 이전 Wifi 버튼을 ON해서 따라오던 흐름으로 돌아가보자. WIFI_TOGGLED 명령어를 전달하여 Controller의 StateMachine에 전달되는데,이때 WifiController의 State가 당연히 아직 Wifi가 꺼져있었기 때..

모바일 2024.11.08

WiFi Enable process 분석 - StateMachine이란 ? (1)

나는 디바이스 제조 기업에서 무선통신 기능을 구현하는 Wireless team Engineer로 근무중이다.티스토리 블챌이 시작되서 참여하는김에 안드로이드 프레임워크의 Wifi 기능 코드를 분석한 내용을 리뷰하겠다.코드 분석한 내용은 'WiFi를 사용자가 켰을때 어떤 동작이 수행되는가'로 초점하였다.사용자가 Wifi를 켜는 순간 실행되는 코드  Wifi의 toggle이 onClick 이벤트를 발생시켜 STATE_ENABLE 상태로 전환된다. 그리고 Android의 wifiManager를 통해 setWifiEnabled가 실행된다.   WifiManager는 Binder를 통해 곧장 Framework layer의 WifiServiceImpl과 연결되어 있다. 이 연결 과정은 총 두가지인데, Manager ..

모바일 2024.11.07