레이블이 Oukitel U20 Plus인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Oukitel U20 Plus인 게시물을 표시합니다. 모든 게시물 표시

2018년 11월 28일 수요일

듀얼 심과 SD 카드 함께 사용하기(2)

 이전에서 이어짐 - 듀얼 심과 SD 카드 함께 사용하기

 이전 글에서는 '이런 방법이 있더라'는 내용이었고 지금은 '그래서 실제로 해봤다'라는 내용이다.






 'U20 Plus'의 심 트레이는 대충 이렇게 생겼다. 한쪽은 마이크로, 한쪽은 나노 사이즈의 유심을 양면으로 넣거나 한쪽에 유심을 넣고 다른 한쪽에는 SD 카드를 넣어야 한다.





 이 유심은 현재 사용하지 않는 유심이고 실제 사용할 유심을 작업하기 전에 연습 용도로 먼저 해본 것이다. 라이터를 이용하면 칩을 플라스틱에서 떼어낼 수 있다. 안 쓰는거라 마음놓고 지졌더니 저렇게 조금 타버렸다. 열을 조금만 받아도 오그라들게 되므로 적당히 잘 구웠다면 칩을 분리하기 쉽게 된다.

 까맣게 뒤집어 놓은 것이 유심 칩인데 최근 것은 저렇게 뒷면이 코팅되어 있지만 구형은 회로가 노출되어 있기도 하다.




 왼쪽은 실제 사용할 유심을 플라스틱과 분리한 것이고 오른쪽 것은 연습으로 만든 4GB 짜리 SD 카드와 안쓰는 유심이다. 유심 칩의 위치는 SD 카드의 편평한 밑 부분과 일치하게 줄을 맞추고 최대한 접속 단자쪽으로 가까이 붙이면 된다. 그렇게 정확하고 정교하게 하려고 노력하지 않았는데도 되는걸 보면 칩을 완전 구워먹지 않는 이상 대충해도 잘 작동하는 것 같다.

칩의 위 아래 구분은 칩에 그려진 선을 보면 되는데 열려 있는 부분이 윗 부분이다. 두 칩을 비교해 보면 선이 그려져 있는 것은 다르지만 공통점을 발견할 수 있을 것이다. 구분 못하겠으면 싸인팬으로 표시하면 된다.





 순간 접착제 미량을 사용하여 붙여 준다. 이전 글의 동영상에서는 순간 접착제 사용은 권장하지 않는다고 했던거 같은데 난 다른 접착제가 없어서 새로 사기도 귀찮아서 그냥 이거 썼다. 그런데 연습 삼아 먼저 만든 안쓰는 유심은 잘 되더니면 막상 본편으로 들어가니까 손이 미끄러져서 유심 칩에도 접착제가 묻고 지저분해 졌다. 아직 굳기 전이므로 위치를 잘 조정해 줬다.





 집에 굴러다니던 클립을 이용해서 고정한 뒤 30분 정도 기다렸다.




 갑작스런 수전증 때문에 망했을까 걱정했는데 다행히 잘 동작한다. 그런데 해보고 느낀 점은 그냥 돈이 많으면 이런 짓을 안해도 되니 역시 돈이 최고라는 것이다. 유심칩이 대충 만원, SD 카드 32GB 짜리가 대충 2만원이니까 대략 3만원 정도의 리스크가 있었는데 안 날려먹고 잘 됐다.

 문제는 유심과 SD 카드를 순간 접착제로 합체해 버렸기 때문에 앞으로 그럴 일이 없을거 같지만 만약 떼려고 하면 칩이 손상될듯 싶다.

 사실 음악은 구글 뮤직 스트리밍으로 듣고, 동영상도 폰으로는 거의 안보고 사진도 잘 안찍다 보니 스토리지 공간이 부족한 것은 아니다. 딱히 필요가 있어서 한게 아니라 그냥 한번 해보고 싶었다. 누구는 산을 오르는 이유가 산이 그곳에 있기 때문이라더라...

