사람들은 안드로이드를 adb라는 디버그를 이용해서 접근하는 것 같다. 난 솔직히 안드로이드 SDK를 깔고 싶은 생각이 없어서 무조건 안드로이드 자체에서 모든 것이 해결될 수 있도록 지향하고 있는데, 그것을 가능하게 해주는 것이 바로 Android 자체에 telnet 데몬을 올리는 일이다. Busybox를 깔면 아주 쉽게 telnet 데몬이 올라간다. 다만, telnetd의 실행시에 기본으로 깔린 sh는 칼라도 보여주지 않고 심심하기 그지 없다. 따라서, 보다 좋은 환경구축을 위해서 loging shell을 지정해줄 필요가 있다. Ubuntu에서 man page를 보면 telnet의 -l 옵션을 아래와 같이 정의하고 있다. 당근, 안드로이드에는 default가 없으니 설정해 주는 것지 맞지 않을까?

-L loginprg  This option may be used to specify a different login program.  By default, /usr/lib/telnetlogin is used.




 1. su로 root 권한 획득
 2. busybox 안에 telnetd 실행 : "telnetd -l  /system/xbin/bash"

 telnetd 와 bash와 같은 shell은 어디에 있는지 알아서 설정을 하자. 내 경우는 터미널 에뮬레이터로 실행을 하여 루트쉘에서 위의 명령어를 실행하여 telnetd를 돌린후 일반 pc에서 telnet으로 안드로이드 장비에 접속하여 하고싶은 짓을 하면서 논다. ^^

 

Connecting to 192.168.10.100:23...

Connection established.

Escape character is '^@]'.


 

/ # whoami

whoami: unknown uid 0
/ # echo $PATH 

/system/xbin:/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin


 보면 바로 root로 접근하고 있음을 알수 있다. 인증 절차 같은 번거로운(?) 짓은 없다. 아마, busybox의 telnetd는 그런 것을 다 생략하게 되어 있는 듯. 

  그리고 나서 잘 봐야 하는 것이 바로 PATH 부분이다. 안드로이드에 기본적으로 깔려 있는 애들이 toolbox인 것 같은데, 얘네들은 명령어가 아주 제한적이다. 그래서 busybox를 깔았는데.. 덮어서 깔았다면 별 문제가 없겠지만, 나처럼 분리해서 깔았다면 busybox의 프로그램들이 toolbox의 프로그램보다 먼저 실행될 수 있도록 설정을 해주는 것이 중요하다. path를 toolbox의 /system/bin 보다 busybox의 /system/xbin이 빨리오게 설정한다.  내경우엔 에뮬레이터에서 이미 이렇게 설정이 되어 있다. telnetd를 띄울 상태의 path가 자동으로 도는 듯.. bash 쉘로 로그인 했다면 간단하게 아래의 명령어로 path 설정에 대해서 확인 해 볼 수 있다.

/ # echo $PATH
/system/xbin:/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin

 
 이렇게 붙이고 나서 system 폴더에 접근을 해서 수정하거나 지울려고 덤비면 readonly 상태임을 강조한다. 루트익스플로어에서는 read/write로 쉽게 설정을 바꿔줄 수 있지만, 수동으로 하고 있으니 이 부분은 아래 명령어로 수정해야 한다. mount 명령을 실행하면 현재 마운트 된 파티션들이 쏟아져 나오는 데 그중 system만 read/write로 remount를 시켜주면 된다. 

/system/app # rm DualClock.apk

rm: remove 'DualClock.apk'? y

rm: can't remove 'DualClock.apk': Read-only file system

/system/app # mount | grep system

/dev/block/stl9 on /system type rfs (ro,relatime,vfat,log_off,check=no,gid/uid/rwx,iocharset=utf8)


/system/app # mount -w -o remount /dev/block/stl9 /system


/system/app # mount | grep system

/dev/block/stl9 on /system type rfs (rw,relatime,vfat,llw,check=no,gid/uid/rwx,iocharset=utf8)


