수능치고 친구랑 바람의나라(..)정도 할려고 윈도우를 설치하였다.

무료 가상머신인 VirtualBox 가 꽤나 쓸만하대서 얘로 진행.

부트캠프는 쓸 생각이 없었어나 가상머신에선 실행이 안되는 핵쉴드 때문에

결국 붓캠으로 재설치하였다ㅠㅠㅠㅠ


패러렐즈와 달리 VirtualBox 는 부트캠프 파티션을 가져오는 기능을 기본으로 지원하지 않는다.

하지만 검색해보면 방법은 있고, 클리앙 팁게에 용자군 님이

[맥] 버추얼박스(Virtualbox)에서 부트캠프 파티션 쓰기(Windows7)


라는 글을 써주셨다.


저 글을 보고 하긴 했는데,, 2011년 글이라 그런지 저대로하면 안된다..ㅋㅋ

언제부턴진 모르겠지만 disk0s3 은 복구파티션이 사용하기 때문..


그래서 새로 정리해 봤다.

(당연한 소리지만 $ 는 쉘 종류를 나타내는 기호로 저것까지 복&붙하면 안된다..)


1. BOOTCAMP 파티션 추출

파인더에서 우클릭 -> 추출을 선택하거나

$ sudo umount /Volumes/BOOTCAMP/


2. BOOTCAMP 파티션 ID 확인

$ diskutil list

/dev/disk0

   #:                       TYPE NAME                    SIZE       IDENTIFIER

   0:      GUID_partition_scheme                        *121.3 GB   disk0

   1:                        EFI EFI                     209.7 MB   disk0s1

   2:                  Apple_HFS Macintosh HD            100.5 GB   disk0s2

   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

   4:       Microsoft Basic Data BOOTCAMP                20.0 GB    disk0s4


나의 경우 disk0s4 가 BOOTCAMP 파티션이다.


3. 권한 조정

$ sudo chmod 777 /dev/disk0s4


4. vmdk 파일 생성

vmdk 파일을 생성해야 하는데,

난 ~/VMDisk 라는 디렉토리를 만들고 여기에 생성했다.

$ cd ~/VMDisk


명령어 젤 끝의 숫자를 자신이 확인한 BOOTCAMP 의 id 에 따라 수정해준다.

disk0s4 라면 4번 파티션이다.

sudo VBoxManage internalcommands createrawvmdk -rawdisk /dev/disk0 -filename bootcamp.vmdk -partitions 4



5. 다시 한번 권한..

$ sudo chown 사용자이름 bootcamp.vmdk bootcamp-pt.vmdk

$ sudo chmod a+rw bootcamp.vmdk



6. VirtualBox 새로만들기

(1) 가상 하드디스크: 기존 하드디스크 사용하기 -> bootcamp.vmdk 지정

(2) 생성된 가상머신 설정 -> 저장소 -> IDE 컨트롤러 -> 종류:ICH6


7. 부팅 & VirtualBox 게스트에디션 설치

게스트에디션은 페러렐즈 툴 같이 원활한 가상머신을 위한 프로그램으로, 부팅 상태에서 메뉴에 잘 찾아보면 있다.

클릭하면 CD 로 마운트되고, 설치하면 된다.



재부팅 이 후에 BOOTCAMP 파티션이 자동으로 마운트되는데,

VirtualBox 사용전엔 꼭 언마운트 해줘야 한다.

또한 언마운트 후에 권한 조정도 해줘야 정상적인 사용이 가능하다..


즉, 재부팅할 때 마다

$ sudo umount /Volumes/BOOTCAMP/

$ sudo chmod 777 /dev/disk0s4


를 해줘야 한다..


재부팅시마다 자동으로 하는 방법이 있긴 하지만 일단 난 귀찮으니 패쓰~


그리고 부트캠프 파티션을 추출해버리면 시스템 환경설정 - 시동디스크에 BOOTCAMP 가 나타나지 않는다.

재부팅시 option 을 누르는 방식으로 진입해야 함..

'Mac, iOS' 카테고리의 다른 글

[Mac] .rsrc 추출  (0) 2013.12.15
homebrew 설치 / 다운그레이드  (0) 2013.11.19
맥에서 카카오톡, 소리 나오게 하기  (1) 2013.11.15
Mac openVPN 서버 설치  (0) 2013.11.14
iOS7 SpringBoard 내부 설정 (성공) [글 수정]  (0) 2013.10.02

퐌무님이 쓰신

맥(OS X)에서 카카오톡하기 1단계 / Wineskin(와인스킨) 사용방법

맥(OS X)에서 카카오톡하기 2단계

맥(OS X)에서 카카오톡하기 3단계 / 문제해결 / 와인 한글깨짐 해결


글들을 통해 카카오톡은 잘 설치했고, 실행도 잘 된다.


문제는 소리.


나의 경우 한글폰트 문제는 없었지만 모두의 문제인 소리는 퐌무님이 해결해 주지 않으셨다!!;;


그냥 msxml3 을 체크 -> Run 을 하면 웹페이지와 폴더가 하나 열리면서 Wineskin 에는 파일을 다운받아 넣으라고 한다.


큼직한 다운로드 버튼을 클릭, msxml3.msi 파일을 열린 폴더 안에 넣어주고,

