.아이폰/아이팟터치 펌웨어 3.0 오프라인맵 사용 실험기.
.아이폰/아이팟터치Story. :
2009/07/10 11:02
펌웨어 3.0에 포함된 기본 구글맵 지도어플은 내부적인 기능 추가외에도 몇가지 사항이 달라졌습니다.
오프라인맵이 사용하는 방식은 원래 구글맵이 사용하는 캐쉬 디렉토리의 지도파일을 심볼릭링크로 만들고, GMDL 지도파일을 연결해주어 사용하는 방식입니다.
심볼릭 링크로 만들어주면, GMDL지도파일을 구글맵 캐쉬 디렉토리에 생성하지 않아도 되고, 구글맵이 지도파일을 삭제하더라도 심볼릭 링크만 삭제되고 GMDL지도파일은 다른 곳에 있기 때문에 필요할때 링크만 다시 만들어서 사용하면 간편합니다. 오프라인맵 어플이 하는 일은 이 심볼릭 링크를 캐쉬 디렉토리에 만들어 줍니다.
** 심볼릭링크는 실제 파일은 아니지만, 실제파일을 연결시켜주어, 심볼릭링크를 사용하더라도, 원래 파일을 사용할 수 있게 해줍니다. (윈도의 바로가기 버튼이라고 생각하시면 이해가 쉬울듯 하네요.)
지도 데이타 파일명 : MapTiles.sqlitedb
지도 데이타 설정파일 : com.apple.Maps.plist
구글맵 지도 캐쉬 디렉토리 : /private/var/mobile/Library/Caches/MapTiles/
오프라인맵의 GMDL지도 디렉토리 : /private/var/mobile/Media/Maps/Seoul/
지도 데이타 설정파일 : com.apple.Maps.plist
구글맵 지도 캐쉬 디렉토리 : /private/var/mobile/Library/Caches/MapTiles/
오프라인맵의 GMDL지도 디렉토리 : /private/var/mobile/Media/Maps/Seoul/
그렇지만, 펌웨어 3.0의 구글맵 어플은 이제 더 이상 심볼릭링크로는 작동되지 않도록 수정된거 같습니다.
| 1. 심볼릭링크가 작동되지 않으면 무슨 일이 있는가? |
심볼릭링크가 구글 캐쉬 디렉토리에서 사용할 수 없다면, 사용자는 GMDL지도파일을 구글 캐쉬 디렉토리에 업로드해야합니다.
문제는, 구글 캐쉬 디렉토리의 지도파일은 무선랜이 되는 상태에서는 특정 규칙에 따라 매번 지워지게 되어 있습니다. GMDL지도파일을 캐쉬 디렉토리에 올려도 온라인/오프라인을 반복해서 사용하다보면, 어느새 데이타는 날아가게 되고, 사용자는 GMDL파일을 다시 캐쉬 디렉토리로 업로드해야합니다.
서울경기지역 GMDL지도파일이 약 570메가인데, 1세대 아이팟터치 내부에서 복사를 실행해도 약 6분이 소요되었습니다. 2세대는 약간 더 빠르겠지만, 오프라인에서 지도를 사용하는 순간은 매우 급하게 찾아보아야할때가 많은데, 캐쉬 디렉토리로 복사를 실행하고 6분씩 멍하니 있는 것은 매우 활용성이 떨어지는 일입니다.
그나마, 지도파일이 삭제되는 것을 방지하기 위해서는 구글맵 어플은 오프라인상태에서만 사용하는 것입니다. 구글맵 어플을 온라인에서 사용하지 않으면 지도파일은 그대로 보존됩니다.
| 2. GMDL 지도파일은 계속 사용 가능 한가? |
GDML지도파일에 문제가 있는지를 테스트하기위해, GMDL지도파일을 구글맵이 사용하는 캐쉬 디렉토리에 직접 업로드하였습니다. 오프라인 상태에서 구글맵을 실행해보니, 매우 잘 보입니다. 그러나, GMDL지도파일을 캐쉬 디렉토리가 아닌, 다른 곳에 놓고 심볼릭 링크를 만들어서 실행하면 지도가 전혀 보이지 않습니다. 이것은 GMDL지도 데이타는 사용가능하지만, 심볼릭링크로는 작동이 안되고 GMDL지도데이타가 구글 캐쉬 디렉토리에 위치해야만 한다는 것입니다.
| 3. 심볼릭링크 대신 하드링크로 사용할 수 있는가? |
심볼릭 링크와 비슷한 방식이지만, 링크를 만들때 하드 링크로 만들면 해결할 수 있지 않을까란 의견을 보고 하드링크로 시도해 보았습니다만, 역시나 심볼릭 링크와 마찬가지로 하드링크도 작동하지 않았습니다.
하드링크를 제안한 분은 작동이 된다고 하는데, 저는 안됩니다. ㅡ.,ㅡ
| 4. 펌웨어 2.x 에 있는 구글맵 어플을 3.0에서 사용하면 어떨까? |
3.0의 구글맵 어플이 지도파일이 심볼릭링크인지를 확인하고 심볼릭링크이면 작동하지 않도록 만들었다면, 심볼릭링크와 전혀 문제가 없는 펌웨어 2.x의 구글맵어플을 3.0으로 가져와서 사용하면 어떨까하는 아이디어가 떠올랐습니다.
다행히, 저는 3.0이지만, 아내는 2.2.1펌웨어를 그대로 사용하고 있어서, 아내의 아이팟터치에서 2.2.1의 구글맵 어플을 다운로드받아 제 아이팟터치 3.0에 업로드해주었습니다.
3.0에서 2.2.1의 구글맵 어플을 실행해보니, 첫화면이 뜨자마자 홈화면으로 튕겨나갑니다.
혹시나 파일 권한 문제인가 싶어서, 권한조정도 해보았으나 역시나 같은 증상입니다.
이번에는 원래의 3.0 구글맵 어플을 다시 설치해주고, 실행화일만 2.2.1것으로 바꿔치기를 했습니다. 역시나 튕겨나갑니다.
| 5. OfflineMaps 3.0 Preview는? |
오프라인맵 3.0 프리뷰 버젼이 등장해있습니다. 직접 테스트해보진 않았지만, 게시판에 글들을 보니, 오프라인맵 개발자도 심볼릭링크 문제는 해결하지 못했습니다. 새로운 오프라인맵 3.0 프리뷰에서는 GMDL지도파일을 구글 캐쉬 디렉토리에 복사해주는 기능을 넣은 듯합니다. 복사하는 행위자체는 이 어플을 통한다면 간편해지지만, 제 경우 6분이나 기다려야합니다. 근본적인 문제가 해결되지 못했고, 개발자도 오프라인에서만 구글맵을 사용할 것을 권장하고 있습니다. (온라인 상태가 되면 지도파일이 지워지기때문)
OfflineMaps 3.0 Preview 원문 내용보기
| 6. 지도파일이 삭제 안되도록 할수 없는가? |
오프라인맵 개발자 사이트의 댓글을 보다보니 최근에는 지도파일을 삭제 방지하는 방법이 등장했습니다.
GMM 이라는 시스템 라이브러리가 구글맵 지도데이타 파일을 핸들링하게 되는데, 이 라이브러리를 수정해서 지도데이타가 삭제되지 않도록 하는 방법입니다.
GMM의 위치 : /System/Library/PrivateFrameworks/GMM.framework/GMM
1. GMM 원본파일 백업 (혹시 모를 사태를 방지)
2. GMM 원본파일 PC로 다운로드
3. Hex 에디터를 사용해서 GMM의 offset 2E48에 위치한 71 50 EF E6 을 00 50 A0 E3 로 변경후 저장
4. 수정된 GMM을 다시 아이폰/아이팟터치로 업로드
2. GMM 원본파일 PC로 다운로드
3. Hex 에디터를 사용해서 GMM의 offset 2E48에 위치한 71 50 EF E6 을 00 50 A0 E3 로 변경후 저장
4. 수정된 GMM을 다시 아이폰/아이팟터치로 업로드
** Hex 에디터 무료버젼 다운로드
지도파일 삭제 방지 원문 내용보기
그러나, 제가 테스트해보니, GMDL지도 데이타 파일이 여전히 삭제되는 문제가 발생합니다.
해결되었다는 분도 댓글에 보이던데, 무엇이 잘못된건지 아직 잘 모르겠고 난감합니다.
| 결론 |
GMDL지도 데이타가 자꾸 지워지기 때문에 심볼릭링크를 사용하는 방법이 펌웨어 2.x에서는 유용하게 사용되었습니다.
하지만, 구글맵을 오프라인에서 사용하는 기존의 심볼릭링크 방식은 더이상 3.0에서 불가능하게 되었고, 결국 지도 데이타가 구글 캐쉬 디렉토리에 존재해야합니다. 구글 캐쉬의 지도파일은 매번 삭제되는 경우가 많은데, 6번의 삭제 방지 방법이 통한다면 일단 문제는 어느 정도 해결될 듯합니다.
그렇지 않다면, 구글맵 어플은 오프라인일때만 사용하거나, 매번 필요할때마다 GMDL지도 파일을 구글 캐쉬 디렉토리로 복사해줘야하는 불편함을 겪을수밖에 없습니다.
근본적인 문제가 해결될 수 있도록 계속 연구 좀 해보겠습니다. ㅡ.,ㅡ
'.아이폰/아이팟터치Story.' 카테고리의 다른 글
| .터칭 아이폰 SDK 3.0(Touching the iPhone SDK 3.0) 책이 도착하였습니다. (12) | 2009/09/03 |
|---|---|
| .아이폰? 그냥 아몰레드나 사... (34) | 2009/08/25 |
| .SK텔레콤의 애플 아이폰 개통 소식 vs 루머. (11) | 2009/08/11 |
| .아이폰/아이팟터치 펌웨어 3.0 오프라인맵 사용 실험기. (25) | 2009/07/10 |
| .애플 AppStore 오픈 1주년 기념, 그들은 이 모든걸 알았을까?. (14) | 2009/07/09 |
| .Latte's 아내 :: 아이팟터치 활용기 인터뷰. (20) | 2009/07/06 |
| .아이폰 OS 3.0에서 실행되는 Cydia 어플 목록. (29) | 2009/06/23 |
트랙백 주소 :: http://latte4u.net/trackback/621
-
Subject: 아이폰/아이팟터치 인터넷 연결없이 지도를 보자 :: MapsEnhancer
Tracked from EB's Blog 2009/08/05 09:08 삭제아이폰/아이팟터치의 지도는 구글의 맵데이터를 이용해서 인터넷연결이 된 상태에서만 사용이 가능했는데요. 이제 MapsEnhancer 라는 [Cydia 무료어플] 로도 간단하게 온라인에서 열어봤던 맵을 오프라인으로 보실 수 있습니다. 작동원리는 온라인에서 열어봤던 맵의 캐쉬정보를 해당 어플리케이션에서 지우지 못하도록 설정하므로써 온라인상태로 다른 지역을 맵을 보려고 시도할때 맵데이터를 갱신하지 못하도록 설정하므로써 이전에 캐쉬로 저장된 맵을 두고두고 오..
-
Subject: 아이폰/아이팟터치 OS 3.0 지원 오프라인 지도 :: OfflineMaps
Tracked from EB's Blog 2009/08/05 09:08 삭제지난번 MapsEnhancer 에 대한 내용 포스팅 후 휴가용 맵으로 제주도 지도를 다운받으려고 구글링을 하던중 OfflineMaps의 OS 3.0 지원 프리뷰 버젼이 진작에 나와있던걸 발견했습니다. Cydia에 올라와있지 않은 관계로 해당 파일을 다운로드 받아 deb 파일을 직접 터미널로 설치를 해야합니다. 물론 Jailbreak 된 아이폰/아이팟 터치가 필요하겠죠? :) 설치해보니 기존의 심볼릭링크가 지원 안되는 관계로 맵캐쉬를 파일채 지도 폴더..




