- Published on
그랜저 GN7 앱에 원격주차 버튼이 없는 이유
- Authors

- Name
- Indo Yoon

스마트키로는 차가 앞으로 가고 뒤로 간다. 마이현대에는 그 버튼이 없다. 앱을 열어 보면, 현대가 차종 이름으로 버튼을 숨겨 둔 구조는 아니다. 그렇다고 버튼이 없는 화면이 곧 "차의 디지털키 제어기가 기능 1536에 대답하지 않았다"는 뜻도 아니다.
이 글은 2026년 11월, 마이현대 안드로이드 앱(com.hyundai.oneapp.kr)을 정적 분석하고 2026 그랜저(GN7) 사용설명서 두 페이지를 원문으로 읽은 결과다. 차를 움직이는 절차는 쓰지 않는다.
결론
GN7의 원격 전/후진은 사용설명서에서 스마트키 버튼 조작이다. 그 절차에 디지털키는 나오지 않는다.
폰 쪽 원격주차 버튼은 따로 있다. 홈의 디지털키 2 카드가 다른 제어 버튼을 하나 이상 그린 뒤에, getRspaSupportedFlow()가 참일 때만 붙는다. 그 값은 처음에 거짓이다. 참으로 바뀌는 실시간 경로는 하나다. 차가 RKE 기능 번호 1536(0x0600)의 상태 패킷을 보내는 것이다. 상태 코드는 보지 않는다. 패킷이 오기만 하면 참이다. 같은 키로 다시 붙을 때는 지난 세션의 캐시가 그 값을 되살릴 수도 있다.
일반 연결에서는 앱이 1536을 지정해서 묻지 않는다. 그래서 버튼이 없다는 관찰만으로 제어기가 1536 질의에 침묵했다고 말할 수 없다. 앱이 그 질의를 보내지 않았다.
버튼을 강제로 켜도 차종 지원이 생기지 않는다. 앱에 원격주차 코드가 있는 것은 전 차종 공용 SDK이기 때문이다. 차가 1536 상태를 내주고, 제어 주체를 폰으로 잡으며, 폰이 만들 패킷에 넣을 값을 먼저 주지 않으면 차는 폰 명령을 받지 않는다.
매뉴얼은 스마트키만 적는다
2026 그랜저(GN7) 웹 도움말 두 페이지를 직접 열었다.
원격 전/후진 소개 페이지는 이렇게 시작한다.
원격 전/후진 기능은 스마트 키를 이용하여 차량 밖에서 원격으로 작동할 수 있습니다.
출처: 2026 그랜저(GN7) 원격 스마트 주차 보조
작동 절차 페이지의 준비와 이동은 전부 스마트키다. 도어 잠금, 원격 시동, 전진, 후진. "스마트 키를 휴대하고 차에서 내린 후"가 탑승 조건이다. 이동 중에도 스마트키의 전진 또는 후진 버튼을 누르고 있어야 하고, 놓으면 멈춘다. 작동 거리는 약 4 m, 한 번에 최대 7 m, 총 14 m를 넘으면 해제다. 이 페이지에서 디지털키는 한 번도 나오지 않는다.
출처: 2026 그랜저(GN7) 원격 스마트 주차 보조 작동
검색 결과에 보이는 "스마트키나 디지털키로 차 밖에서 전후진" 같은 문장은 이 두 페이지에 없다. 같은 주제 번호라도 차종 폴더가 다르면 내용이 다르다. GN7 2026 폴더의 이 두 페이지는 스마트키 절차다.
버튼은 차종 표로 가리지 않는다
마이현대 홈의 디지털키 2 제어 카드(HomeVehicleDigitalKey2ControlButtonsCard)는 이렇게 동작한다.
- 잠금, 창문, 시동처럼 서버 차량정보와 디지털키 권한으로 만든 버튼 목록을 가져온다.
- 그중 조건부 버튼은, 차가 그 RKE 기능을 상태 목록에 올려 준 뒤에만 남긴다.
- 남은 버튼이 0개면 카드를 그리지 않고 돌아간다. 원격주차 버튼도 이때 같이 사라진다.
- 버튼이 하나라도 있으면,
DigitalKey2ViewModel의 원격주차 지원 흐름이 참일 때만 원격주차 버튼(ic_filled_rspa, 문구ccs_ctn_rspa)을 붙인다.
차종 코드, VIN, 서버의 "이 차는 원격주차 가능" 플래그는 이 조건에 없다. isVehicleOemSupported(vin)이라는 함수는 앱에 있지만, 전 DEX에서 호출이 0건이다. 개발용 목업이 그 함수의 가짜 구현에서 항상 참을 돌려주는 코드도 있으나, 프로덕션 경로는 그 목업을 쓰지 않는다.
지원 흐름의 초기값은 거짓이다. 참으로 쓰는 곳은 두 갈래다.
| 경로 | 언제 | 무엇을 쓰나 |
|---|---|---|
| 실시간 | RKE 기능 상태 패킷의 functionId가 1536 | 상태 값과 관계없이 참 |
| 캐시 | 같은 키 ID로 다시 연결되며 apply가 돌 때 | 지난번에 저장해 둔 불리언 |
| 끊김 | RKE clear | 거짓으로 리셋하고, 그 값을 키 캐시에 남김 |
1536이 아닌 기능 상태는 잠금·창문 같은 일반 버튼의 상태 맵으로 가고, 원격주차 플래그는 건드리지 않는다.
그래서 다른 디지털키 버튼은 보이는데 원격주차만 없으면, 그 카드는 그려진 것이고 플래그만 거짓이다. 이번 연결에서 1536 상태 패킷이 오지 않았고, 캐시도 참이 아니었다.
앱은 평소에 1536을 지정해서 묻지 않는다
1536만 집어 상태 요청을 보내는 코드는 있다. RemoteService.connect다. 조건이 셋이다.
- 연결 종류가 원격주차일 것
- 같은 키로 이미 연결 중일 것
- 원격주차 지원 플래그가 이미 참일 것
버튼이 없는 상태, 즉 플래그가 거짓인 상태에서는 이 분기에 들어가지 않는다. 1536 전용 질의는 "이미 된다고 판정된 뒤 원격주차로 다시 붙을 때"의 재확인이다.
홈에서 디지털키로 붙는 일반 경로는 다르다. 블루투수 권한이 있고 RKE 등록이 성공하면, 연결 약 1.5초 뒤에 상태 요청을 보낸다. 그때 기능 번호 배열은 비어 있다. 프로덕션 구현은 그 배열을 그대로 Google Play Services 디지털키 API에 넘긴다. 빈 배열이 "모든 기능을 달라"인지는 이 APK 안에 없다. Play Services 쪽에 있다. 블루투스 권한이 없거나 RKE 등록이 실패하면 상태 요청 자체가 나가지 않는다.
정리하면 이렇다.
| 관찰 | 코드가 말하는 것 | 코드가 말하지 않는 것 |
|---|---|---|
| 원격주차 버튼만 없음 | 이번 세션에 1536 상태 패킷이 없었고, 캐시도 참이 아님 | 제어기가 1536 질의에 무응답했다 |
| 카드 자체가 없음 | 제어 버튼 목록이 비었거나 그 화면이 아님 | 1536과 무관할 수 있음 |
| 버튼이 있음 | 1536 상태 패킷이 왔거나, 캐시가 참이었음 | 방금 제어기가 1536에 응답했다 |
앱에 원격주차 코드가 있는 것은 지원 증거가 아니다
com.hmg.ccs.sdk.dk2.rspa에는 시작, 정지, 전후진, 평행 출차, 엔진 상태, 제어 주체(폰 / 스마트키)가 들어 있다. 이 SDK는 현대 전 차종 공용이다. 바이너리에 함수가 있다는 것은 GN7이 그 함수를 구현했다는 뜻이 아니다. 버튼이 없는 이유가 여기와 맞는다. 앱은 차종 표로 기능을 빼지 않고, 차가 1536 상태를 보내는지로 버튼을 연다. GN7이 그 상태를 보내지 않으면 버튼은 나오지 않는다.
폰이 전후진 패킷을 만들려면 차가 먼저 값을 줘야 한다. 앱은 그 값이 없으면 패킷 생성을 포기하고 오류로 끝낸다. 스마트키로 이미 들어간 세션은 제어 주체가 스마트키로 남아, 앱이 폰 개입을 거절한다. 주파수를 흉내 내는 문제도 그 전에 있다. 사용설명서의 작동기는 스마트키 버튼이고, 앱의 작동기는 디지털키 기능 1536이다. 폰은 스마트키 버튼을 대신 누를 송신기가 아니다.
안드로이드 앱의 이 경로는 Google Play Services 디지털키 API를 탄다. 같은 클래스 트리가 아이폰 앱에 있다고 볼 근거는 이 APK에 없다.
소프트웨어로 만들 수 없는 경계
루팅해서 지원 플래그를 참으로 덮으면 버튼은 그릴 수 있다. 그건 UI다. 차는 그대로다. 차가 1536을 상태로 내주지 않으면 앱은 원래 버튼을 열지 않고, 열어 둔 버튼으로 보낸 명령도 차가 그 기능의 제어 주체를 폰으로 잡지 않으면 성립하지 않는다. 사용설명서는 그 조작을 스마트키에만 적는다.
남은 변경점은 현대가 GN7의 디지털키 제어기와 사용설명서에 폰 원격 전/후진을 넣는 것이다. 앱 패치로 그 한 줄을 만들 수 없다.
이 글이 측정하지 않은 것
실차 BLE 로그는 보지 않았다. 빈 기능 번호 배열을 Play Services가 어떻게 해석하는지도 이 APK 밖이다. 블루링크 스토어의 원격주차 2 상품 페이지는 이 환경에서 열리지 않아, 판매 차종 목록은 이 글의 근거로 쓰지 않았다. 근거는 앱 바이트코드와 위 두 매뉴얼 페이지다.
영어 버전: Why the Grandeur GN7 App Has No Remote Parking Button