다시 msxml3 을 찾아서 체크 -> Run 을 해주면,,


되는 것 같지만 설치 창이 났다가

fixme:storage:create_storagefile Storage share mode not implemented.

라는 로그가 출력되고 진행되지 않는다.


검색해보니 해당 wine 엔진의 문제니 업데이트 하라고......

답이 없어 보이지만 해결방법은 간단하다.


1. 처음 다운받았던 Winery 앱에서 최신 버젼의 엔진을 추가 설치해준다.

2. .app/Wineskin 에서 엔진을 변경해 준다.

Advanced -> 상단 탭의 Tools -> 우측 4번째에 Change Engine Used ->

새로 설치한 엔진(나의 경우엔 WS9Wine1.7.5)을 선택 후 OK




3. 다시 Winetricks 메뉴로 가서 msxml3 을 설치한다.

다행히 이번엔 잘 된다.

설치를 진행해 주고 끝나면 wmp9 도 설치해 주면 된다.


4. 이대로 카카오톡을 실행하면 크래쉬리포트 앱이 뜬다. 엔진을 다시 1.6X 로 바꿔주자.

이 후 카카오톡이 아예 실행되지 않던데, 맥을 로그아웃 후 다시 로그인을 하니 실행이 잘 된다.

나만 그런 것 같기도 하고...



소리가 나긴 하는데 폰과는 다르게 뭔가 이상하다.

완벽히 작동하지는 않는 듯.....


설정 conf, key 만들기 등은

http://blog.iolate.kr/121

이 글 참고.


사실 난 우분투에서 만들었던 키 들을 그대로 가져왔기 때문에 잘 모르겠지만

크게 다르진 않을거다.

easy-rsa 의 경우도 구글링 해볼 것.



일단 설치는 간단하다.

brew install openvpn


mac ports 로도 되는 것 같지만 brew 가 훨씬 편하니 난 저것만 쓰겠음.


설치하고 나면 daemon 관련 작업을 하라고 하는데

