미리 알림 >
Siri를 정상적으로 이용하기 위해서는 iPhone 4S에서 사용해야됩니다. 나머지 기기(iPad 2 / iPhone 4 또는 그 이전 기기들)에서는 애플이 지원할 계획이 현재는 없다고 합니다. 기술적으로도 iPhone 4S 기기의 각각 고유 키 같은것이 필요하므로 실제 서버 통신은 불가능합니다. 이 글에서도 Siri 자체가 나타나는 정도까지만 다룹니다. 또한 진행 과정의 일부는 기억에 의존하고 있으므로, 문제가 생길 수 있으니 절대 실 사용 폰에서 진행하지 말고, 반드시 망가져도 상관없는 iOS 기기로 테스트합니다. 직접 따라하는 것/ 그 과정에서의 모든 문제에 대한 책임은 실제 따라하는 여러분에게 있습니다.


사전 지식 > 
- 아이폰 내부 파일 구조에 대한 지식
- 컴퓨터의 파일을 아이폰으로 복사하는 방법 

- 터미널 사용
- Jailbreak 하는 방법
- plist 파일 사용 방법

준비물 >
- 아이폰 3Gs / 4 (내용은 3Gs를 기준으로 진행하지만, 4도 비슷하게 사용 가능합니다.)
- 아이폰의 iOS는 5 (진행은 5.0.1로 진행)
- 탈옥 되어있어야됨
- .plist 파일을 수정할 수 있는 프로그램 (XCode 에서 가능)
- iPhone Explorer 같은 아이폰 파일 탐색 프로그램 (실제 진행과정에서는 귀찮아서 결국 OpenSSH를 설치하여 SFTP 프로토콜로 진행하였습니다.)

- Siri 파일 필요함 : http://www.filesonic.hk/file/2795079565/Siri.zip 
또는
- 수정된 파일 포함 (3Gs용 이미지가 없는것 같아 1/2 사이즈 수정)


방법 >
1. 아이폰 탈옥
이 부분은 생략합니다. 각자 사용하는 기기에 맞추어 탈옥하세요. 참고로 iOS 5.0.1을 사용하면 redsn0w에서 ipsw파일을 직접 지정해야되므로 불편합니다. 가능하면 iOS 5에서 진행하는것이 편리합니다.

2. 파일 복사
해당 파일을 풀면 폴더와 bundle파일들이 나옵니다.
- AssistantServices.framework -> /System/Library/PrivateFrameworks 안에 복사
- AssistantUI.framework -> /System/Library/PrivateFrameworks 안에 복사
- SpringBoard_Assistant_pics 내부의 파일들 모두 -> /System/Library/CoreServices/SpringBoard.app/ 아래에 복사
- Assistant.bundle -> /System/Library/PreferenceBundles 안에 복사
- com.apple.assistantd.plist -> /System/Library/LaunchDaemons 안에 복사
- s5l8940x_factory_cert -> 필요 없는 파일이라고 함.
- 나머지 -> 역시 사용하지 않음

3. 파일 수정
a. 스프링보드에서 시리 활성화
/System/Library/CoreServices/SpringBoard.app/ 아래에 N[숫자][숫자]AP.plist 파일이 있습니다. (기종마다 다름, iPhone 3Gs 기준으로 N88AP) 이 파일에 내용을 추가야됩니다.
- iPhone 4이상 사용자라면 
<key>720p</key><true/> 다음에 <key>assistant</key><true/> 를 추가합니다.
- iPhone 3Gs 사용자라면
N88AP.plist 파일을 열어서 capabilities 라는 Dictionary 하부에 assistant 라는 값을 추가하고 Type은 Boolean, Value는 YES로 줍니다.

직접 사용한 3Gs용 파일 

b. 환경 설정에 Siri(ASSISTANT) 포함
- /Private/var/stash/Applications/Preferences.app/General.plist 파일 수정


