Tự động hóa android python

Này mọi người, nhìn vào chiếc ảnh trên kia chắc rằng mọi người sẽ tự hỏi rằng. " Hệ thống này dùng để làm gì ? Hệ thống này điều khiển bằng tay hay tự động hoàn toàn nhỉ ? blabla ". Mình từng có cơ hội được nhìn những hệ thống như thế này rồi và nó sử dụng với nhiều mục đích nhất định tùy theo nhu cầu của mỗi người cũng như. xây dựng hệ thống tự động buff view, share livestream bán hàng, tăng người theo dõi trên các nền tảng như Youtube, Tiktok, Facebook,. Do đó làm thế nào để kiểm soát được những máy Android này?

ADB viết tắt của Android Debug Bridge là một công cụ Dòng lệnh giống như một cầu nối [Cầu nối] giữa thiết bị Android và Máy tính thông qua các dòng lệnh cmd để có thể giao tiếp với nhau, sử dụng để điều khiển và giao tiếp . Cho phép bạn truy cập vào Unix shell để thi hành lệnh nhân Unix trên thiết bị

II. Cài đặt

Để điều khiển được điện thoại, điều kiện quyết định đầu tiên là bạn phải mở chế độ Gỡ lỗi USB trên điện thoại thông minh. Link tham khảo cách bật tại đây

Tiếp theo chúng ta sẽ cài đặt công cụ ADB trên PC của mình để giao tiếp với điện thoại nhé. Mình dùng Python và hệ điều hành ubuntu nên sẽ dùng gói pure-python-adb này

pip install pure-python-adb

Ghi chú thêm. Nếu mọi người không có điện thoại thật để đọc thì dùng giả lập Android trên PC luôn nhé, mình hay dùng một phần mềm mã nguồn mở có tên là scrcpy. Mọi người cài đặt tại đây

Bây giờ tất cả những thứ chúng ta cần phải thiết lập rồi, mở điện thoại lên cáp cắm để kết nối điện thoại và máy tính nhé. Gõ dòng lệnh này để bắt đầu kết nối nhé

sudo adb start-server

// ready for connect
* daemon not running. 
* starting it now on port 5037 

Viết một đoạn script thu nhỏ kết nối thiết bị để điều khiển bất kỳ

from ppadb.client import Client as AdbClient
import time

def getDevice[]:
    # Default is "127.0.0.1" and 5037
    client = AdbClient[host="127.0.0.1", port=5037]
    devices = client.devices[]
    if [len[devices] < 0]:
        print["0 device"]
        return 0

    return devices[0]

device = getDevice[]

print[device]

Đoạn mã trên đích là lấy ra thiết bị đầu tiên mà mình kết nối

III. Bắt đầu

Cách để chúng ta có thể giao tiếp với điện thoại Android đang sử dụng shell, qua đó chúng ta có thể gửi dòng lệnh để giả lập các thao tác như vuốt màn hình, gõ phím, nhấn vào vị trí bất kỳ trên màn hình

Để lấy tọa độ tọa độ dễ dàng nhất mọi người vào CHPLAY tải ứng dụng Tọa độ màn hình để lấy nhé

  • Some command or used to Automation
adb shell input tap x y                   // chạm vào vị trí có tọa độ [x, y] trên màn hình
adb shell input text "Hello VietNam"      // Nhập text vào input
adb shell keyevent eventID               // Một số event trên điện thoại ứng với eventID tương ứng

Đây là danh sách EventID nè :
3: Bấm nút HOME
4: Bấm nút quay lại
5: Gọi
6: Kết thúc cuộc gọi
24: Tăng âm lượng
25: Giảm âm lượng
26: Bật tắt điện thoại
27: Mở Camera
64: Mở browser
66: Enter
67: Backspace
207: mở danh bạ
220: tăng độ sáng
221: giảm độ sáng
277: cut
278: copy
279: paste

Ở trên là một số lệnh đủ để chúng ta có thể viết các công cụ cơ bản rồi. Còn nhiều và rất nhiều lệnh nữa mọi người tham khảo tại đây nhé

IV. Viết công cụ nào

1. Tự động đăng bài lên Facebook

Mình sẽ sử dụng kiến ​​thức ở trên để viết Công cụ tự động trên điện thoại để đăng bài viết tự động nhé, kịch bản sẽ như sau

  1. Open app Facebook
  2. Click to input location
  3. Gõ nội dung bài viết
  4. Nhấn nút Đăng ký để gửi bài viết

Đầu tiên chúng ta cần sử dụng ứng dụng Screen Cordlines để lấy tọa độ một số vị trí trên màn hình nhé

Kịch bản theo kịch bản ở đây

from ppadb.client import Client as AdbClient
import time

def getDevice[]:
    # Default is "127.0.0.1" and 5037
    client = AdbClient[host="127.0.0.1", port=5037]
    devices = client.devices[]
    if [len[devices] < 0]:
        print["0 device"]
        return 0

    return devices[0]

device = getDevice[]

def postFacebook[]:
    # Trở về màn hình home
    device.input_keyevent[HOME_BUTTON]
    # Nhấn vào icon facebook chở 1 giây
    device.input_tap[672, 1237]
    time.sleep[1]
    # Nhấn vào input đăng
    device.input_tap[648, 479]
    time.sleep[1]
    # Nhấn vào icon facebook chở 1 giây
    device.input_tap[574, 647]
    time.sleep[2]
    # Gõ text facebook chở 2 giây
    device.input_text["Tu dong dang bai len FACEBOOK"]
    time.sleep[2]
    # Nhấn đăng bài
    device.input_tap[949, 152]
    
postFacebook[]

2. Nha máy [ call liên tục ]

Chẳng hạn mình muốn troll thằng bạn ml bằng cách nhá máy đến số điện thoại nó cho sml luôn và không muốn lặp đi lặp lại thao tác này. Công cụ ghi chép sẽ như sau

  1. On the screen call
  2. Nhập số điện thoại
  3. Khoảng thời gian chờ 13 giây cho chuông báo
  4. end call call
  5. tái kích hoạt khi chặn thì thôi =]]

Script ở đây

from ppadb.client import Client as AdbClient
import time

def getDevice[]:
    # Default is "127.0.0.1" and 5037
    client = AdbClient[host="127.0.0.1", port=5037]
    devices = client.devices[]
    if [len[devices] < 0]:
        print["0 device"]
        return 0

    return devices[0]

device = getDevice[]

def callPhoneNumber[device, phoneNumber]:
    #call phone Number
    device.input_keyevent[5]
    device.input_text[""]
    device.input_text[phoneNumber]
    device.input_keyevent[5]
    #wait 13s
    time.sleep[13]
    # end call
    device.input_keyevent[6]
    
while True:
    callPhoneNumber[device, "0774751111"]

3. Tự động đăng ký tài khoản FACEBOOK trên điện thoại

Nó cũng giống như các cụ ở trên đưa ra kịch bản rồi viết kịch bản thôi, nhưng kịch bản này hơi dài nên mình không public lên đây chỉ show kết quả cho mọi người xem nhé

V. Một số lưu ý

Ở trên là một số kiến ​​thức cơ bản đủ để mọi người có thể thực hiện một số công cụ tự động trên điện thoại, nhưng một số điều mình chưa cập nhật là

Chủ Đề