sudo cp -fv /usr/local/opt/openvpn/*.plist /Library/LaunchDaemons

이것만 하고 그 뒤에 launchctl load 부분은 일단 스킵.


설정 파일가 위치할 폴더는 /usr/local/etc/openvpn/ 이다.

(사실 어디에 있든 상관은 없다.)


위에 링크한, 우분투에 openVPN 설치 글을 참고하여 키와 설정파일 들을 만들자.


그러고 나서 아까 brew 설치 후 시키는 대로 복사한 파일을 수정하자.

루트 권한이니 그냥 터미널로 수정을 추천. 잘 모르겠으면 복사해서 수정 후 다시 집어넣어 주면 된다.


<array>

    <string>/usr/local/opt/openvpn/sbin/openvpn</string>

    <string>--config</string>

    <string>/usr/local/etc/openvpn/openvpn.conf</string>

  </array>

빨간색으로 표시한 부분을 자신의 설정파일에 맞게 바꿔주자.

나의 경우엔 server.conf


만약 디렉토리 자체를 다른 곳에서 시작한 경우 앞부분 경로를 맞게 수정해주고

밑에 WatchPaths 와 WorkingDirectory의 경로도 바꿔주면 된다.


그리고 저장.


데몬을 로드하기 전에 문제가 있나 확인하기 위해 직접 실행해 본다.

나의 경우 설정 파일 경로 부터 key 권한 문제까지 여러 문제가 많았거든..;;ㅋㅋ


자신의 설정파일이 위치한 폴더로 이동 후( cd /usr/local/etc/openvpn/ )

sudo /usr/local/opt/openvpn/sbin/openvpn --config /usr/local/etc/openvpn/openvpn.conf


위에서 설정한 환경에 따라 당연히 인자는 적절히 수정해 줄 것.

실행 후 

Initialization Sequence Completed

라는 메세지가 나오면 성공이다.


인터럽트 걸고 나온 후에

sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.openvpn.plist 

를 실행해 주자.



이 후 연결해보면 연결은 잘 될텐데 클라이언트에서 인터넷이 안된다.

우분투에서의 iptables 같은 작업이 필요한 것.


그건 이렇게 하면 된다.


sudo sysctl -w net.inet.ip.fw.enable=1

sudo sysctl -w net.inet.ip.forwarding=1

sudo natd -interface en0

sudo ipfw add divert natd ip from any to any via en0


얘도 재부팅마다 해줘야 하는데,


https://forums.openvpn.net/topic11401.html


여기 들어가보면 저 스크립트를 데몬화 해주는 방법이 있다.

얼마전에 쓴(그리고 수정한)

Permanently Redirect (301)

글 이 후 상황.


안내 페이지를 서버가 아닌 웹호스팅에다 올려놨는데,

목, 금 8시 쯤 트래픽 경고 문자가 왔다..


초저가라 트래픽이 일 600MB 라지만 이때까지 한번도 이런 적이 없었고,

이럴 일도 없던 터라 원인은 당연히 블로그 이전 안내페이지.


하지만 정상적인 접근이라면, 50KB 남짓한 메인페이지로 인한 트래픽이 500MB 씩이나 쌓일리가 없다.


cafe24 에서 제공하는 모니터링 툴로 간략히 봤더니 블로그 몇 개 주소를 중국 아이피 수십 개로 수천번의 hit 이 기록되어 있었다..


결국 tistory 리퍼러부터의 문제는 망할 중국넘들...


목욜 날엔 급한대로 상위 5개 아이피에 대해 index 페이지를 노출하지 않는 걸로 손봤지만

이내 다른 아이피가 천번 넘게 들어오더라...


결국 .htaccess 를 이용해서 중국아이피들을 통째로 막았다.

아이피 정보를 포함한 htaccess 파일은 http://www.ip2location.com/free/visitor-blocker

여기서 얻을 수 있음

기본값이 allow 로 나오므로 중국 선택 후 deny 로 바꿔서 내려받자.


호스팅 사에 중국(해외) 접근을 차단해 달라 할 수도 있겠지만,

저 호스팅을 블로그 안내페이지로만 쓰는건 아니므로  그건 좀 곤란하겠더라.;;ㅋㅋ


내 아이피도 차단시키고 확인해보니 403 Forbidden 이 나온다.

이제 좀 괜찮을려나....

'Linux, Server, Web' 카테고리의 다른 글

[Ubuntu] php-apn 설치하기  (0) 2015.07.02
Apache2 userdir 모듈에서 php 작동안함 문제  (0) 2015.06.28
Permanently Redirect (301)  (0) 2013.09.28
Unix, Linux, BSD, 그리고 MacOS  (0) 2013.01.03
phpmyadmin 에러  (2) 2012.11.18

수정할 내용이 많아서 좀 많이 갈아엎었음.



If you are not Korean,

just read this

http://pastie.org/8372228


+

/var/mobile/Documents/com.apple.springboard.settings/RootSettings.plist

is just settings saved file.

so I think if find a way for enabling [ isInternalInstall], it will work without tweak.

but maybe, still need jailbreak.. :(


=================




6월 10일, iOS7 베타1 이 공개되고 8일 후인 6월 18일,

@hamzasood 란 사람이 iOS 내부를 건드려서 찾아냈다는 SpringBoard 내부 설정.

폴더 안 폴더, 애니메이션 속도 조절 등 다양한 옵션이 있으며 이를 동영상으로 찍어 보여주기까지 했다.

특이한 건 설정 앱 내에서가 아니라 볼륨 버튼으로 SpringBoard 위로 불러온다.


처음 사람들 반응은 긴가민가,

시뮬레이터라는 둥 뭐 이런저런 가정이 많이 나왔지만 그때마다 다양한 동영상으로 증명해 보였다.

며칠 후 트위터를 통해 어떻게 활성화하는지에 대해 알려줬으나 ( http://pastie.org/8067977 )

작동된다는 사람은 아무도 없다...

(관련 포스트들:

http://briansweet.me/blog/ios-7-internal-settings-thoughts-and-information/

http://forums.macrumors.com/showthread.php?t=1599198 

참고로 포럼글은 댓글이 4페이지 까지 있다.)



아이폰4를 iOS7 으로 올리기도 했고, 탈옥도 했으며 잠깐 이것저것 해보니

저게 존재한다는 건 분명해서(내부 파일이나 클래스 등) 나도 저걸 시도해봤다.


처음엔 저 pastie 글을 못 찾아서 나 혼자 이것저것 시도하면서 알아낸 게 꽤 있었는데 저 글 하나로 도로묵..ㅠㅠ

처음에 SpringBoard 에 트윅이 안돌아가는 줄로만 알고 있어서 이래저래 삽질을 했었다..


hamza sood 가 설명하는 활성화 방법을 해봤었으므로,

이것과 관련한 내용부터 쓰겠지만, 사실 이건 내부 설정 활성화 자체만을 원하는 사람에겐 필요없는 부분이고

이 부분 때문에 헷갈려 하는 사람도 있는 것 같아서 접어 놓겠음. ㅋ


삽질의 과정.. 정도이고 지금 좀 더 이해하고 싶으면 펼쳐볼 것...




https://vine.co/v/hgJuTKHp63U

요건 호출 하는 vine 동영상이고


http://pastie.org/8372228

요건 외국인들 용으로 써논 글..

인데 별 내용 없다.

지금 이 글을 상당히 수정한 마당에 저 글에도 오류가 있을 거고...


아, 내부 설정 활성화 방법은

deVbug 님이 HiddenSettings7 이란 트윅을 만들어서 개인 저장소로 배포중이니 그걸 사용하면 좋다.

얘는 컨트롤 센터에서 호출하는 방식. 오픈소스이기도 하고..


검색ㄱㄱ

'Mac, iOS' 카테고리의 다른 글

맥에서 카카오톡, 소리 나오게 하기  (1) 2013.11.15
Mac openVPN 서버 설치  (0) 2013.11.14
iOS7 아이폰4 반탈  (2) 2013.10.01
iOS7, 벡터 아이콘?  (3) 2013.09.22
Mac 내장 웹서버 활성화 하기 (웹 공유)  (1) 2013.09.05

0. 서론


(limera1n exploit 덕택에 모든 os 에서 반탈이 가능한) 아이폰4의 반탈툴이 나왔다.

이걸 부트룸 익스플로잇이라 하던가...?

이제 4가 지원 안 하는 os 가 생기면 이래저래 불편해질 것 같기도 하다..

펌웨어 추출부터가 안될테니...


여튼 opensn0w 라는 툴로 iOS7 에 올린 4를 반탈옥 할 수 있다.

아직 이런저런 문제가 많아서 직접 컴파일해서 써야하지만...


과정을 주욱 써봤는데..

마지막을 제하고는 devbug 님 과정을 따라간다.

내용이 좀 길어져서 나름 차례도 나눠봤고...


opensn0w의 주소는 https://github.com/winocm/opensn0w


구글 검색하면 LBBNetwork 것이 먼저 뜨지만 위가 원본인 것 같다.

하지만 맥에서 그대로 진행하기에는 문제가 많고 리눅스에서나 제대로 작동한다나....


devbug 님이 맥에서 작동하게 수정하셨으니 그걸 사용하자.

http://devbug.me/777


그리고 이건 맥에서 작동되기 전에 원래 작성하셨던 글.. 후반부 작업을 위해서 봐야 함

 http://devbug.me/775


지금부터는 내가 다시 정리한 글이다.


1. 탈옥툴 컴파일 + 탈옥


일단 뎁벅님이 친절히 diff 파일 뿐만 아니라 과정을 녹화해주셨다!!

그 영상의 내용 정리 + 내가 조금 수정 ㅋㅋ


$ mkdir ~/opensn0w-build

$ cd ~/opensn0w-build/

$ git clone https://github.com/winocm/opensn0w

+ devbug 님 블로그에 있는 opensn0w3.diff.zip 파일을 받아서 압축 해제 후 ~/opensn0w-build/opensn0w/ 에 넣어준다.

$ cd opensn0w

$ patch -p1 < opensn0w3.diff

...

$ chmod +x ./autogen.sh

$ ./autogen.sh

+ 혹시 여기서 에러나면 automake 등을 설치해줘야 한다.

homebrew 가 설치되어 있으면 $ brew install automake 하면 됨.

homebrew 없으면 설치하든지 뭐 알아서... 난 brew를 설치해놨었기 땜에 brew update 정도만 해주고 진행했음

...

$ ./configure --prefix="/Users/사용자명/opensn0w-build/"

...

$ make install

...


여기까지 별 에러없이 왔으면 ~/opensn0w-build/ 폴더 안에 이것저것 많이 생겨있다.

아이폰4 를 iOS7 으로 올리고(7.0, 7.0.2 상관 없다) dfu 모드로 진입 시킨다.


$ cd ..

$ sudo ./bin/opensn0w_cli -p ./bundles/iPhone3,1_7.0_11A465.plist

...


기다리면 탈옥 끝~

반탈이니 재부팅시에도 마지막 작업만 해주면 된다.

국내 출시 아이폰4 가 아니라면 bundles 폴더 안에 다른 기종 plist 도 있으니 그거 사용하면 됨.




2. SSH 설치


여기까지가 끝인 줄 알았는데 아직 많이 남았다..ㅠㅠ

http://devbug.me/775  이 글 뒷 부분을 따라가야 한다.


dev team에서 예전부터 배포해오던 SSH Bundle

이 링크 하단 부분에 "SSH bundle v2" 를 다운로드,


http://msftguy.blogspot.kr/2012/01/aut ··· and.html

이 링크에서는 "runnable JAR archive" 를 다운로드.


폰을 dfu 모드로 진입시키고 jar 파일을 실행하면 얘가 이것저것 한다.

끝나면 localhost:2022 로 ssh 접속이 가능함.

mount.sh 도 제공하는 것 같지만 잘 모르겠으니 그냥 devbug 님 하시는대로 따라갔다..ㅋㅋ


Mac $ ssh root@localhost -p 2022

Password: alpine

iPhone # mount_hfs /dev/disk0s1s1 /mnt1

(램디스크 작업이 뭔진 모르겠지만 쉘이 좀 다르다.. 걍 하라는대로 하자 ㅋㅋ)

+ 위에서 받은 SSH2_bundle.tgz 파일을 /mnt1/ 에 전송

+ SSH2_bundle.tgz 을 컴퓨터에서 압축 푼 후 bin 아래의 gzip, bzip2, tar 3개를 아이폰의 /bin/ 에 전송

# cd /mnt1

# tar xzf SSH2_bundle.tgz


그리고 마지막으로 /mnt1/etc/fstab 파일 수정.


/dev/disk0s1s1 / hfs rw 0 1

/dev/disk0s1s2 /private/var hfs rw 0 2


요렇게 바꿔주면 된다.


# kill 1

+ 실행한 jar 종료, 아이폰 dfu 진입 후 위 탈옥 작업 마지막 부분을 해주면 부팅 된다.




3. 탈옥 마무리(dpkg, apt)


이 부분부터는 devbug 님이 제대로 안 적어두시기도 했고, 방법이 다르다.

devbug 님의 경우 패키지들 다운그레이드를 해야한다고 하셨는데 난 그런거 안했음;;;ㅋㅋ


dpkg와 apt 등이 제대로 작동하지 않을텐데,

그 이유는 2번 ssh  설치에서 /private/var/ 부분을 마운트 해주지 않고 압축을 해제해서

해당 부분의 파일이 제대로 복사되지 않아서 생기는 문제이다.

나도 나중에 알았는데.. 위에서 마운트 해주고 압축풀면 되겠지만 난 이미 끝났으므로 따로 붙여넣었다.

아마 mount.sh 스크립트를 사용하면 둘다 마운트 될 것이고 그 후에 압축을 풀면 되겠지?


여튼 이걸 따라왔으면 SSH2_bundle.tgz 압축 푼 파일들에서 /private/var/ 안에 있는 파일들을 아이폰의 /var/ 로 넣어주면 된다.

참고로 폴더채로 붙여넣으면 안된다.

없는 폴더이거나 빈폴더면 상관없지만 폴더에 내용물이 있으면 내용물만 따로 복사해주자.


이 후 dpkg, apt 등이 "거의" 잘 작동한다.

하지만 설치하다 보면 firmware 필드 부분 때문에 막힌다.


/var/lib/dpkg/status 파일을 수정,


Package: firmware

Essential: yes

Status: install ok installed

Priority: required

Section: System

Installed-Size: 0

Architecture: iphoneos-arm

Version: 7.0.2

Description: almost impressive Apple frameworks

Tag: role::cydia

Name: iOS Firmware


이걸 적당히 위화감 없이 잘 넣어준다.

아직까지도 "거의" 잘 작동한다. ㅋㅋ

마지막으로


# apt-get update

# apt-get install cydia

# apt-get update


여기까지 하면 끝.


cydia 는 어차피 실행되지 않지만 깔아주는 이유는 소스 때문에..

설치하지 않으면 몇몇 패키지들을 못 찾는다..

cydia source 패키지가 따로 있는 걸로 아는데 이것만 따로 설치해줘도 될 것 같다.

cydia 또한 직접 수정하면 실행 시킬 수 있는 것 같다. devbug 님은 하셨고...


cydia 는 실행이 안되지만 ifile 은 잘 된다.

참고로 cydia, iFile 등 앱 설치 후 아이콘이 나타나지 않는데 uicache 도 안먹는다.

devbug 님이 쓰셨듯이, /var/mobile/Library/Cache/ 폴더 날리고 재부팅+탈옥 작업을 해주면 나타난다.




4. 소감(?)


UIKit, SpringBoard 에 트윅이 작동하지 않는건 알고 있었지만

cycript 의 작동 여부와 SimulateTouch 정도를 테스트 해볼려고 탈옥을 진행해 봤다.

결론은 시간 낭비.


cycript 는 Segmentation fault: 11 을 내뱉으며 안되고

SpringBoard, UIKit 뿐만 아니라 backboardd 에도 트윅이 안 붙는다.

고로 내가 만든 트윅 중에선 테스트 해볼 수 있는게 없음...ㅋㅋ


SpringBoard, backboardd 에 후킹된다.

UIKit 으로 다 붙이는건 확인 안해봄.


나 혼자 쓰는 것 중 특정 앱에만 붙어서 돌아가는건 잘된다.

단지 /var/mobile/Library/Keyboard/ 가 sandbox 를 벗어날 수 있는 폴더라 해서 사용했었는데,

파일을 읽어오지 못한다. 탈옥 툴의 문제인지 iOS7 의 변경사항인지는 잘 모르겠지만..

내 착각이였음ㅋ 잘됨ㅋ

블로그 주소를 바꾸면서

기존 주소를 새 주소로 리다이렉트 시켜놨는데 리퍼러에 기존 주소가 계속 찍히는 문제가 있었다..



요련 식으로 말이지....


어떻게 해결하나 했는데 redirect 방식을 301 로 바꿔주면 된다고 함.


기존에는 apache2 설정을 통해서


<VirtualHost *:80>

        ServerName blog.ghj.kr

        Redirect / http://blog.iolate.kr/

</VirtualHost>


요런 식으로 해놨는데 이 경우 302가 기본값이고


<VirtualHost *:80>

        ServerName blog.ghj.kr

        Redirect 301 / http://blog.iolate.kr/

</VirtualHost>


이렇게 301 redirect 로 바꿔주면 된다.


302 는 임시고 301 은 영구적인 redirect 라나 뭐라나...

근데 301 대신 302 를 워낙 많이 써서 검색엔진에서도 302를 301로 인식하고 주소를 바꿔준다고 한다.

그때도 301, 302 에 대해 검색해보고 결론은 저대로 놔두면 된다 였는데 다시 검색하니 왜 다른건지 모르겠다.


php 에서는 이런 식으로 넘기면 된다고 함.

(근데 IE 6~8 에서 500 에러 난다. 쓰지 말자 ㅋ)

<?

  header (‘HTTP/1.1 301 Moved Permanently’);

  header (‘Location: newurl’);

?>



저 리퍼러들이 사라질지 아닐지는 좀 더 지켜봐야 겠지만.


안사라진다.. 젠장...


일단 사파리, 크롬 등 웹킷 기반에서는 리다이렉트시 전부 리퍼러를 없앤 채로 보내주는 것 같고

IE 도 6 제외하고는 리퍼러를 다 제거하고 리다이렉트 해주는 듯 하다.


리퍼러가 브라우저가 설정해서 보내주는 거라 브라우저를 많이 타는 것 같은데...

도대체 범인을 모르겠다... IE6 을 아직까지 쓰는 사람은 거의 없을테고.. 문제의 다른 브라우저가 있다는 건데...


여튼 좀 짜증나서 이전 안내페이지를 만들었다.

많이 엉성하지만, 나름 깔끔하고 괜찮다고 생각 중....ㅋㅋ


추가로 .htaccess 파일을


RewriteEngine On

RewriteRule . index.html [L]


이렇게 설정함으로써 주소 뒤에 어떤 문자열이 있든 index 페이지로 오게 해놨다.

참고로 apache2 의 redirect 를 사용하지 않은 이유는 혹시나 검색엔진이 이 안내페이지로 주소 이전한 걸로 오해할까봐...


뒷 문자열을 받아서 그대로 새 주소를 다시 보여주는 것도 가능하지만,

그렇게 하면 또 리퍼러 리스트에 옛날 주소가 잔뜩 쌓일 것 같아서 관뒀다..


이번에도 리퍼러가 엄청 쌓인다면 포기하고 뒷 문자열 붙여서 주소 만들어줄 생각..

+ 로그 저장해서 도대체 어디서, 어느 브라우저가 범인인지도 확인해 봐야겠다.


일단은 귀찮으니 생략ㅋ


원인은 중국..

뒷 이야기는 

특정 국가(중국!!) 차단하기

여기서 계속...

'Linux, Server, Web' 카테고리의 다른 글

Apache2 userdir 모듈에서 php 작동안함 문제  (0) 2015.06.28
특정 국가(중국!!) 차단하기  (0) 2013.10.19
Unix, Linux, BSD, 그리고 MacOS  (0) 2013.01.03
phpmyadmin 에러  (2) 2012.11.18
사용해 본 VPS 비교  (2) 2012.11.14

iOS7 벡터 아이콘 소문의 시작은 ZDNet Korea의 

iOS7, 살아 움직이는 시계 앱의 비밀

라는 기사..


저게 시작인지 아닌지는 잘 모르겠지만,

iOS7 부터 아이콘이 벡터라는 말이 계속 보인다.

현재 디자인도 벡터에 좀 더 적합하다나 뭐라나...


신기한건 이 논쟁은 한국에만 있다.

영어로 검색하면 아이콘이 벡터로 바뀌느니 마니 하는 내용은 전혀 없음..


시계를 돌리기 위해서 벡터로 바꾼다는 소리가 너무 어이가 없어서 이 글을 써 본다.


우선 본론으로 가기 전에 저 기사에서 기자가 도대체 어떻게 알아낸 건지 이해할 수 없는 부분.


앱 아이콘의 테두리를 자동으로 둥글게 깎아 보여주는 처리 방식도 비트맵에서 벡터 방식으로 바뀐 것으로 알려졌다.


솔직히 자세히 모르겠고 알아볼 생각도 없지만

아마 마스크 이미지를 씌우고 테두리는 imageView layer 에서 둥글게 깍을 것이다.

iOS7 에서도 icon 을 보여주기 위해서 image view 를 이용하므로 딱히 달라질 부분은 없을 듯.

즉 비트맵인지 벡터인진 모르겠고 어차피 원래부터 cpu 연산 처리로 테두리를 깍아 왔다.

저런 내부적인 내용을 이런 기사나 쓰는 기자가 어떻게 알았는지 의문.. 그냥 지레짐작인건가...



여튼 본론으로 돌아와서, 말도 안되는 소리의 시작...


iOS7 시계 앱 아이콘의 바늘은 시시각각 움직인다. 이를 비트맵으로 처리하려 했다면 모든 시계바늘의 위치를 고려한 '경우의수'만큼 많은 아이콘 이미지가 필요하다. 실제 그런 식으로 처리됐던 iOS 앱 아이콘이 바로 '캘린더'다. iOS 캘린더 앱은 과거에도 7가지 '요일'과 31가지 '일자'를 실제 시간에 맞춰 보여줬다. 

 

캘린더 앱은 많아야 217가지 조합이지만



캘린더 앱은 이런 아이콘을 가지고 있다. 참고로 실제로 iOS6의 캘린더 앱에서 추출한 파일이다.

저 아이콘 위에 날짜 레이블만 입혀주는 형태.

217가지 각각 이미지를 다 만드는 짓은 아무도 하지 않는다..


마찬가지로 시계도 실시간으로 시간을 보여주기 위해서 비트맵을 사용하면 엄청난 경우의 수가 나오기 때문에 벡터로의 전환을 한다고 하는데 그럴 필요가 전혀 없다. (iOS6 상에서도 시간을 실시간으로 움직여주는 트윅이 있기도 했고.)


컴퓨터 상에서 시간을 움직이는 방법도 집에 있는 시계와 다를 바가 전혀 없다.

시계 바탕에, 시침, 분침, 초침을 얹이고, 가운데 축을 기준으로 계속해서 돌려주면 된다.

비트맵 이미지로도 충분히 가능한 작업.

그러니 이걸 위해서 벡터로의 전환이 필요한게 아니다.


그리고 저 기사 때문에 많은 사람들이 벡터 아이콘이 도입되는 걸로 알고 있다.

그래서

http://www.clien.net/cs2/bbs/board.php?bo_table=cm_iphonien&wr_id=1350230

이런식의 플라시보 효과(?) 를 경험한 것 같은 사람들의 글도 올라오고 있고...


나 또한 워낙 많은 사람들이 벡터, 벡터 해서 기본 내장 앱이라도 벡터를 쓰는지 의심했었다.

그래서 방금 iOS7 펌웨어를 뜯어봤는데,



 .....여전히 앱스토어를 비롯한 내장 앱들은 해상도에 맞춰서 .png 파일을 가지고 있다.

즉 기본 내장 앱들도 여전히 비트맵 방식의 아이콘을 사용하고 있다.



iOS7 시계의 경우 썸네일용 이미지 말고는 이미지를 찾아볼 수 없어서 SpringBoard 를 뜯어봤다.



이 클래스로 시계 아이콘을 그려준다.

cpu 연산으로 시계 앱을 그려주는건 맞는데... CALayer 는 비트맵 이미지를 그려주는 클래스이다.

이런 경우를 벡터로 부르는지, 비트맵으로 부르는지 솔직히 잘 모르겠다.

선, 두께 등의 정보로 레이어를 만들어 주는거니 벡터가 맞는건가...


솔직히 난 비트맵이고 벡터고 정확히 어떻게 구분하는건지 잘 모르겠다.

벡터 데이터로 결과적으로 비트맵을 표현하는 거니까....

하지만 이걸 벡터라 부른다 할지라도 난 이것만으로 애플이 아이콘을 벡터로 전환하려 한다고 하기엔 많이 무리가 따른다고 생각한다.

고작 시계 앱 하나니까...


만약 애플이 정말로 벡터 데이터만을 가지고 앱 아이콘을 표현하는 걸 지원한다고 해도 그건 아마 해상도 문제보다는

디바이스 별로 다른 해상도에 맞춰 다 만들면서 용량이 증가하는 문제를 해결하기 위해 도입할꺼라 생각하는데,

이것도 가능성이 낮다고 생각한다.

생각해보니 아이콘만은 용량 차지도 얼마 안한다.. 모든 리소스의 벡터화를 생각했는데

이건 말도 안되기도 하고, 딱히 애플의 지원이 필요없기도 하고....

 

여튼 그래서 기기 별로 리소스를 따로 받는 방법을 지원하는게 훨씬 맞는 방법 같거든...


비트맵이고 벡터고 이건 잘 모르겠고,

여튼 이 글을 통해 내가 말하고 싶은건


1. 비트맵이라고 해서 캘린더나 시계를 표현하기 위해 수백 수천 가지의 이미지가 필요한 건 아니다

2. 애플의 내장 앱들은 여전히 비트맵 이미지를 사용한다.



ps, 비트맵, 벡터 관련해서는 잘 모르니 헛소리가 있을 수도 있음. 고로 태클 환영합니다~ ㅋ

예전엔 시스템 환경설정 - 공유 에 웹 공유가 있었는데,

Lion 부터인지 Mountain Lion 부터인지 없어졌다.


사용자 계정에 Sites 폴더는 그대로인데 말야..



활성화 방법은 간단,

sudo apachectl start


중지는

sudo apachectl stop 

이다.


활성화만 복잡해졌지 그 외 나머지는 이전과 같음.

활성화를 편하게해주는 앱도 있는 듯...?



================

2016.05.02


El capitan 이후 바뀐 설정으로 인해 데몬이 실행이 안된다.


com.apple.xpc.launchd[1]: (org.apache.httpd[23641]) Service exited with abnormal code: 1

콘솔을 보면 이렇게 뜨고,

$ sudo apachectl

이라고만 입력해보면 
AH00526: Syntax error on line 20 of /private/etc/apache2/extra/httpd-mpm.conf:
Invalid command 'LockFile', perhaps misspelled or defined by a module not included in the server configuration

이렇게 configtest 결과가 나온다.

/etc/apache2/extra 경로에서,


$ sudo mv httpd-mpm.conf httpd-mpm.conf~elcapitan

$ sudo mv httpd-mpm.conf~orig httpd-mpm.conf


요렇게 해주면 됨.


참고:

https://discussions.apple.com/thread/6602475?tstart=0

http://apple.stackexchange.com/questions/211015/el-capitan-apache-error-message-ah00526

'Mac, iOS' 카테고리의 다른 글

iOS7 아이폰4 반탈  (2) 2013.10.01
iOS7, 벡터 아이콘?  (3) 2013.09.22
[AppStore, 순정] OpenVPN on iOS  (0) 2013.08.14
iOS6, 초기화 하지 않고 iCloud 에서 복원하기 [탈옥]  (1) 2013.02.14
dpkg-scanpackages 문제...  (0) 2013.02.06

클리앙을 돌아다니다가 크롬캐스트와 같은 기능을 하는,

iOS 용 AirPlay 리시버, 중국발 iPush 란걸 보게되었다.





AirPlay 란거 설명은 귀찮고 원래는 AppleTV 에서 지원하는 기능들인데

간단히 말하자면 iOS 의 음악, 동영상 등을 무선으로 TV 를 통해 볼 수 있는 기술이다.

$23 정도에 이런 잡동사니를 좋아하니 일단 질렀음.


그리고 어제 도착하였다. 배송엔 열흘정도 걸린 듯?


구성품은 아래와 같다.

iPush 본체, 중국어와 영어 혼용된 설명서, HDMI 연장 케이블, 마이크로5핀 케이블.

전원의 경우 HDMI 전원을 뽑아오는 줄 알았는데 별도로 usb 전원을 공급해 줘야 한다.

보통 HDMI 지원 TV는 USB 지원도 같이 하므로 거기에 꼽아줘도 무방하다.




전원을 넣고 잠시 기다리면 Wifi 네트워크에 iPush-~~~~ 로 AP 가 생성된다.

TV 를 켤 경우 아래와 같은 화면을 볼 수 있음.




해당 와이파이에 접속, 비밀번호는 12345678

게이트웨이인 192.168.43.1 로 들어가면 간단한 설정페이지가 나오게 된다.

언어는 중국어인데 영어로 바꿀 수 있으니 언어부터 바꾸자.


iPush 를 기존의 네트워크에 연결시킬 수도 있다.

다시 자체 AP 모드를 돌리려면 기기에 버튼 하나를 5초 정도 누르고 있으면 되고(TV 에서 팁으로 나옴)

혹은 아예 전원을 껏다켜면 무조건 자체 AP 모드로 시작한다. AP 비밀번호 저장 기능도 없는지 매번 패스워드를 쳐줘야 하는 것도 흠...


영상 설정의 경우 화면 사이즈 모드를 Full screen, Contrain, Full size 3가지 모드 중 선택할 수 있지만

결국 Full Screen 모드만 쓰게 되는 것 같고,

그 밑에 RGB 미세 조정 처럼 수평/수직 크기를 조금씩 조절할 수 있는 기능이 있는데

전체적으로 너무 부실하고 불편하다...


펌웨어 업데이트 기능이 있던데 저 부분 오픈하면 알아서 어떻게 해보련만....ㅠㅠ





여차저차 연결이 되고 나서 기대감을 갖고 이것저것 해봤는데, 결과는 대 실망.


음악 AirPlay 자체는 잘 되고 재생중인 앨범아트, 제목, 가수, 진행상황 등을 보여준다.

하지만 한글이 깨짐...


미러링의 경우엔 안됨. 처음에 미러링 메뉴가 뜨는데 연결 안되고 곧 미러링 메뉴 자체도 사라진다.

미러링 땜에 산건데 안되서 여기서 살짝 짜증이....ㅠㅠ


영상의 경우 AirPlay 라는게 영상 자체를 보내서 AirPlay 리시버에서 디코딩, 재생하는 방식이라(음악도 마찬가지)

iOS 가 원래 재생 가능한 동영상만 AirPlay 를 통해 볼 수 있다고 생각하면 된다.

고로 AVPlayer 등을 통한 무인코딩 동영상은 재생이 되지 않고, 자막이 나오지 않으며, 배속 조정도 안된다.

AirVideo 와 같이 컴퓨터에서 실시간 인코딩+영상에 자막을 입혀서 기기에서 수신, 이를 AirPlay 로 볼 경우엔 잘됨.(난 안해봤지만 잘 된다더라.)

이건 원래 AirPlay 가 그런거라서 어쩔 수 없다지만.. 얘가 문제인지 원래 영상 화질이 낮은건지 화질이 많이 안좋더라..ㅠㅠ

또한 iPhone5 동영상도 720p 제한 때문에 재생이 안된다고 하는 것 같다.


마지막으로 사진 슬라이드.

사진을 내가 보면서 이걸 같이 TV 로 보는건 잘된다. 그러니까.. 사진앱만 미러링 비슷하게 된다고 보면 됨.

하지만 사진 앱에서의 슬라이드쇼는 안된다....ㅠㅠ



처음엔 집에 있는 큰 TV에 연결했었는데 해상도 문제인지 "이 모드는 지원하지 않습니다." 라는 화면만 나오며 사용이 불가능 했다..ㅠㅠ

iPush 수령 다음날인 오늘, 21인치 모니터에(이것도 TV라고 해야하나..) 연결하니 제대로 나오긴 하던데....

위의 문제들을 확인하며 상당히 불만.....

미러링 안되는게 정말 마음에 안든다...


어제 다시 클리앙 글을 검색하다가 조금 업그레이드된 버젼이 있다는걸 발견하고 그것도 주문해버렸는데

걔는 어떨지 모르겠다... 큰 차이 없을 것 같은데... 그럼 정말 절망...ㅠㅠㅠ


지금 있는건 HDMI v1.3 에 720p 까지 지원, 가격은 $23 쯤이였던가..?

새로 주문한건 $30에 HDMI v1.4, 1080p 까지 지원이라고 소개는 한다.(솔직히 좀 못미덥지만.)

얘도 10일 정도 있으면 오겠지??

제발 얘는 미러링이 됐으면 좋겠다..ㅠㅠ



혹시나 이거 살 생각 있는 사람은 그냥 포기하는거 추천..

중국에서 좀 괜찮은거 만들었나 싶었는데 영 엉망이다.....ㅠㅠㅠ

+ Recent posts