듀얼 심과 SD 카드 함께 사용하기

 나는 아이폰4s를 쓰고 있었다. 과거형인 이유는 폰을 새로 샀기 때문.

 실은 대략 2년 전 쯤에 'le 1s'란 모델의 안드로이드 폰을 썼는데 고장이 나서 어쩔 수 없이 다시 아이폰을 쓰고 있던 것이다. 고장난 이유는 기기 문제 같은건 전혀 아니었고 단지 내 실수였다. 뭔 배짱이었는지 '쌩폰'인 상태로 쓰다가 돌바닥에 세번째 떨군 후 스크린에 금이 갔는데 그걸 자가 수리를 하려다가 망한게 고장의 이유다. 사실 자가수리를 하던 과정에도 어처구니 없었던 사연이 있지만 그런 이야기를 할 것은 아니니 넘어가고...




 그래서 내가 최근에 구매한 스마트폰은 중국 'Oukitel'이란 회사의 'U20 Plus'라는 기종이다. 굳이 유명한 '샤오미'나 '화웨이'를 빼고 이 제품을 고른 이유는 이 회사가 'Rugged Phone'을 주력으로 만드는 곳이기 때문이다. 러기드폰이란 한마디로 던지고, 굴리고, 어디 빠져도 작동을 보장하는 튼튼한 폰을 말한다. 그렇다고 내가 산 기종이 러기드폰은 아니고 다만 러기드폰 만드는 곳이면 다른 라인업도 기본적으로 튼튼하게 만들지 않을까 싶은 막연한 기대가 있었다.

 또 무엇보다 가장 중요한 이유로 가격이 쌌다. 해외 직구를 하면 관세를 생각해야 하는데 $150 이하 제품 중에서 골라야 했고 그 중에서도 'Oukitel' 제품을 사보고 싶었기 때문에 이걸 선택했다. 내가 당시 구매했을때 가격은 $85.99 였으니 환율 계산해도 10만원이 안됐다.

 사용한지는 대략 두어달 된것 같은데 성능은 전에 쓰던 'le 1s'랑 비교하면 약간 버벅거림이 있다. 그런데 사실 가격이 절반 밖에 안되므로 이렇게 비교할게 못된다. 오히려 십만원도 안되는 폰이 1080 FHD 해상도에 Antutu 점수도 4만점은 넘고 핑거프린트도 지원하니 가성비는 꽤 좋다고 본다.

 가격 생각하면 꽤 만족스러운 제품이지만 불만이 없진 않은데 제조사 스펙 설명에는 분명 'Dual SIM, Dual Standby(DSDS)'라고 되어 있지만 막상 써보니 안됐다. 처음에는 설정 문제인줄 알고 검색도 많이 해보고 설정도 많이 만져 봤는데 내가 내린 결론은 한국 상황과 이 기종이 지원하는 스펙이 맞지 않아서 안된다는 것이다. 아마 중국이나 유럽의 다른 나라 상황이면 가능했을 것이다.

 정확한 내용은 나도 잘 모르고 대충 검색을 해보니 통신 방식에 GSM(2G), CDMS(3G), HSPA, LTE(4G) 이런 것들이 있는데 하나의 슬롯이 LTE나 WCDMA 상태가 되면 또 하나의 슬롯은 GSM 방식만 지원하게 된다. 아마 이 기기의 한계인것 같은데 제조사 설명에는 그냥 'DSDS'라고만 쓰여있다. 한국에는 2G 서비스가 아예 없으므로 'Dual SIM Single Standby(DSSS)'로 사용해야 하는 것이다.

 여기까지는 제목과 상관없는 TMI 였고...

 또 하나의 문제점은 본 포스트의 제목으로 쓰게된 이유인데, 듀얼심을 사용하면 SD 카드는 사용 못한다는 것이다. 유심 두개 넣고 SD 카드도 넣을 수 있으면 좋으련만 구조상 그렇게는 못하게 해놨다. 그런데 이걸 또 가능하게 하는 방법이 있더라.




 'Youtube'에서 'dual sim sd card'라는 키워드로 검색하면 나오는 영상인데 이것보다 조회수가 더 많은 영상도 있다. 하지만 그 영상은 전문적인 장비나 정교한 과정을 거쳐서 하는 것에 반해 이것은 주변에 흔히 구할 수 있는 것으로 작업을 한다는 차이가 있다.

 이렇게 따라 해보니 SD 카드를 파내야 할 필요도 없었고 동작도 잘 된다.

 다음으로 이어짐 - 듀얼 심과 SD 카드 함께 사용하기(2)

