"이 기기는 재설정 되었습니다." 오류 조치 기

이미지
중고로 구입한 스마트폰을 공장 초기화한 후 맞이하게 된 상황이다. 검색을 먼저해보았다. 주로 서비스센터로 가라는 내용이었다. 주변에 가까운 서비스 센터가 있으면 이게 가장 좋은 방법일꺼 같다. 내가 택한 방법은 이것이다. 인터넷에 나온 우회방법은 업데이트 되면서 전부 되지 않는다. 고로 처음 나온 시점으로 되돌리는게 중요하다. 펌웨어(FirmWare) 를 구하기가 어려웠는데 맛클에 가입하면 쉽게 구할 수 있다. 내 경우 노트5 였는데 삼성모바일에서 받으려고 가입했는데 무료는 일주일 걸리는 속도제한을 걸어둔 상태였다. ㅠㅠ 펌웨어를 구했으면 오딘을 구해야 한다. 오딘은 윈도우용이다. 맥용이 있다고 하지만 시간만 버릴뿐이었다. ㅠㅠ 이제 초기화 펌웨어를 오딘으로 단말기에 넣어야 한다. 단말기를 다운로드 모드로 부팅해야 한다.(전원 + 음량 + 홈) 다음 화면이 나올 것이다. 이 상태에서 컴퓨터에 오딘을 실행시키고 단말기와 USB 연결을한다. 보통 버전마다 다른데 이 화면에선 PDA 버튼을 클릭하면 파일 선택창이 뜬다. (최신버전은 AP 버튼이라고 나올것이다.) 여기에 기존에 다운받은 펌웨어를 선택하면 된다. 연결을 하며 좌측 하단에 Message 부분에 Add 라고 뜰것이다. 그러면 우측 하단의 Start 버튼을 클릭하면 좌측 상단에 진행되는 부분이 보인다. 마지막에 녹색 바탕에 PASS 라고 뜨면 펌웨어 초기화가 완료된 것이다. 이제 단말기에 USB를 제거하고 재부팅해보자. 그러면 무한 재부팅 될 것이다. 여기서 당황하지 말고 종료시키면 된다. 노트5 경우 음량 아래 + 전원 버튼을 누르고 있다가 로고가 나오면 음량 위 + 전원을 누르면 된다. 이 부분은 시점을 잘 잡아야 한다. 유튜브에 멋쟁이 아저씨가 잘 설명한게 있을테니 참고하면 된다. 초기화 해도 여전히 자신의 계정은 등록할 수 없다. 이부분에 인터넷에 나온 우회 방법은 전부 패치되어 사용할 수 없다. ...

아이폰에서 RFID 사용하는 방법

아이폰에서 NFC 나 RFID 를 사용하는 방법을 조사한 내용입니다. 아이폰은 NFC 가 안된다... 이런 말을 많이 듣습니다. 조사한 결과로는 iOS 11 이 설치된 iPhone 7 이상의 폰에서 가능합니다. NFC 와 RFID 의 차이는 무엇일까? NFC는 RFID 취약점을 보완한 물건이라고 생각하면 좋습니다. 보통 RFID는 태그의 고유값을 읽어 들여 이를 서버에서 처리하는 내용입니다. 바코드를 대체하기 위해 만들어서 사용했기 때문입니다. 하지만 이를 교통카드 처럼 결제에 이용되다 보니 RFID-ID(보통 anti collision identification 이라고 부릅니다.)는 리더만 있으면 쉽게 수집하여 복사할 수 있습니다. 쉽게 말해 보안에 취약합니다. 결제에 사용하기 위해 고유값 보다 변동되는 값을 사용하고 암호화를 사용할 수 있는 쓰기 가능한 영역이 필요해서 추가된 내용이 NFC로 보면 되겠습니다. 청출어람이 이런 곳에 쓰이면 딱 맞는 표현일까요? 저도 이런 생각을 했습니다. 그럼 결제에 사용하는게 아니라 인식만 하기 위해서 아이폰을 활용하면 어떨까? 아이폰 7 이하에서는 "애플페이 결제할 때 RFID-ID가 발급되니까" 이를 인식하면 되지 않을까? 아래 링크에 자세한 설명이 되어 있긴 합니다만 "결론은 안된다!!"입니다. https://www.raptrack.com/article/blog/core-nfc-2/ anti collision identification 발급이 랜덤하게 매번 다르게 생성이 됩니다. 이는 읽을 수만 있는 형식으로 제공됩니다. 물론 이런 방식으로 제공해야 보안에 우수합니다. 이제 iOS 11 이상이 설치된 iPhone 7 이상에서 NFC를 사용하는 방법입니다. core NFC 프레임워크에서 제공하는 델리게이트를 사용하면 가능합니다. NDEF 메시지를 읽어서 개발자가 태그를 인코딩하면 가능합니다. 보통 카드번호 같은 형식을 만들어서 인코딩합니...

Swift 용 Realm 설치 후 No such module "Realm" 오류 나올때 조치 방법