* 글자 편집
아래 부분에 <key>label</key> <string>Reset</string></dict> 뒤에 아래 글자 추가

<dict> <key>bundle</key> <string>Assistant</string> <key>cell</key> <string>PSLinkCell</string> <key>isController</key> <true/> <key>label</key> <string>ASSISTANT</string> </dict> 


또는
* plist 편집 
items 항목 아래 새 item 추가
cell / string / PSLinkCell
bundle / string / Assistant
label / string / ASSISTANT
isController / boolean / YES

직접 사용한 3Gs용 파일



c. (이건 이후에 확인 해보고 수정) 계속 통신이 끊긴다면, Siri 서버 https를 http로 변경
- /var/mobile/Library/Preferences/com.apple.assistant.plist 파일에서 https://로 시작되는 서버를 http://로 변경 (어짜피 바꾸나 안바꾸나 안됨.)

4. 재부팅 후 확인


5. 만약 잘 안될 경우 AssistantServices.framework내 assistantd와 assistant_service에 chmod 775 권한을 준다.

6. 시연 영상 링크 : http://www.youtube.com/watch?v=VS6jZrbzExo

 

 

참고 글 >
http://www.simonblog.com/2011/10/30/how-to-install-siri-on-iphone-43gs/ 
http://insanelyi.com/topic/6559-how-to-add-siri-gui-to-iphone-43gs-and-ipod-touch-34-gen/ 
http://modmyi.com/forums/general-iphone-chat/787017-siri-files-extracted-iphone-4s.html 
Posted by Parker Falcon

이번에 iPhone/iPod Touch의 Mobile Safari에 유해한 악성 코드에 관한 기사를 읽었습니다. 펌웨어 1.1.4에서 Safari가 제대로 Crash했다고 합니다.
그래서 관심을 가지고 Windows Internet Explorer 7.0 에서 작동시켜보았습니다.
(링크는 저 기사에 있습니다. )

진행1

진행1 : 일단 응답을 하지 않습니다.


진행2

진행2 : 메모리 부족 메시지가 뜹니다.

진행3

진행3 : 우여곡절끝에 마무리는 됩니다.


상황 분석

상황 분석 : CPU 사용량(앞쪽에 마구마구 솟아 있는 부분)과 메모리 사용량을 비교해보세요.


상황 2-1

상황 2-1 : 윈도우용 사파리 3.1로 접속하였습니다.


더이상 다른 변화는 없습니다. 그냥 저기서 끝입니다. 딱히 응답없음을 띄우지도 않았습니다.
사용자 삽입 이미지

저런 메모리는 할당하지 않은 모양입니다.



 스크립트의 내용은 클릭하면 나옵니다.

소스를 보면 대충 메모리 상에 4기가 바이트가 약간 안되는 공간을 할당받으려고 하는 것 같습니다만, iPhone의 사양을 볼 때 저 공간을 그대로 할당하면 Freeze/Crash가 일어나는 것은 거의 당연하다고 생각합니다. 물론 어플리케이션 차원에서 자바 스크립트가 저렇게 무지막지한 공간을 할당받지 못하게 하거나 경고 메시지를 띄우는(윈도우의 계산기에서 오래 걸리는 계산의 경우 처럼) 방법을 택했으면 더욱 좋았을 거 같습니다. 다행히 root권한을 취득할만한 큰 문제는 아니라고 생각합니다만 그래도 Safari 3.1에서 해결 된 것 처럼 iPhone/iPod Touch 의 Mobile Safari에서도 문제가 생기지 않게 대처해주면 더욱 좋을 거 같습니다.
그리고  Safari 3.0은 얼마전에 바로 업데이트 한 덕분에 3.1로 업데이트 했다면 큰 문제는 없는 것 같습니다.
테스트(?) 사양은
OS : Windows Vista
CPU : E6320 (노 오버)
RAM : 2 * 2GB = 4GB
Browser : IE 7.0

Posted by Parker Falcon