부자재 및 환경 준비가 완료되었다. JLR SDD(이하 SDD)는 Jaguar / Land Rover를 위한 매우 강력한 도구 이기 때문에 그만큼 큰 리스크를 갖고 있다는 점을 재차 강조하고자 한다.
이 포스트에서 언급할 코딩은 “소프트웨어 프로그래밍”을 하지 않고 “비활성화” 된 기능을 활성화한다거나 “제한” 된 기능을 수정하는데 목표가 있다. 소프트웨어 프로그래밍이 아니기 때문에 이 단계에서 TOPIx 계정은 불필요하다. (매우 강조) 단, 해적판으로 인증된 SDD는 재설치 전까지 TOPIx에 접근할 수 없는 점 주의해야 한다.
CCF 의 이해
앞으로 자주 언급하게 될 CCF는 Car Configuration File의 약자로 자동차 구성/설정을 담고 있는 XML 형태의 파일을 의미한다. 내 자동차의 차대번호(VIN)를 입력하면 모듈의 구성 및 사양을 SDD Server로부터 받아오게 되는데, 전체 기능 구성은 SDD에 저장되어 있는 exml과 비교하게 되며, 이 중 일부 항목만 수정 기능을 활성화하게 된다. 모든 작업 전 CCF를 반드시 백업해야 한다. CCF를 알고 있다면 언제든지 내 차 구성대로 돌아갈 수 있기 때문이다.
만약 다른 차종의 차대번호를 입력하게 된다면 그 차의 모듈 정보를 알아낼 수 있다.
- 예를 들어 ACCS(Active Cruise Control System)이 탑재된 Jaguar XE와 그렇지 않은 Jaguar XE 가 있다 가정해 보자.
- 두 차량의 CCF는 대부분 동일할 것이나 ACCS 관련된 항목만 다를 것이다.
- ACCS 센서와 부품을 장착했을 경우
- ACCS가 이미 장착된 차량의 CCF와 ACCS와 관련된 항목들을 수정한다면
- 모듈 프로그래밍과 더불어 ACCS 기능일 활성화 할 수 있게 된다.
CCF가 차량의 핵심 정보가 담겨 있다는 걸 알게 되었다. 이 파일만 수정하면 된다.
CCF 는 어디에 있지?
JLR SDD 설치 폴더로 이동하면 하위에 Xml 폴더가 있다. 확장자가 exml 인 파일들을 찾을 수 있다. 언더바(_)로 구성된 파일명을 나눠 2개만 유심히 살펴보자.
- CCF_DATA_L320_201200.exml
- L320 : 차량 코드명
- 201200 : 참조 연식
차량 코드명은 New Jaguar XF = X250, New Jaguar XJ = X351 로 쉽게 알 수 있는 반면, “참조 연식”은 혼동 스러울 수도 있다. 내 차가 2018년식 이라고 하더라도 기본 연식은 2016년 데이터를 기반으로 할 수도 있다. 이는 SDD 에서 어렵지 않게 확인할 수 있다.
exml 파일은 SDD 에서 읽을 수 있도록 인코딩 된 파일로 내용을 알아볼 수 없지만, 해당 차량과 연식의 전체 기능을 갖고 있는 슈퍼셋(Super Set)이다. 우린 이걸 수정해야 한다.
내 차의 참조 연식은?
자동차와 노트북에 Mongoose Pro를 연결하고 SDD 를 실행하자. SDD 는 기본적인 차량 정보를 불러올 것이며, 만약 as-built가 없다면 SDD Server 로 부터 다운 받아 올 것이다. 필자는 2017년 막차 Jaguar XJ 를 소유하고 있다. 하지만 X351 프로필은 2016년 다음이 2018년이다. SDD 를 실행 후 Information 버튼을 누르면 VIN_MODELYEAR에서 정확한 연식을 알 수 있다. 하지만, 하단 CM_YEAR_BREAKPOINT를 보면 2016년식을 기반으로 한 모델임을 확인할 수 있다. 말 그대로 Break Point 다.
이 정보에서 내 차는 2016년 CCF 를 참고하고 있음을 확인할 수 있다. 이는 모든 Jaguar / Land Rover 에 해당되는 정확한 방식이다.
어떤 기능들을 수정할 수 있을까?
Service Functions 탭을 누르면 동작 가능한 많은 기능들이 보인다. 모듈의 프로그래밍이 이곳에서 이뤄지는데 나머지 기능들은 매우 위험한 만큼 함부로 건드리지 말자. 가장 아랫 부분으로 가면 Special Functions 가 보이고, Run 을 클릭하자.
내 차에서 허용하는 수정 가능한 항목들과 그렇지 않은 것들을 모두 불러온다.
우측 하단의 “View All Parameters”를 선택하면 전체 기능 셋(Super Set) 목록이 나오며 좀더 상세한 정보를 얻을 수 있다. 물론, 이들을 수정한다고 없던 기능이 짜잔 하고 살아나는 것은 아니다.
“읽기전용” 속성을 없애자
값들을 수정할 수 없는 이유는 모든 매개변수의 속성 값이 “읽기 전용(Read-Only)”로 지정되어 있기 때문이다. 이를 “읽고 쓰기(Read-Writw)”상태로 바꾸면 되는데, 무조건 바꾸면 되는게 아니라, 내 차종에 맞도록 풀어주는게 중요하다.
앞서 Information을 통해 내 자동차의 연식을 확인했다. 이 화면의 하단을 보면 CCF XML 경로가 있다. X351_2016.exml은 SDD 에 맞도록 인코딩된 슈퍼셋이라면, CCFSUMVEHPRO_FILE_PATH 는 내 차종에 맞는 슈퍼셋이며, Plain/Text 의 XML 파일이다. 이 파일 경로로 이동하자.
이 XML 파일을 exml 이 있던 Xml 폴더로 복사하고, 파일명을 바꾸자. 필자의 차량이 참조하는 파일명은 CCF_DATA_X351_2016.exml 이면, 위의 XML 파일을 CCF_DATA_X351_2016.xml 로 바꾸면 된다. 확장자는 exml 이 아닌 xml 임을 주의하고, 기존 exml 은 특정 폴더에 백업 후 삭제하거나 이름을 변경하면 된다.
노트패드로 XML 파일을 열자. exml 파일과 달리 이 xml 파일은 내용을 알아볼 수 있다. edit=”false” 를 모두 “edit=”true” 로 바꾸자. 아래와 같이 입력하고 “Replace All” 버튼을 누르면 일괄 변경된다.
그리고 저장하면 끝. 수정 불가능한 읽기 전용 속성이 사라졌다.
수정이 가능할까?
앞선 절차를 밟아 Special Functions 의 Run 을 클릭하자. Proposed value를 수정할 수 있도록 변했다. 이제 수정이 가능해졌다.
UX가 달라진 것이 있다면 “View all parameters”가 아래로 옮겨 간 것. 선택하면 모~든~ 항목을 수정할 수 있게 되었다.
본인이 원하는 항목들을 수정하고, 초록색 “v(Continue)” 를 누르면 해당 내용이 내 차에 반영 된다.
이것만 수정하면 되나?
경우에 따라, 모듈 프로그래밍(=Software Download)이 필요한 경우도 있다. Display되는 항목은 바로 반영되어 확인이 가능하지만, 모듈과 콤비네이션으로 동작하는 경우 해당 모듈도 리프로그래밍 해 줄 필요가 있다. 즉, 내가 특정 기능을 수정하고 싶다면 CCF 를 먼저 수정해 반영하고 해당 모듈을 선택하면 그 환경에 맞는 파일을 찾아 다운로드 받게 된다. 차종마다 다르지만, 많은 오너들이 원하는 항목들이 꽤 보인다.
1. 속도 제한을 풀 수 있다. 기본이 250KPH 이지만 300KPH 이상으로 수정할 수 있다.
2. Apple CarPlay 나 Google Android Auto 를 활성화 할 수 있다. XJ 의 경우 mySPIN을 사용하면 InControl Apps 를 사용할 수 있게 된다. 단, MID_LINE 이상의 차량이어야 한다. (HDMI 또는 SIM 등이 있는 차량)
3. 텔레메트릭스 모듈이 있지만, 국내 실정법상 활성화가 안된경우 이를 활성화 할 수 있다.
4. 인터넷을 활성화 할 수 있다. 이 옵션은 NGI 등의 다른 옵션과 함께 수정해야 함
5. ACCS (Adaptive Cruise Control System) 을 활성화 할 수 있다. (아래 이미지는 계기판에 ACCS 표시 여부이며, 기능 활성화는 Speed Control 에 있음)
6. TPS 를 잘못 구입 했을 경우 이를 변경할 수 있다.
7. LDW(Lane Departure Warning)을 활성화 할 수 있다 (그러나, IMPC-A 가 없기 때문에 활성화 불가 = 모듈 달고 하네스 교체하고 앞유리 교체해야함)
8. Rain Sensor 감도 조절이 가능하다
9. 연료 측정 단위를 L/100Km 에서 Km/L 로 변경할 수 있다.
이외에도 많은 기능들을 제어할 수 있는데, 고스트 도어(=Soft Closing)가 고정났을 경우 이를 비 활성화 할 수 있으며, Global Open/Close 에 선룹을 맴버에서 뺄 것인가. 또는 깜빡이 3회 점멸을 켜거나 끌 수 있다. 항목이 백여가지 이고, 명칭이 우리나라 기준으로 직관적이지 않아 기능을 찾는데 적잖은 시간이 소요되는건 단점.
#4 는 모듈 프로그래밍을 다뤄보고자 한다. (이 내용은 너무 위험해서 포스트를 공개할지 여부를 고민해 보겠습니다)