Realm 은 모바일 데이터베이스라고 하는데 사용해보니 강력한거 같다. 하지만 강타입으로 모델링을 해야 한다. 그리고 Xcode 에서 pod 으로 설치 한 다음 No such module "Realm" 오류가 자주 난다. 이는 설치된 파일과 연결이 잘 안되어서 나는 오류로 보통 초기화 하면 해결이 된다. 그래도 안되면 아래와 같이 완전 초기화를 해보자 $ pod cache clean Realm $ pod cache clean RealmSwift $ pod deintegrate || rm -rf Pods $ pod install --verbose $ rm -rf ~/Library/Developer/Xcode/DerivedData 이와 같이 하니까 오류가 나지 않는다.

RealVNC 로 MacMini 접속할 때 1920 * 1080 해상도 안될 때

윈도를 기본으로 MacMini 를 RealVNC 로 접속하여 개발중입니다. 이전 MacMini를 기본으로 RemoteDesktop을 사용했었는데 서로 단축키와 한영전환 등 기본적으로 윈도에서 사무업무를 봐야 하기 때문에 바꾸었습니다. 문제는 잘되던 해상도가 갑자기 1280 * 1024 로 작아졌다는 겁니다. 별짓을 다해본 결과 결론은 이겁니다. 첫번째 ScreensharingAgent 프로세스를 죽이고 다시 붙여 봅니다. $ ps -ef | grep ScreensharingAgent $ killall ScreensharingAgent 그래도 안되면 두번째로 cscreen 을 설치해서 강제 설정해봅니다. $ brew install Caskroom/cask/cscreen $ cscreen -d 32 -x 1920 -y 1080 -r 60 저는 이와 같이 하니까 정상을 찾았네요.

처음 해외에 나간 경험담 2011년 CES 참관기

2011년 CES 참관하면서 대학원에 제출한 자료 40년 만에 처음으로 여권을 만들고 국제공항으로 떠나는 나의 마음은 두려움 반과 기대 반 등으로 많이 설렜다. 공항버스 밖으로 스쳐 지나가는 낯익은 풍경들을 뒤로 하고 과연 미국이란 나라는 어떻게 생겼을까 하는 기대감이 공항에 가까울수록 더 커져만 갔다. 그렇게 나의 미국 방문기는 2011년 새해와 함께 시작되었다. 항공권을 받고 수하물을 부치면서 액체 나 라이터 등은 휴대하는 가방에 넣지 말고 수하물에 부쳐야한다는 기본적인 수칙을 알았다. 출국수속을 마치고 면세점에 들어서자 모든 금액이 달러로 표시되어 마치 미국에 도착한 거 같은 착각이 들기도 하였다. 국제공항이라 그런지 규모가 대단했으며 파는 물건 또한 매우 비싸보였다. 이곳에서 면세품을 사면 여행 내내 들고 다녀야 하는 불편함이 있었지만 가격이 다른 나라보다 싸므로 여기서 많이들 산다고 하였다. 경험이 많은 사람들은 이곳 면세점에서 주로 화장품, 주류, 담배 등을 사곤 하였다. 이륙시간이 많이 남은 터라 면세점을 주로 돌아다녔지만 대부분의 물건은 그리 생소한 것은 없었다. 게이트 앞에 가서 이륙시간을 기다리기로 하였다. 눈이 내린 인천공항은 한 겨울의 경치를 그대로 간직하고 있었으며 분주히 움직이는 차량과 사람들의 모습이 새해의 활력을 불어 넣는 것 같았다. 게이트를 통해 항공기를 탑승하는데 항공권과 여권을 검사하고 다시 검색을 했다. 비자를 물어 보았으나 비자면제프로그램이라고 말하고 통과되었지만 전면 검색에 걸리는 인원이 있었다. 나중에 들은 이야기인데 무작위로 선택되어 정밀검색을 받는다고 하였다. 내가보기에는 즉흥적으로 인상을 보고 판단하는 거 같았다. 일종의 검사관의 감이랄까. 매트릭스에서 말하는 감각이 이성보다 빠르고 그것에 의지해서 행동하는 인간이 결국은 기계를 뛰어 넘게 될 수 있다는 것을 생각나게 했다. 드디어 항공기에 탑승하였으나 가운데 자리라 그런지 생각보다 좌석이 매우 좁았다. 보통 타는 고속버스보다 좁고 옆 좌석과 바로 ...

swift 에서 json 파일 parsing 하기

스위프트에서 json 파일을 가져와서 parsing 하기가 어렵지 않다. 일단 json 형식은 다음과 같다. [     "strResult": SUCC,     "r_list": {         "h_dt": 20170824         "t_list": {             "t_info": {                 "h_value": 24             }         }     },     {         "h_dt": 20170821         "t_list": {             "t_info": {                 "h_value": 21             }         }     },     "row_cnt": 2 ] 이제 json 파일을 받아서 처리 할 수 있는 상태로 만들어 보자 do {     let json = try JSONSerialization.jsonObject(with: data, options: .allwFragments) as! [String: Any]     let r_list = json["r_list"] as! [[Str...

Mac 에서 postgresql 설치하는 쉬운 방법

Mac 에서 Phoenix 를 설치하고 ecto 를 실행하는데 오류가 난다. 대부분 postgresql 에서 난다. 지웠다 다시 설치하기를 반복하다 가장 쉬운 방법을 알아냈다. 일단 아래 사이트에서 앱을 하나 다운 받는다. https://postgresapp.com/documentation/gui-tools.html 이 앱을 설치하면 모든게 쉽게 이루어진다. 괜한 삽질하지 말고 이거 설치한 다음에 init 버튼을 클릭하자.