Posted by 4D :

 Wiki의 늦바람에 빠져서 왠만한 자료들과 메모 사항을 모두 Dokuwiki에 작성하여 저장하고 있다. (남들은 원노트나 에버노트를 많이 활용하던데, 내 생활 패턴안에서는 Dokuwiki로도 충분한 듯 하다.) 주로 윈도우나 맥 환경에서 작성을 하고 외부에서는 필요하면 아이폰이나 아이패트를 활용하여 검색을 하는데, 하나 불편한 것이 있다면 아이폰에서 Dokuwiki에 로그인하고 검색하는 창이 너무 작아 보기가 힘들고 불필요한 작업이 많아 번거롭다는 것이다. 그림으로 한번 볼까?

왼쪽의 그림이 사파리에서 본 내 Dokuwiki 화면이다.. 음.. 로그인은 어디있을까? 열심히 두손가락을 놀려야 한다. 그리고 아이디 치고 패스워드 치고.. 그리고 검색은 어디에 있을까?

처음에는 별 불편한 생각이 안들었는데, 한번씩 바쁜데, 손가락으로 늘리고 있으니 참 한심하다는 생각이 들었다. 그리고  제일 많이 하는 실수는 Dokuwiki 상에서 검색을 해야 하는데 위쪽에 구글에서 검색을 해서 Dokuwiki로 다시 접속하는 짓을 하는 경우이다.. 


 이것에 대한 아주 쉬운 대안은 템플릿을 모바일 전용으로 셋팅하는 것이다. 하지만, 이것은 글자가 커지는 대신에 전체적인 화면구성이 원래 보던 것들과 달라질 수 있다.  그래서 모바일 전용으로 만드는 것은 싫다. 나는 순정이 좋다. ^^

 
 그러면 어떻게 할 것인가?  차근차근 하나씩 해결을 해나가자.. 일단 로그인부터 쉽게 처리해보자. 


 작년에 아이폰을 처음 사고 Dokuwiki를 셋팅할 때 알게되었는데 Dokuwiki의 로그인을 자동화할 수 있는 링크가 있다. http header을 보니깐 암호화도 안하고 그냥 get방식으로 보내더라. 보안은 밥에 말아서 먹자. 

dokuwiki에 직접 로그인 하는 Url은 다음과 같다. 다시한번 강조하지만 보안은 밥말아 먹었다. 

 ht_tp://위키주소/doku.php?id=start&do=login&u=아이디&p=비번

 자 이제 아이폰에서 위의 주소를 치면 로그인된 WIKI가 뜰 것이다. 그리고 홈스크린에 등록하기 하면 홈스크린에 아이콘이 하나 생기고 그거 클릭하면 WIKI에 로그인된 화면이 바로 뜬다.



 음.. 한 일년은 이렇게 썼다.. 그땐 자료가 별로 없었던 때.. 이제 방대한 자료가 쌓이다 보니.. 검색이 중요해 졌다. 검색할려면 핀치해서 또 키워야 한다. 검색을 쉽게 할 수 있는 방법은 없을까?  10분만에 jQuery  mobile 를 이용하여 뚝딱 만들었다. ajax를 이용하여 로그인을 한다. 

 방식은 간단하다.    내가만든 페이지에서 검색어를 치고 GO하면   => ajax로 wiki로그인 => wiki로 search 파라미터 전달 => 검색된 wiki페이지 로딩

jQuery Mobile에서 form을 사용하게 되면 기본적으로 AJAX로 쿼리를 날린후 결과를 WebApp안에 Attach하는 방식으로 작동한다. 내 경우는 wiki 페이지로 화면이 바뀌어야 하니깐 form문 안에다가 꼭 data-ajax='false'의 파라미터를 써서 form의 전송시 페이지가 전환되도록 해야 한다. 