2018년 11월 14일 수요일

부트로고와 애니메이션을 바꾸고 싶다.

 부트로고와 애니메이션을 수정하는 과정중에 알게된 내용을 정리하는 포스트이다. 나중에 분명 까먹기 때문에 다시 보면서 기억을 하기 위한 목적과 혹시라도 검색을 통해 찾아올 소수의 사람들을 위한 참고 자료이다.




 OEM Unlock을 했더니 폰을 리부트하면 이렇게 된다. 엄청 작게 뭔가 텍스트가 써 있는데 확대해서 보면 '당신의 장치는 언락되서 신뢰할 수 없으며 5초 후에 부팅한다'는 것이다.

Orange State
Your Device has been unlocked and con't be trusted
Your Device will boot in 5 second

 Oukitel 로고는 아무래도 상관없고 단지 하얀 화면에 저런 까만색 텍스트가 나오는게 마음에 안들었다. #ffffff의 하얀색인것 같으니 색상 반전만 시켜서 넣어주면 되겠다 싶었다.

 검색해보니 'LogoBuilder'라는 프로그램이 있다고 한다. 말 그대로 로고를 만드는 프로그램이다. 이것도 러시아 사람이 만들었나 보다. 어쨌든 편집을 하려면 logo.bin 파일을 구해야 한다. 이 파일은 펌웨어에서 추출하거나 현재 장치에서 가져올 수 있다. 나는 후자의 방법으로 하기로 했다.

dd if=/dev/logo of=/sdcard/logo.bin bs=3145728 count=1
 검색을 해보니 이런 명령을 쓰라고 한다. dd 명령이 뭐에 쓰는지는 모르겠지만 of= 부분에 있는 경로가 파일을 어디에 저장할지 지정하는 것이란걸 알 수 있다.

 sdcard의 경로는 기기마다 다를 수 있다. 내 경우에는 현재 [ /storage/E6AD-A5DF ]라는 이름으로 되어 있는데 이거는 펌웨어를 플래시 할때마다 달라지는것 같다. 타이핑 하기 어려운 관계로 심볼릭 링크를 만들면 과정을 좀 편하게 진행할 수 있다.

ln -s /storage/E6AD-A5DF extsd
 이렇게 하면 심볼릭 링크가 만들어져야 하지만 루트가 읽기 전용 상태라 만들 수 없다는 메시지가 나온다. 아무튼 이 문제를 해결하려면 mount 명령어를 사용하면 된다.

mount -o rw,remount /
 이렇게하면 루트에 extsd라는 이름의 심볼릭링크를 만들 수 있다.

dd if=/dev/logo of=/extsd/logo.bin bs=3145728 count=1
 뭔지 모를 이 dd 명령을 입력하면 다음과 같은 결과를 출력한다.

1+0 records in
1+0 records out
3145728 bytes transferred in 0.059 secs (53317423 bytes/sec)
 extsd를 확인해 봤더니 확실히 logo.bin 파일이 생겼다. 이제 파일을 데스크탑으로 가져오기 위해 exit로 나가거나 새로운 명령 프롬프트를 열어서 파일을 가져온다. 아니면 이미 케이블이 연결되어 있으니 mtp 연결로 바꾼 후 윈도우의 탐색기로 복사해도 된다.


Logo Builder에서 Oukitel Logo.bin을 불러온 모습
1번과 39번은 흰색이었는데 색반전시켜서 검은색으로 만들었다.
adb pull /extsd/logo.bin .
 가져온 파일을 로고빌더 프로그램으로 열면 logo.bin 파일을 풀어서 지정한 폴더에 저장해 준다. 보아하니 img1.png 39번 파일을 편집하면 될 것 같아서 적당한 그림 편집 프로그램을 이용하여 색 반전 시켜줬다. 그 후 make 버튼을 눌러주면 update.zip 파일과 logo.bin 파일을 만들어 준다. 적용하려면 두가지 방법이 있는데 하나는 zip 파일을 리커버리에서 플래시 하는것이고 하나는 bin 파일을 fastboot에서 플래시 하는 것이다. 내 경우는 fastboot가 편하다.

