매크로 커뮤니티

조회 수 6727 추천 0 댓글 10

Frep이 그닥 빛을 보지 못하는거 같아서... 아예 su권한 없이 ADB 도움 1회만 받고 터치이벤트를 발생시키는 기법을 알아 냈는데요.

그나저나 폰내에서 터치나 키 이벤트 최대 스피드가 얼마정도 되는지 궁금합니다.

도저히 일반 프로그램으론 /dev/input/event 즉 키나 터치스크린에 접근 권한을 부여 받지 못하여 연구한 결과

루팅없이 접근가능한 임시폴더내에서 프로그램이 동작할 경우 터치이벤트를 발생시키는게 가능함을 알았습니다.

 

몇 주간 이거만 붙들고 한숨만 쉬었네요;;;

고수 분들이 보고 응용해서 좋은 프로그램을 만들어 주셨으면 합니다.

 

대략적인 구조를 그림으로 그리면요

 

임시폴더 내 어플                                                            폰에서 직접 개발하여 계속 컴파일해서 바꿔갈 수 있는 소스

--------------------------------           통신 중           -----------------------------------

터치/키 이벤트 발생기 + Socket Server   <------------->   메크로 소스 + Socket Client

--------------------------------                                -----------------------------------

 

이런 구조로 되어 있습니다.

현재 거의 초 단위이상 되야 2회 터치도 겨우 될 것으로 보입니다

일단 머 폰에서 개발한 소스가 너무 느린거라 그럴지도 모르겠지만요ㅠㅠ

 

얼마나 세월이 걸릴지도  모르겠고... 이거만 몇 주째인지...

공유 메모리를 쓰는 기법은 아직 시도를 안해봤는데요. 머 해보다가 파일 디스크립션 공유가 어려워 포기

 

도저히 속도가 못 따라가면 갈아타서 공유 메모리에 담아 일괄처리를 하든

터치이벤트 발생기를 더 복잡하게 만들고 버퍼링 할 수 있게 만드려고 합니다.

 

Frep도 거의 똑같은 방법일거라 추정합니다. 

 

0.2초의 한계를 뚫고자 했지만 넘사벽인거 같은 느낌이 자꾸드는...

왜 프로그램 언어를 지원하지 않는지 이놈은 어케 노루팅에서도 되는걸까에서 착안...

벤치마킹 했습니다.

 

이 기세를 몰아 안드로이드에서 Autohotkey를 지원하게 만들고 싶지만

아무리 노력해도 1초에 한번 터치되는 불상사가 터질까봐... 못하겠네요

 

스크린샷도 찍어봐야하고 아직도 Fully Automatic까진 먼산입니다.

이건 게임메크로가 아니고 디바이스 제어프로그램이니... 악용만 안하면 되는건가

  

07/27 Critical 문제점

1. Foreground에서 돌게 될 경우 ADB의 도움은 실제 1회지만 ADB와의 연결이 끊어지는 순간 프로세스 강제종료로 인하여 기껏 켜둔 서버가 없어지는 것으로 보임 -> 현재 결론: 죽지 않는 프로세스 Frep은 어케 된 녀석이지?!

2. 현재 Background에서 영원히 가동 할 방법 고안 연구 중...

 

07/28

1. Background에서 가동할 방법 찾았습니다 2중 nohup 기법 통함

 

07/29

1. 최종 OS관련 업데이트 이후에도 Frep도 제 방법도 모두 잘 가동하는 것을 확인

--> 현재 특성 Socket통신도 배제하고 딜레이 없이 txt로 만든 스크립트에서 명령어를 읽어서

      최대로 찍을 수 있는 속도는 초당 30회 가량 됨

 

07/30

1. 더 연구한 결과 Sendevent 함수 또한 폰 내부에서 사용 가능함 너무 쉬워서 소스 공개하기로 결정 ^^

    노트4 최신 업데이트 기준

 

sendevent_vashTS.cpp

----------------------------------------------------------------------------

#include <stdlib.h> //system 함수가 내장된 라이브러리
#include <unistd.h> //usleep 함수가 내장된 라이브러리

