Skip to content

Tương tác với Bịp Device bằng API#


Để thực hiện các tác vụ tự động hóa, chúng tôi khuyến khích bạn sử dụng Studio với các hàm dựng sẵn. Tuy nhiên nếu các bạn muốn tương tác với tool thông qua API, Bịp Device có hỗ trợ một số hàm API cơ bản dưới đây.

API Endpoint: http://localhost:23117

refresh#

Load lại các thiết bị đang kết nối.

GET /refresh

Response example

{
    "success": true
}

devices#

Lấy danh sách các thiết bị đang kết nối.

GET /devices

Response example

{
    "success": true,
    "devices": [
        {
            "id": "1cf92fc83e0d7ece",
            "message": "Stopped [bip_script.js]",
            "note1": "s9",
            "note2": "",
            "status": "ready",
            "device": "starlte",
            "build": "2024-7-17",
            "selected": true
        },
        {
            "id": "ce11160b359c603d04",
            "message": "Ready",
            "note1": "s7",
            "note2": "",
            "status": "ready",
            "device": "herolte",
            "build": "2024-7-17",
            "selected": true
        }
    ]
}

status#

Lấy trạng thái của thiết bị.

POST /status

Request body

{
    "deviceId": "serial_của_thiết_bị"
}

Response example

{
    "success": true,
    "status": "ready" //hoặc "busy", "error",
    "message": "Ready",
    "note1": "s7",
    "note2": "",
    "status": "ready",
    "device": "herolte",
    "build": "2024-7-17",
    "selected": true
}

run#

Chạy một file script, lưu ý file này cần được đặt trong thư mục scripts của tool! File script có thể thực thi bất cứ tác vụ nào mà bạn lập trình như reboot, push file, install apk, backup, change, restore...

POST /run

Request body

{
    "deviceId": "serial_của_thiết_bị",
    "file": "Tên file script",
    "option": {"x": 1, "y": 2},
}

//Lưu ý, bạn có thể truyền thêm thuộc tính option để tùy biến dữ liệu đầu vào cho script của bạn, trong file script, b có thể lấy được các giá trị qua biến ScriptArgs.
//Ví dụ từ minh họa phía trên thì trong file script bạn chỉ định chạy có thể truy cập ScriptArgs.x có giá trị là 1

Response example

//OK
{
    "success": true,
    "message": "started"
}

//Lỗi
{
    "success": false,
    "message": "Chi tiết lỗi"
}

stop#

Stop script đang chạy

POST /stop

Request body

{
    "deviceId": "serial_của_thiết_bị"
}

Response example

//OK
{
    "success": true,
    "message": "stopped"
}

//Lỗi
{
    "success": false,
    "message": "Chi tiết lỗi"
}

change#

Change info cho thiết bị.

POST /change

Request body, tham số option giống hệt của hàm ChangeInfo.

//Change mặc định
{
    "deviceId": "serial_của_thiết_bị",
    "option": {}
}

// Change random nhưng fake model là Asus Zenfone Max Pro
{
    "deviceId": "serial_của_thiết_bị",
    "option": {
        "brand": "asus",
        "model": "ASUS_X00TD"
    }
}

Response example

//OK
{
    "success": true,
    "message": "running"
}

Kiểm tra trạng thái change

Sau khi gọi API change, bạn có thể kiểm tra trạng thái của thiết bị bằng hàm status và đợi cho đến khi status trả về là ready nghĩa là hàm đã chạy xong.

backup#

Tạo backup

POST /backup

Request body, tham số option giống hệt của hàm CreateBackup hoặc CreateROMBackup tùy theo type bạn chỉ định trong tham số gửi đi.

{
    "deviceId": "serial_của_thiết_bị",
    "type": "data", //hoặc "full" để backup rom
    "option": {}
}

//Tạo file backup với 2 custom package, loại bỏ 1 số cache
{
    "deviceId": "serial_của_thiết_bị",
    "type": "data",
    "option": {
        "customPackages": ["com.bip.device", "com.chay.khetlet"],
        "excludes": ["cache/*", "data/system/usagestats/*"],
    }
}

//Tạo file backup full chỉ cho phân vùng Data, sau đó lưu về ổ D:\\MyBackup với tên file tùy chỉnh, đồng thời change máy luôn
{
    "deviceId": "serial_của_thiết_bị",
    "type": "full",
    "option": {
        "fileName": "ROM-{DEVICE}-{TIME}.bip", //ví dụ: ROM-starlte-2023-12-11_21.20.45.bip
        "pullTo": "D:\\MyBackup",
        "partitions": "D", //hoặc "SD" backup system và data, "SDCRB" backup all
        "delAfterPull": true,
        "changeOption": {
            "wipeGoogle": true,
            "customPackages": ["com.alphalbetlabs.deviceinfo"],
            "brand": "samsung",
            "model": "SM-G930F",
            "override": {
                "network_numeric": "45204"
            }
        }
    }
}

Response example

//OK
{
    "success": true,
    "message": "running"
}

Kiểm tra trạng thái change

Sau khi gọi API change, bạn có thể kiểm tra trạng thái của thiết bị bằng hàm status và đợi cho đến khi status trả về là ready nghĩa là hàm đã chạy xong.

restore#

Restore file backup vào thiết bị.

POST /restore

Request body, tham số option giống hệt của hàm RestoreData.

//Change mặc định
{
    "deviceId": "serial_của_thiết_bị",
    "type": "data", //hoặc "full" tùy theo kiểu file backup
    "option": {}
}

//Restore từ file backup đã có sẵn trên thiết bị
{
    "deviceId": "serial_của_thiết_bị",
    "type": "data",
    "option": {
        "file": "/sdcard/[email protected]",
        "delBackup": false,
    }
}

//Restore từ file backup từ máy tính
{
    "deviceId": "serial_của_thiết_bị",
    "type": "full",
    "option": {
        "file": "D:\\MyBackup\\[email protected]",
        "delBackup": true,
    }
}

Response example

//OK
{
    "success": true,
    "message": "running"
}

Kiểm tra trạng thái change

Sau khi gọi API change, bạn có thể kiểm tra trạng thái của thiết bị bằng hàm status và đợi cho đến khi status trả về là ready nghĩa là hàm đã chạy xong.


Cần hỗ trợ?

Nếu bạn gặp bất cứ khó khăn gì, hoặc muốn yêu cầu thêm hàm mới, hãy liên hệ với team ngay.