fastboot flash logo logo.bin
 여담이지만 dd 명령에서 바로 /dev/logo 파일을 가져오면 되지 않을까 싶어서 ls 명령으로 보니까 이런 심볼릭 링크가 연속으로 연결된 형태로 되어 있다. - 사실 이게 심볼릭 링크인지 뭔지 나도 잘 모른다. 리눅스 넘나 어려운것 -

/dev/logo <- /dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/logo <- /dev/block/mmcblk0p9

8900 brw-rw---- 1 root system 179,   9 2018-01-01 09:00 mmcblk0p9

 권한 부분에 d라고 되어 있으면 디렉토리던데 b는 뭔지 모르겠다. boot partition의 b 같은게 아닐까? 아무튼 보통 파일은 아닌것 같고 그래서 단순히 cp 명령으로는 가져올 수 없는것 같다. dd 명령에 대한 참고자료 링크 - dd (유닉스) dd 명령어 옵션 설명

if=FILE : 표준입력대신 지정한 파일을 입력으로 받는다.
of=FILE : 표준 출력대신 지정된 파일에 출력한다.
bs=BYTES : 한 번에 BYTES씩 읽어 들이고 출력. ibs와 obs를 한 번에 지정한 것과 같다.
count=BLOCKS : 입력 블록의 ibs 크기만큼만 복사한다.

 흠... 읽어봐도 대체 저 명령으로 어떻게 logo.bin 파일을 추출한건지 이해가 안된다. /dev 디렉토리를 보니 nvram도 있던데 그렇다면 이 명령을 제대로 알기만 한다면 nvram.bin 파일도 가져올 수 있지 않을까 싶다.

 부트 애니메이션의 경우는 바꿀 생각은 없었고 그냥 소리만 좀 넣어보고 싶었다. 스톡 롬에서는 bootaudio.mp3 파일을 /system/media 경로에 넣으면 됐는데 LineageOS 에서는 이 방법으로는 안된다. 여러 방법이 있겠지만 최대한 쉬운 방법을 찾아 봤다.

 /system/media/bootanimation.zip 파일을 가져와서 열어보면 다음과 같은 구조로 되어 있다.

/part0
/part1
/part2
/part3
/part4
dest.txt

 여기서 dest.txt 파일을 열어보면 이렇게 되어 있다.

720 240 60
c 1 0 part0
c 0 0 part1
c 1 0 part2
c 1 1 part3
c 1 0 part4

 width height frame/sec 인것 같다. 그림뷰어 프로그램으로 압축 파일을 보면 part0부터 4까지 그림을 쭉 바꿔가며 애니메이션 하는 방식이다. 소리는 여기에 audio.wav 파일을 넣으면 된다. 내 경우 애니메이션 시작때 소리가 나오게 하고 싶었으니 part0 폴더에 넣었다. 처음에는 소리가 나질 않았는데 나중에 알고보니 사운드 포멧을 32bit float으로 하면 안된다. 16bit int로 하면 잘 나온다. 스테레오 여부는 상관 없다. 시험삼아 ogg 파일을 넣어봤는데 안된다. wav 파일만 되는것 같다. 종료 애니메이션도 넣어보고 싶은데 이건 아직 방법을 모르겠다.

2018년 11월 9일 금요일