int main()
{
    system("sendevent /dev/input/event2 3 57 0");
    system("sendevent /dev/input/event2 3 53 10"); //원하는 x좌표(10)
    system("sendevent /dev/input/event2 3 54 10"); //원하는 y좌표(10)
    system("sendevent /dev/input/event2 3 58 50"); //원하는 압력값(50)
    system("sendevent /dev/input/event2 1 330 1");
    system("sendevent /dev/input/event2 0 0 0");
    usleep(1000000); //쉬는 시간 1초(1000000us)
    system("sendevent /dev/input/event2 3 57 -1");
    system("sendevent /dev/input/event2 1 330 0");
    system("sendevent /dev/input/event2 0 0 0");

    return 0;
}

-------------------------------------------------------------------------------

 

Android.mk

-------------------------------------------------------------------------------

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_LDLIBS := -llog
LOCAL_MODULE    := sendevent_vashTS
LOCAL_SRC_FILES := sendevent_vashTS.cpp
include $(BUILD_EXECUTABLE)

--------------------------------------------------------------------------------

 

Application.mk

---------------------------------------------------------------------------------

APP_ABI := armeabi-v7a
APP_PLATFORM        := android-19

---------------------------------------------------------------------------------

 

간략 사용법

1. <아무프로젝트명>/jni/ 폴더 안에 3개의 파일을 넣는다.

2. 현재 폴더가 <아무 프로젝트명> 에 위치한 상태에서 Android ndk 컴파일 명령어 ndk-build 를 수행한다.

    (요청 시 ndk-build방법 자료 정리하겠습니다.)

3. /data/local/tmp 폴더는 일반적으로 보이지 않지만 ADB로 접근 가능한 궁극의(?) 폴더안으로 libs/armeabi-v7a 안에 생성된

   sendevent_vashTS 바이너리를 복사하여 넣는다.( adb push libs/armeabi-v7a/sendevent_vashTS /data/local/tmp/ )

4. 실행 권한을 부여한다. (adb shell "chmod 777 /data/local/tmp/sendevent_vashTS")

5. 바이너리를 실행한다. (adb shell /data/local/tmp/sendevent_vashTS)

 

이상 다른 하드웨어에서도 이 방법이 되는지 알고 싶습니다 저만 되는 불상사가 없기를;;; 

잠금해제 직후 나오는 바탕화면에서 이 소스를 가동하면 메뉴의 상단바를 쭉 내리려고 시도할랑 말랑한 그런 상태가 됩니다.

system 함수가 sendevent에도 먹는 이상 고수들은 보자마자 아하 이거 쩐다 할겁니다 거기다

adb로 직접 때리는 명령어과 거의 유사....활용도 도 매우 높습니다. 다만 이 방법으론 최고 스피드를 내기는 어려울것 같습니다만

웬만한 일은 다 할 수 있습니다

