본문 바로가기

프로그래밍/기본기

안드로이드 쉘스크립트 unknown suffix 뜨는 경우

pc에서 작성 후 스크립트를 안드로이드에 넣고 sh로 실행하면 

명령어의 앞글자가 삭제되어 인식이 안되는 경우가 있다.

 

파일 전송간에 문제가 생긴다는 글을 읽어 echo로 텍스트 파일을 작성하니 문제없이 돌아갔다.

 

echo "#!/system/bin/sh" > dark3.txt
echo "while :" >> dark3.txt
echo "do" >> dark3.txt
echo "input swipe 1500 338 1500 339" >> dark3.txt
echo "echo \"touch add btn\" ">> dark3.txt
echo "sleep 1" >> dark3.txt
echo "input swipe 1170 1630 1170 1631" >> dark3.txt
echo "echo \"viewing ad\"" >> dark3.txt
echo "sleep 120" >> dark3.txt
echo "input keyevent 4" >> dark3.txt
echo "echo \"touch back btn ad\"" >> dark3.txt
echo "sleep 3" >> dark3.txt
echo "input swipe 10 10 10 11" >> dark3.txt
echo "echo \"touch any screen\"" >> dark3.txt
echo "sleep 3" >> dark3.txt
echo "done" >> dark3.txt

 

#

input swipe 구문의 좌표는 x y x y+1 형태입니다.

좌표는 직접 개발자모드 설정해서 좌표출력 설정하셔서

직접 좌표를 구해서 넣어야 합니다.

input tap로 할 경우 터치가 잘 안되는 경우가 많아 swipe로 터치합니다.

 

#

이런식으로 echo로 넣어주면 문제없이 스크립트가 실행된다.

위 스크립트는 자동으로 광고를 봐주는 스크립트로써

 

#

input tap를 사용하지 않고 input swipe를 사용한 이유는 input tap이 제대로 동작하지 않을 확률이 높기 때문이다.

동작하지 않는 앱도 있으므로 스와이프를 사용해서 진짜 사람이 터치하는 느낌으로 매크로를 작성했다.

 

#

input keyevent 4 는 back 버튼을 누르라는 의미이며 다른 키 이벤트는 아래와 같다.

0 -->  "KEYCODE_UNKNOWN" 
1 -->  "KEYCODE_MENU" 
2 -->  "KEYCODE_SOFT_RIGHT" 
3 -->  "KEYCODE_HOME" 
4 -->  "KEYCODE_BACK" 
5 -->  "KEYCODE_CALL" 
6 -->  "KEYCODE_ENDCALL" 
7 -->  "KEYCODE_0" 
8 -->  "KEYCODE_1" 
9 -->  "KEYCODE_2" 
10 -->  "KEYCODE_3" 
11 -->  "KEYCODE_4" 
12 -->  "KEYCODE_5" 
13 -->  "KEYCODE_6" 
14 -->  "KEYCODE_7" 
15 -->  "KEYCODE_8" 
16 -->  "KEYCODE_9" 
17 -->  "KEYCODE_STAR" 
18 -->  "KEYCODE_POUND" 
19 -->  "KEYCODE_DPAD_UP" 
20 -->  "KEYCODE_DPAD_DOWN" 
21 -->  "KEYCODE_DPAD_LEFT" 
22 -->  "KEYCODE_DPAD_RIGHT" 
23 -->  "KEYCODE_DPAD_CENTER" 
24 -->  "KEYCODE_VOLUME_UP" 
25 -->  "KEYCODE_VOLUME_DOWN" 
26 -->  "KEYCODE_POWER" 
27 -->  "KEYCODE_CAMERA" 
28 -->  "KEYCODE_CLEAR" 
29 -->  "KEYCODE_A" 
30 -->  "KEYCODE_B" 
31 -->  "KEYCODE_C" 
32 -->  "KEYCODE_D" 
33 -->  "KEYCODE_E" 
34 -->  "KEYCODE_F" 
35 -->  "KEYCODE_G" 
36 -->  "KEYCODE_H" 
37 -->  "KEYCODE_I" 
38 -->  "KEYCODE_J" 
39 -->  "KEYCODE_K" 
40 -->  "KEYCODE_L" 
41 -->  "KEYCODE_M" 
42 -->  "KEYCODE_N" 
43 -->  "KEYCODE_O" 
44 -->  "KEYCODE_P" 
45 -->  "KEYCODE_Q" 
46 -->  "KEYCODE_R" 
47 -->  "KEYCODE_S" 
48 -->  "KEYCODE_T" 
49 -->  "KEYCODE_U" 
50 -->  "KEYCODE_V" 
51 -->  "KEYCODE_W" 
52 -->  "KEYCODE_X" 
53 -->  "KEYCODE_Y" 
54 -->  "KEYCODE_Z" 
55 -->  "KEYCODE_COMMA" 
56 -->  "KEYCODE_PERIOD" 
57 -->  "KEYCODE_ALT_LEFT" 
58 -->  "KEYCODE_ALT_RIGHT" 
59 -->  "KEYCODE_SHIFT_LEFT" 
60 -->  "KEYCODE_SHIFT_RIGHT" 
61 -->  "KEYCODE_TAB" 
62 -->  "KEYCODE_SPACE" 
63 -->  "KEYCODE_SYM" 
64 -->  "KEYCODE_EXPLORER" 
65 -->  "KEYCODE_ENVELOPE" 
66 -->  "KEYCODE_ENTER" 
67 -->  "KEYCODE_DEL" 
68 -->  "KEYCODE_GRAVE" 
69 -->  "KEYCODE_MINUS" 
70 -->  "KEYCODE_EQUALS" 
71 -->  "KEYCODE_LEFT_BRACKET" 
72 -->  "KEYCODE_RIGHT_BRACKET" 
73 -->  "KEYCODE_BACKSLASH" 
74 -->  "KEYCODE_SEMICOLON" 
75 -->  "KEYCODE_APOSTROPHE" 
76 -->  "KEYCODE_SLASH" 
77 -->  "KEYCODE_AT" 
78 -->  "KEYCODE_NUM" 
79 -->  "KEYCODE_HEADSETHOOK" 
80 -->  "KEYCODE_FOCUS" 
81 -->  "KEYCODE_PLUS" 
82 -->  "KEYCODE_MENU" 
83 -->  "KEYCODE_NOTIFICATION" 
84 -->  "KEYCODE_SEARCH" 
85 -->  "TAG_LAST_KEYCODE"

echo는 쌍따옴표 안에 출력할 문구를 적어넣는데 그 안에 다시 echo를 넣으려면 "안에"가 하나 더 들어가야 한다.

그럴때는 \"로 쌍따옴표를 입력한다.

 

또한 >는 파일을 처음부터 작성하라는 r의 의미이고

>>는 파일을 이어서 작성하라는 a의 의미이며 기본적으로 줄바꿈이 된다.