# BlueStacks ADB connect: bật ADB, tìm port và kết nối MAS

> Bật ADB trong BlueStacks 5, tìm cổng ADB, kết nối Macro Automation Studio, và sửa lỗi device not found và offline trên Windows và Mac.

Source: https://automationmacro.com/vi/docs/bluestacks-setup-guide (Thiết bị, updated 2026-09-05)

Hướng dẫn này chỉ cách kết nối BlueStacks với Macro Automation Studio (MAS) qua ADB, tức bước BlueStacks ADB connect: bật ADB, tìm cổng ADB, và thêm instance làm thiết bị. Nó bao gồm BlueStacks 5 trên Windows và bản BlueStacks cho Mac Apple Silicon, và kết thúc bằng những lỗi BlueStacks ADB connect mọi người hay gặp nhất.

## Trước khi bắt đầu

- MAS đã cài và đăng nhập trên Windows 10 hoặc 11, hoặc trên Mac Apple Silicon. MAS tải miễn phí để dùng thử; lấy từ [trang tải](/download).
- BlueStacks đã cài từ [bluestacks.com](https://www.bluestacks.com/) và đã khởi động một lần.
- Instance đã khởi động xong tới màn hình chính Android.
- Các ứng dụng bạn muốn tự động hóa đã cài và đăng nhập bên trong BlueStacks.

## 1. Cài BlueStacks

<div class="doc-tabs" data-tabs="os">
<section data-tab="Windows">

1. Tải BlueStacks 5 từ trang của nhà cung cấp và chạy bộ cài.
2. Khởi động BlueStacks và chờ màn hình chính.
3. Cài và đăng nhập các ứng dụng bạn muốn tự động hóa trước khi thêm thiết bị vào MAS.

</section>
<section data-tab="Mac">

1. Tải bản Apple Silicon, BlueStacks Air, từ [bluestacks.com/mac](https://www.bluestacks.com/mac).
2. Mở DMG và kéo **BlueStacks** vào **Applications**.
3. Khởi động từ Applications và chờ màn hình chính.

</section>
</div>

<figure class="device-window">
<img src="/images/bluestacks1.jpg" alt="Màn hình tải và cài BlueStacks" width="1200" height="720" loading="lazy" />
<figcaption>Cài bản BlueStacks 5 hiện tại và để nó khởi động lần đầu xong.</figcaption>
</figure>

## 2. Cài đặt khuyến nghị

MAS so khớp ảnh mẫu từng pixel, nên màn hình không được thay đổi sau khi bạn chụp ảnh mẫu. Mở **Cài đặt** từ biểu tượng bánh răng ở thanh công cụ bên và đặt:

| Tab | Cài đặt | Giá trị |
|---|---|---|
| **Hiệu năng** | Phân bổ CPU | 2 nhân; nhiều hơn cũng được trong lúc phát triển |
| **Hiệu năng** | Phân bổ bộ nhớ | 4 GB trở lên nếu có |
| **Màn hình** | Độ phân giải | Dọc, 540 x 960 |
| **Màn hình** | Mật độ điểm ảnh | 240 DPI |

Nhấn **Lưu thay đổi** và khởi động lại instance khi BlueStacks yêu cầu. Macro viết theo chuẩn cơ sở của MAS mong đợi **540x960** ở **240 DPI**; macro bạn tự viết mong đợi độ phân giải bạn đã chụp trong Asset Lab. Nếu lần chạy bị giật, đóng ứng dụng nền và cấp thêm nhân và bộ nhớ cho instance.

<figure class="device-window">
<img src="/images/bluestacks2.png" alt="Cài đặt hiệu năng và màn hình của BlueStacks" width="1200" height="720" loading="lazy" />
<figcaption>Cài đặt Hiệu năng và Màn hình cho một instance MAS ổn định.</figcaption>
</figure>

> [!WARNING]
> Đổi độ phân giải hoặc DPI sau khi chụp ảnh mẫu làm lệch mọi kết quả khớp, và cú chạm rơi sai chỗ. Chọn cài đặt màn hình một lần và giữ nguyên.

## 3. Bật ADB trong BlueStacks 5

BlueStacks xuất xưởng với ADB tắt. MAS cần nó bật.

<div class="doc-tabs" data-tabs="os">
<section data-tab="Windows">

1. Nhấn biểu tượng bánh răng ở thanh công cụ bên để mở **Cài đặt**.
2. Nhấn tab **Nâng cao**.
3. Bật **Android Debug Bridge**.
4. Nhấn **Lưu thay đổi**.
5. Ghi lại địa chỉ hiển thị dưới công tắc, ví dụ `127.0.0.1:5555`. Số sau dấu hai chấm là cổng ADB. Instance đầu tiên thường nhận 5555; ảnh chụp bên dưới hiển thị 5625.

</section>
<section data-tab="Mac">

1. Mở **Cài đặt** từ biểu tượng bánh răng ở thanh công cụ bên hoặc biểu tượng menu trên thanh trên cùng.
2. Tìm tùy chọn Android Debug Bridge. Hướng dẫn cài đặt của nhà cung cấp cho BlueStacks Air liệt kê Performance, Display, Graphics, Preferences và About, và không có công tắc ADB. Các bản BlueStacks cũ hơn cho macOS có công tắc này trong Preferences.
3. Nếu bản của bạn có tùy chọn, bật nó, lưu, và ghi lại cổng sau `127.0.0.1`.
4. Nếu không có, MAS không kết nối được với bản này. Dùng giả lập khác có mở ADB trên Mac, hoặc một [thiết bị cloud](/docs/cloud-devices).

</section>
</div>

<figure class="device-window">
<img src="/images/bluestacks3.png" alt="Màn hình bật ADB của BlueStacks với cổng cục bộ" width="1200" height="720" loading="lazy" />
<figcaption>Tab Nâng cao với Android Debug Bridge đã bật. Cổng ở đây là 5625.</figcaption>
</figure>

## 4. Cổng ADB của BlueStacks và cách MAS quét nó

MAS không chạy `adb devices` để phát hiện giả lập. Nó quét các tiến trình đang chạy và giữ một cổng khi tất cả điều sau đúng:

- Tên tiến trình chứa `hd-player` hoặc `bluestacks`.
- Cổng nằm giữa 5555 và 8500.
- Socket nghe trên `127.0.0.1`, `0.0.0.0` hoặc mọi giao diện.

Các cổng khớp xuất hiện trong hộp thoại **Thêm thiết bị mới** với nhãn `Bluestacks`, ví dụ `5555 - Bluestacks`. MAS quét khi bạn mở một nhóm thiết bị và mỗi lần bạn nhấn **Làm mới**. Mỗi instance BlueStacks nghe trên cổng riêng, nên hai instance cho hai mục.

## 5. BlueStacks ADB connect trong MAS

1. Mở **Nhóm thiết bị** ở thanh bên và mở một nhóm, hoặc tạo nhóm mới.
2. Nhấn **Thêm thiết bị**.
3. Gõ **Tên thiết bị** tối đa 50 ký tự.
4. Trong **Cổng**, chọn mục `Bluestacks` của instance này. Nhấn **Làm mới** nếu danh sách trống.
5. Nếu BlueStacks hiển thị một cổng MAS không liệt kê, chọn **Cổng tùy chỉnh** và gõ vào. MAS chấp nhận 1024 đến 65535.
6. Tùy chọn, chọn một **Macro khởi động**.
7. Nhấn **Thêm thiết bị**, rồi nhấn **Bắt đầu** trên thẻ thiết bị.

Thẻ hiển thị **Đang kết nối** rồi **Đang chạy**. MAS khởi động máy chủ adb riêng, gỡ mọi mục cũ của `127.0.0.1:<port>`, và chạy `adb connect` tới nó.

## Macro trên BlueStacks

Trình ghi macro của BlueStacks phát lại các cú chạm ở tọa độ cố định. Macro MAS là một đoạn mã Python nhìn màn hình trước: so khớp mẫu tìm nút, OCR đọc chữ, và các lần thử lại hấp thụ một lần tải chậm hay một popup. [Bắt đầu](/docs/getting-started) chạy macro đầu tiên của bạn, [Macro nhận diện hình ảnh](/docs/guides/image-recognition-macros) dựng lại một thao tác đã ghi thành thao tác nhìn màn hình, và [Bộ lập lịch](/docs/scheduler) chạy nó hằng ngày, hằng tuần hoặc hằng tháng.

> [!NOTE]
> Dừng trình ghi của BlueStacks trước khi bạn bắt đầu thiết bị trong MAS. Cả hai gửi thao tác vào cùng một màn hình và gây nhiễu lẫn nhau.

## Nhiều instance BlueStacks

Các instance tạo trong **Trình quản lý đa nhiệm** mỗi cái nghe trên cổng ADB riêng. Thêm từng cái làm thiết bị riêng trong cùng nhóm thiết bị, gán cho mỗi cái macro và hồ sơ cài đặt, và dùng **Bắt đầu tất cả** và **Dừng tất cả** trên nhóm. Xem [Nhóm thiết bị](/docs/device-groups) về tham số và proxy cho từng thiết bị.

## Khắc phục sự cố

### Bật ADB trong BlueStacks 5

Danh sách **Cổng** trong MAS trống và `adb connect 127.0.0.1:5555` trả lời "cannot connect" hoặc "connection refused". ADB đang tắt. Mở **Cài đặt**, nhấn **Nâng cao**, bật **Android Debug Bridge**, nhấn **Lưu thay đổi**, khởi động lại instance, rồi nhấn **Làm mới** trong **Thêm thiết bị mới**. Nếu tab **Nâng cao** không có công tắc này, cài bản BlueStacks 5 hiện tại từ trang của nhà cung cấp.

### Tìm hoặc đổi cổng ADB

Cổng nằm dưới công tắc **Android Debug Bridge** dưới dạng `127.0.0.1:<port>`. BlueStacks gán cổng lúc khởi động và chuyển sang cổng khác khi 5555 bận, nên nó có thể thay đổi sau khi bạn tạo, nhân bản hoặc xóa instance; hướng dẫn ADB của nhà cung cấp không ghi nhận ô nào để tự đặt cổng. Khi cổng đổi, nhấn **Sửa thiết bị** trên thẻ trong MAS và chọn cổng mới. Khởi động các instance theo cùng thứ tự giúp cổng ổn định.

### ADB device not found

Thẻ kết thúc ở **Lỗi** với "Failed to start device", nhật ký ghi "unable to connect to device", hoặc mã ném `DeviceNotConnectedError`.

- Instance vẫn đang khởi động. Chờ màn hình chính, rồi nhấn **Bắt đầu** lại.
- Cổng trên thẻ không phải cổng BlueStacks hiển thị. Sửa bằng **Sửa thiết bị**.
- Một bản cập nhật đã tắt ADB trở lại. Kiểm tra tab **Nâng cao**.
- Chạy `adb connect 127.0.0.1:<port>` trong terminal. "connected to" nghĩa là MAS cũng sẽ kết nối được.

### Thiết bị hiển thị offline

`adb devices` liệt kê `127.0.0.1:<port>  offline` và lệnh bị treo. Daemon adb bên trong instance ngừng trả lời, thường sau khi máy ngủ, cập nhật hoặc có máy chủ adb thứ hai trên máy. Nhấn **Dừng** trên thẻ, khởi động lại instance, đóng các công cụ khác chạy máy chủ adb riêng, rồi nhấn **Bắt đầu**; MAS kết nối lại từ đầu. Nếu vẫn offline, khởi động lại MAS để máy chủ adb của nó khởi động sạch. Thêm cách sửa ở [Khắc phục sự cố ADB](/docs/adb-troubleshooting).

### BlueStacks ADB trên Mac

Hai điều khác trên Mac. Thứ nhất, MAS cần một tệp nhị phân adb: nó tìm trong gói ứng dụng, rồi trên PATH, rồi trong các thư mục Homebrew. Nếu MAS báo "ADB executable not found. Please install ADB using your package manager", cài adb bằng Homebrew và khởi động lại MAS:

```bash
brew install android-platform-tools
```

Thứ hai, MAS luôn quay số `127.0.0.1`, nên BlueStacks phải chạy trên cùng Mac và mở ADB. BlueStacks Air là bản duy nhất cho Apple Silicon và cài đặt được ghi nhận của nó không có công tắc ADB; không có công tắc đó, MAS không điều khiển được nó.

## Điều khiển bằng Python

Khi thẻ ở **Đang chạy**, `src/app.py` của macro điều khiển BlueStacks qua gói `mas`. MAS chọn cổng, nên mã không bao giờ tham chiếu tới nó.

```python
import mas

size = mas.get_screen_size()
mas.log(f"BlueStacks screen is {size.width}x{size.height}")

match = mas.find_object_retry(1234, total_tries=3, time_sleep=2.0)
if match:
    mas.click(match.x, match.y)
```

Đọc [Tổng quan SDK](/docs/sdk) về mọi namespace, và [Điều khiển giả lập Android từ Python](/docs/guides/control-an-emulator-from-python) để có đoạn mã đầu tiên hoàn chỉnh.