-_-;;; 


  • 김밥마리 2016.07.25 16:47
    무슨말인진 잘 모르겟지만
    히로매크로는 초당10회정도 터치까지 되는거같더라고요
  • 바슈TS 2016.07.25 17:04
    허걱..... 노력은 해보겠습니다 10회나... ^^;;;
  • 긴또깡짱 2016.07.25 17:11

    컴퓨터에 고스트마우스는 초당 수십회되는듯 ..ㅎㅎ

  • 바슈TS 2016.07.27 23:06
    제가 프로그램 개조 후 속도 개선해서 테스트 해본 결과 초당 30회 가량 찍을 수 있네요;;;
  • 바슈TS 2016.07.25 18:38

    에고 다시보니 일단 외부에서 프로세스 강제종료시 노답이네요.

    Frep도 마음만 먹으면 프로세스 강종으로 서버쪽 자꾸 다운 시킬거 같네요 ^^;;; 그래도 한번 더 연구해서 최종판까지 이 글을 수정해보겠습니다 ^^

  • 미백 2016.07.25 19:21
    좋은글 감사합니다.
  • 로기리 2016.07.28 01:26

    오랜만에 접속했는데 재밌는거 하고 계신듯하네요

    정확히 어떤 구조인진 모르겠으나 ㅎ

    히로와 같은 앱 제작하는게 맞나 싶네요 .


    adb 명령어로도 터치이벤트를 가할 수 있는데,

    소스레벨에서 adb 로 명령어를 실행시키는 방법도 있습니다.


    앱 제작은 아시는거 같은데,

    안드로이드 서비스에 관해서 찾아보시면 도움될거라 생각되네요.


  • 바슈TS 2016.07.28 08:08
    히로랑 같은 구조인지는 잘 모르겠지만
    어쨌든 저도 그런 디바이스 제어 앱 한번 만들어보려고 합니다

    adb 명령어를 소스래밸에서 제어하면 pc를 켜둬야 하고 터치속도가 느리다고 알고있습니다

    su권한이 있으면 쉽게 폰 내부에서
    sendevent 를 직접 쓸 수있는데요 히로는
    루팅을 한 이상 이 방법을 쓸거라 생각합니다

    저는 sendevent2 쯤 되는 새로운 바이너리를 만들었습니다 다만 이걸 실행하는거 조차 상당한 권한이 필요하더라구요

    헌재 히로랑 유사한 문법(?)의 터치 스크립트를 작성해서 돌릴경우 초당 30회가량 최대 스피드가 가능할 것으로 보입니다 ^^

    되도록이면 frep하고 히로의 장점을 합친 형태에 노루팅으로 구현해보려고 하는데요
  • 로기리 2016.08.02 07:47
    네이티브까지 내려가셨네요 ㅎㅎ
    system(); 쓸때 adb 없이 이벤트가 넘어가나요 ?
    전혀 생각 못했던 방법인데 제폰에서도 테스팅 한번 해봐야겠네요 ㅎㅎ
  • 바슈TS 2016.08.07 21:14

    예 넘어 갑니다!!~~
    제가 좀 바빠서 추가 개선을 빨리 못하고 있습니다만...
    시간적 여유가 생기는데로 더 업그레이드를 하도록 하겠습니다.
    sendevent를 system 명령을 통해 보내는 방식이 그리 빠르지는 않습니다.

    아직 정확한 분석할 시간도 부족한지라 확실하진 않지만
    초당 2회정도면 거의 최대 속도라서요


List of Articles
분류 제목 글쓴이 최근변경 추천
자유 운영 방해 목적의 매크로 관련 글 제재 피카부 2019.09.03 0/0
질문 휴면게시판에 대해 질문있습니다 2 챠챠야 2016.07.28 0/0
정보 루팅없이 폰에서 터치이벤트를가하는 기법 소개 10 바슈TS 2016.08.07 0/0
질문 세나 입문 초보인데 매크로 쓰고싶네요 ㅠ 12 감자깡좋아 2016.09.02 0/0
자유 프렙이자주튕기는데 newbab 2016.07.22 0/0
질문 프렙 삼성폰도 되나요? 6 동네스타 2017.06.13 0/0
질문 프렙 잘되다가 안되는이유가 몰까요 2 기달아 2016.07.22 0/0
질문 세나 유료 매크로 쓰시는분들.. 20 세나짜앙 2016.09.02 0/0
질문 프렙 3.9 녹화기록표시 질문이요ㄷㄷ 칼페디엠 2016.07.18 0/0
질문 저..매크로 어떤거 쓰시나요? 6 샘송 2016.08.02 0/0
질문 메크로 강화 합성 질문 라이즈대장 2016.07.17 0/0
자유 혹시..프랩 김밥매크로 사용해보신분 2 10월의장미 2016.07.22 0/0
질문 세나 매크로 질문 AD오너 2016.07.17 0/0
질문 세나 폰매크로는 프렙뿐인가요? 9 djrurn 2016.09.02 0/0
자유 자동합성하는법좀 알려주세여 5 매크로좋다 2016.08.10 0/-1
자유 자꾸 특정구간에서 멈추면 어떻게하죠? ICE캥거루 2016.07.15 0/0
질문 매크로가 가끔 특정 구간에서 멈춥니다. 나르갸댜 2016.07.15 0/0
질문 세나 매크로... 21 술잔비워 2017.06.13 0/0
질문 매크로 처음 접하는데 .. 11 h린이 2016.08.07 0/0
질문 안컴 관리자문의 1 modm33 2016.07.15 0/-1
질문 매크로 질문이요 2 팔팝 2016.07.15 1/0
Board Pagination Prev 1 ... 366367368369370371372373374 ... 521 Next
/ 521

전체 최신 인기글

전체 주간 인기글