댓글을 달아 주세요
아아, latte4u님이 많은 연구와 실험을 하셨는데 결국은 당장은 방법이 없다는 말씀이시군요...3.0 으로 펌업하고 난 이후로 가장 목 마른 어플 중에 하나입니다. 열심히 기다려야겠군요 ^^
일단은 지도파일 복사하시고, 오프라인일때만 구글맵을 쓰시는 방법이 최선인듯 싶어요..
다른 좋은 방법을 찾으시면 알려주세요
전 외국에 온지 얼마 안 되서 길 잃어버렸을 때 정말 유용했던 어플인데
얼른 새 버젼이 나왔으면 좋겠습니다.
새버젼은 링크가 아니라, 복사하는 방식이라 한참 기다리셔야하는 문제가 좀 있습니다.
아니면, 오프라인에서만 사용하시면 지도데이타가 그대로 유지되니..... 그렇게라도
오프라인일때만 보는 방법은 어떻게 하는건가요?
기존에 사용하던 경로에 복사해 놓고 링크 걸면 오프라인맵 어플자체가 튕기기만 하는군요
구글맵어플 쪽에 파일을 직접 바꿔놓는 것인지요
경로를 알려주시면 감사하겠습니다.
개선 되기 전까지는 오프라인일 때만 사용하는게 좋겠군요
여기에 직접 넣으시면 됩니다. 오프라인맵 어플은 사용하지 않습니다.
구글맵 지도 캐쉬 디렉토리 : /private/var/mobile/Library/Caches/MapTiles/
역시나... 3.0으로 업그레이드 하고 가장 아쉬운 부분입니다.
사이디에서도 3.0 버전을 위해 짧게 댓글을 달았었는데...
개발자도 이래저래 열심히 준비하고 있는듯 하군요.
여하튼~ 빨리 3.0에서도 오프맵을 사용할 수 있었으면... 합니다.
구글맵 2배 까지 다운해놨는데...@>@
아직은 딱히 해결책이 없는거 같습니다.
매번 필요할때마다 지도데이타를 캐쉬에 복사해서 쓰는 방벙외에는.. ㅡ.,ㅡ
..^^ 연속 3개의 댓글...@.@
위에 헥사 에디터로 지워지지 않게 하는 방법으로 해보니~
캐쉬 파일이 지워지지는 않더군요.
그냥 그냥~ 사용할 수 있겠는데~
용량 때문에 일본의 수도권만 2배 확대 까지 다운 받았는데...
이렇게 사용하면 지도를 바꿀 수 없으니...
더 넓은 지역의 지도를 만들어야 하는지 고민이군요.
암튼 오프라인 맵의 개발자가... 더 수고해서 좋은 어플이 나왔으면 좋겠군요.
온라인으로 연결하셔도 지도데이타가 안지워지는지 확인 부탁드립니다.
제 경우에는 온라인으로 연결해서 여기저기 돌아다니면 삭제되고 다시 만들어지더라구요. 특히 오프라인지도데이타에 없는 지역을 온라인에서 보거나, 그와는 상관없이 오프라인지도데이타에 있는 지역을 보는데도 지워지더라구요.
아 갑갑....
혹시 하드링크도 한번 테스트 해주세요. 하드링크를 제안한 분은 본인은 된다는데, 그것도 해봤는데, 저는 오프라인에서 지도가 안뜨더라구요. (심볼릭링크와 같은 증상)
온라인으로 연결해도 캐쉬 파일은 지워지지 않더군요.
위 헥사 에디터로~!
제가 근데... 하드링크를 어떻게 하는지 몰라서요
관련된 게시물 있으면 링크라도 걸어 주시면~
보고 따라해볼게요..^^
이상하군요. 저는 헥사 에디팅을 해도 온라인 연결되면 어느순간 지워지고 새로운 파일로 바뀌어 있던데... ㅡ.,ㅡ
아직 3.0으로 업글해선 안 되겠네요 +_+
하하.. 넘 걱정마시고 오세요...
차츰 되는 것이 더 많아 질테니까요.
음...latte님의 설명을 들으니까 이해가 금방 되는군요...^^
시간이 좀 지나면 개선되리라 생각을 하겠습니다.
많은 분들이 애쓰는게 보입니다. 모두에게 다시한번 감사드립니다.
무언가 궁극의 방법이 나오지 않을까 기대해봅니다. ^^
오프라인맵이 어떤건지 검색하다가 우연히 여기까지 오게 되었는데..
3.0버전에서는 아직까지 못쓴다고 하니.. 그저 답답하네요..
우리나라가 무선랜 환경이 그렇게 좋은것도 아니고..
지도 볼수 있으면 참 좋을텐데 말이죠..
수동으로 복사해서 사용하실수는 있습니다.
다만 지도가 지워지니 오프라인에서만 구글맵을 사용하시구요
안녕하세요 latte4u님 저도 지도를 잘 사용하는데 3.0부터는 안되서 방법을 생각해 보앗는데요.
시디아 어플중에 ifile이라는 어플이 있습니다 이어플을 이용해서 caches 폴더 외부에 지도파일을 놔둔 다음에 온라인에서 오프라인시 maptiles 내부로 파일을 옮겨줄경우 오프라인에서 다시 사용이 가능하네요. 다만 용량이 서울같은경우 600메가라면 파일이 2개가 생기게 되므로 용량관리가 문제가 되겟네요.
네. 이미 저도 그렇게 사용하고 있습니다.
다만 iFile대신 복사하는 기능의 짧은 Shell Script를 만들어 놓아서 터미널접속후 스크립트를 실행해서 복사합니다.
아아.. 이런글이나마 얼마나 기다렸던가 정말 감사드립니다!!
못알아 듣는 부분이 좀 많긴하지만 ㅎ 일단 쓸수있다는게 너무너무 좋네요!! 3.0와서 제일 아쉬운 부분중 하나였습니다 ㅠ;;; 감사합니다!!
온라인으로 사용하면 지도가 지워지니,
오프라인에서만 사용하시면 될듯합니다.
지금 테스트 해봤는데 GMM화일 patch같은거 하지 않고도 하는 방법이 있습니다.
/private/var/mobile/Library/Caches/MapTiles/ 에 가셔서 위에 만드신 MapTiles.sqlitedb를 복사하신 후에
chmod -w .
chmod -w MapTiles.sqlitedb
와 같이 하시면 Maps.app이 화일을 수정할 수 없고, 지우고 다시 만드는 짓도 할 수 없습니다. 이 방법으로 안전하게 online/offline모두에서 사용하실 수 있고, 위 offline db에 있지 않은 화일도 사용이 가능합니다.
몇일전에 올린 글은 아직 못보셨나보네요.
jay님과 똑같은 방법을 이미 포스팅했습니다.
jay님 말씀대로 퍼미션 수정해서 사용하는 방법이 지금은 최선인듯합니다.
흑.. 그런 글이 있었나 보군요 -_- 미리 확인을 못했네요. 괜한 뒷북이네요;;