Mediatek Device에서 nvram warning 문제

 wifi에서 'NVRAM WARNING'이란 AP(Access Point)가 나타나는 오류가 있다. 공통적으로 Mediatek Device에서 발생하는 문제이며 내 경우에는 커스텀 롬을 올렸더니 발생했다. 하지만 접속도 되지 않는 AP를 표시하고 있는것 뿐 실제로 사용에 불편함을 주거나 치명적인 문제를 발생시키는 것은 아니다. 다만 거슬릴 뿐이다. 어쨌든 이 문제를 해결하고 싶어서 검색을 해보니 굉장히 많은 자료가 나왔지만 실제로 정작 나에게 도움되는건 없었다.

 현재 내가 문제를 겪고 있는 장치는 'Oukitel U20 Plus'라는 모델이며 스톡 상태에서는 문제가 없지만 여기에 LineageOS의 비공식 커스텀 롬을 플래시한 상태이다. 결론적으로 문제를 해결하지는 못했고 검색하면서 모은 정보를 정리하는 목적으로 글을 쓰는 바이다.

 일단 증상에 대해 간단히 설명을 하자면 잘못된 AP가 표시되는것 외에 내가 알기로는 바뀔리 없는 MAC Address가 wifi가 off/on 될 때마다 변경이 된다. 그런데 이것은 스톡 롬에서도 마찬가지다. 다만 스톡 롬은 잘못된 AP를 표시하지 않는다.


 1. WIFI 파일 수정 하기
 이 문제를 해결하기 위한 여러 방법 중 가장 많이 볼 수 있었던 솔루션 중에 하나는 [ /data/nvram/APCFG/APRDEB/WIFI ]를 hex 편집기로 열어서 첫행 4열 부분에 현재 MAC 주소를 넣으라는 방법이다. 즉 WIFI 파일의 내용과 MAC Address가 일치하면 'NVRAM WARNING' AP는 사라진다는 것이다. 방침을 따라서 해보니 해결된 듯이 보였지만 리부트 하니 같은 문제가 계속 발생했다.


 같은 문제가 계속 발생하는 이유는 변경한 'WIFI' 파일이 원래대로 돌아가기 때문이다. 저 부분에 MAC 주소를 넣어서 파일을 교체해도 리부트 또는 wifi를 off/on 하면 다시 [ 00 00 00 00 00 00 ] 으로 바뀐다. 아예 삭제를 해버려도 리부트를 하면 파일이 새로 만들어진다. 심지어 chmod 명령을 통해 권한을 440(rr)으로 만들어도 리부트 해서 보면 도로 660(rwrw)으로 돌아가 있다. 다만 440으로 하면 리부트를 하지 않으면 wifi를 off/on 해도 MAC 주소가 바뀌진 않는다.

 추정컨데 리부트 되는 과정에서 무조건 WIFI 파일을 새로 생성하는듯 하고 새로 만든 파일에는 MAC 주소의 정보가 0이기 때문에 일치하지 않으니 error AP가 나오는 것이다.

 그리고 wifi 다시 켜지는 과정에서 MAC 주소가 갱신될 때 앞의 3자리는 동일하지만 뒤의 3자리는 임의적으로 부여되는걸 확인했다. 다만 맨 뒤의 6번째는 리부트 될때는 고정적인데 wifi를 다시 켤때는 랜덤으로 부여된다. 즉 [ 00:08:22:??:??:FC ] 이런식이다. 앞의 [ 00:08:22 ] 는 항상 고정이다. 맨 뒤의 [ FC ]는 바뀌기도 하고 안 바뀌기도 한다. ??:?? 부분은 완전 랜덤하게 부여된다.

 흐음.. 내가 알기로는 맥 주소는 NIC(Network Interface Controller)에 각인되어서 절대 바뀌지 않는다고 알고 있었는데..?