그리고.. 아이폰에서 apple-mobile-web-app-capable 속성을 줘서 화면상단의 주소줄과 아래의 버튼을 없애고. 아이콘의 이미지를 등록시켜서 홈스크린에 예쁘게 프로그램이 등록될 수 있게 한다. 

 자 그러면..  두둥~! 아래와 같다.. Mobile wiki for 4D의 디자인은 참.. 공돌이 티가 팍팍난다. jQuery Mobile 기본 테마다... 괜찮아~~ 나 혼자 쓸텐데뭐... 소스코드는... 밥말아 먹을 보안문제가 있어서 공개하면 좀 그렇다. 리플로 요청하면 드리지요~!

 약간의 보안규칙을 넣는다면, Header의 User-agent는 아이폰이나 아이패드만 받아주고, wiki 로그인 코드를 암호자체 암호화해서 넘겨주면 서버에서 암호화해서 다시 로그인 한다던지(물론, wiki 로그인할 때 보안을 밥말아 먹겠지만..) 뭐.. 그런식으로 강화하면 될듯.. 아직 안했다. 그래서 소스코드를 공개 못하겠다. 홍홍...

 막상 쓰니깐 맘에 든다.. 

 




  
 
 
Posted by 4D :


 거의 왠만한 물건들은 인터넷에서 구매를 하다보니 집에 택배박스가 막 쌓이는 것 같다. 보통 할머니 할아버지들이 폐지팔아 생활한다는 것 같아서 얘들은 얼마나 가치가 있을까? 하는 의문에서 직접 폐지를 고물상에다가 팔아봤다. 무려 2달동안 집에 오는 광고지, 우편물(개인정보는 그 부분만 찢어서 버렸다.) 그리고 택배 박스와 마트에서 물건을 담아서 오는 박스들까지 전부 모았다.. 그리고.. 뚜둥... 다음의 돈을 벌었다.. 노력대비해서 성과는 미비하다.. 이거 뭐 생활비에 보태겠나? ㅡ,.ㅡ;

 예전에 주택에 살때는 어마니가 신문지 모이면 재활용품에 내놓지 말고 근처 고물상에 가져다 주면 단돈 100원이라도 받는다고 내가 종종 가져다 주곤 했는데.. 그땐 돈받으면 찌질해 보일 것 같아 아저씨 그냥 하세요~ 하면서 줘버리곤 했는데... 팔아먹을 목적으로 모아보는 것은 이번이 첨인듯.. (솔직히, 이 앞에 한 두번 더 있다.. ㅋ~... 그땐 금속이 있어서 한 2만원은 받았을 듯.)

 고물상 가서 안 것이 종이는 돈이 안된다.. 비철금속(구리, 스뎅, 아연 등등)이 돈이 된다. 또한 헌 옷과 가방도 돈이 된다.. (이제 헌 옷을 재활용통에 넣지 말자.. 재활용통에 넣어도 불우한 이웃에게 나눠주는 것이 아니라. 지들이 분류해서 후진국에 다시 팔아 먹는다.. )  그런 의미에서 우리 아파트에서 모이는 재활용품(종이, 알루미늄캔, 유리병 => 다들 소주병, 맥주병 그냥 버리더라.. 이것도 모이면 돈이 제법 될 듯)을 모으면 돈이 제법 클 듯 하다.. 관리비 내역서에는 폐품판 내역은 없던데... 흠... 

 결론은.. 이 돈을 모아서 깔끔하게 카드하나 사기로 했다.  카트계의 벤츠.. 마그나 카트를 노리고 있다. 한 이마트에서 보니깐 3만원 하던데... 음.. 폐지를 1년치를 팔아야 카트 하나 사겠구나.. 헐.... 

 새 카트 사서 고물상 갈때 좀 편하게 갈라고.. @,.@ 지금은 고물상에 폐지팔러 갈려고 차가 움직인다.. 기름값이 더 들겠넹~! ㅋ 

 누가 보면 쓰레기지만, 생활에 작은 보탬이 될 수도 있지 않을까? ^^?

 

 

Posted by 4D :

Connected by DNS server, DNS service