"짜잔! '절대'라는 건 없군요"
 나로써는 그 이유를 모르겠지만 아마 미디어텍에서 어떤 이유가 있어서 계속 맥 주소를 계속 바뀌게끔 한것 같다.





 2. MTK NVRAM 0x10 FIX_v1.0.apk
 두번째 솔루션은 위에서 설명한 WIFI 파일의 hex 편집 과정을 자동으로 처리하게 만든 앱을 사용하는 것인데 원리는 1번의 방법과 같기 때문에 이 또한 근본적 원인을 해결해 주는 것은 아니다. 링크만 남기도록 하겠다. 'RacerOttavio97' MTK NVRAM 0x10 FIX_v1.0.apk


 3. MTK Engineering
 세번째 솔루션은 MTK Engineering 앱을 통해서 해결하는 방법이었는데 실행이 안됐다. 미디어텍 장치라고 해도 커스텀롬에 해당 요소가 포함되어 있지 않으면 안되는것 같다. 다른 비슷한 앱을 설치해봐도 마찬가지였다.



 4. SP META Mode
 네번째 솔루션은 메타 모드라고 하는 것이다. 이것은 프로그램의 이름인데 처음에는 SP Meta 였지만 버전업이 되면서 Maui Meta로 이름이 바뀌었다. 일단 이게 뭔지 이해하려면 스마트폰이 켜지는 방식 4가지의 방식을 알아야 한다.

 1. VCOM(preloader) - SP Flash Tool
 2. lk(boot loader/small kernel) - fastboot(Power + Volume Up)
 3. META mode - Maui Meta
 4. mtp, ptp, mass storage

 4번은 기기가 정상적으로 켜진 상태이다. mtp(미디어 전송 프로토콜), ptp(사진)는 USB 케이블을 PC와 연결 했을때 볼 수 있다.

 이 중에서 메타 모드로 진입하면 IMEI(International Mobile Equipment Identity)를 입력하거나 변경할 수 있고 기기의 여러 부분을 변경하거나 백업할 수 있다고 하는것 같다. Maui Meta 프로그램의 최근 버전은 9.1724이고 Android MTK에서 받을 수 있고 드라이버도 받아서 설치해야 동작한다.

 메타 모드로 들어가는 방법은 기기를 끈 후 프로그램에서 reconnect 버튼을 클릭하고 케이블을 연결하는 것이다. 그러면 장치가 저절로 켜지며 첫 로고화면만 나오고 더 이상 부팅이 진행되지 않는다. 즉 부트 애니메이션이 나오기 전까지만 진행된다. 그 후 프로그램의 지시등이 노란색으로 바뀌면 메타 모드로 연결이 된 것이다. SP Tools이 볼륨 다운을 눌러야 들어가는 것과 다르게 이건 그냥 가만히 놔두면 진입이 된다.

 그런데 내 장치는 안된다. 이유는 모르겠다. 드라이버도 다 설치 되었는데 안됐다. 가능한 키 조합을 모두 동원해 봐도 메타 모드를 들어갈 수 없었다. 아무튼 그래서 4번 솔루션도 실패했다.


 5. MAC 주소 고정하기
 마지막 솔루션은 미봉책인데 맥 주소를 고정해 버리자는 생각에서 나왔다. 내가 설치한 것은 Change My MAC이란 앱이고 구글 플레이에서 받을 수 있다. 말 그대로 맥 주소를 변경하는 기능만 하는 앱이다. 부트된 이후에 자동으로 주소를 변경해주는 기능이 있어서 설정해 두면 맥 주소가 고정되는 효과가 있다. 단 부팅 과정에서 실행되는게 아니라 부팅이 끝난 후에 동작하기 때문에 SIM 카드를 잠근 상태라면 주소가 변경되는 순간 심의 PIN을 다시 물어본다는 불편함이 있다.

 어쨌든 마지막 방법을 사용하면 NVRAM WARNING AP가 나오는 문제는 사라진다. 단 앞에서 말했듯이 미봉책이므로 리부트하고 맥 주소가 바뀌기 전까지는 위의 잘못된 AP가 여전히 표시된다. 즉 원인을 해결한 것은 아니다.

 그런데 애시당초 그 잘못된 AP가 나온다고 해서 기기의 기능에 이상을 일으키는 것은 하나도 없다. wifi도 잘 연결되고, 셀룰러도 잘되고, 인터넷, 전화, 문자 아무런 문제도 없다. 단지 신경에 거슬릴 뿐이다. 그러니 단지 보기 싫다고 수많은 헛수고를 하면서 스트레스를 받느니 차라리 마인드를 바꿔서 그냥 무시하고 폰을 사용하는게 정신건강에 이롭겠다는 결론이다.


게임이든, 공부든, 운동이든 뭐든 하면 할 수록 느는 것과 같이
고민 또한 하면 할 수록 늘어난다.

 번외로 IMEI는 전화앱에서 *#06#*을 눌러서 확인할 수 있고 mtk의 엔지니어링 모드는 *#*#3646633#*#*로도 들어갈 수 있는데 이 의미는 #*#ENGMODE#*#* 라고 한다. 이게 무슨 말인지는 키패드의 해당하는 영문키를 보면 알 수 있다. 다만 내 경우에는 3번 솔루션에서 mtk 엔지니어링 앱이 안됐던 것과 같이 이 방법도 되지 않았다.