Thiết lập CTS

Để chạy CTS, trước tiên, hãy chuẩn bị môi trường thực, máy tính và thiết bị Android bạn đang dùng để kiểm thử.

Môi trường thực tế

Báo hiệu Bluetooth LE

Nếu thiết bị đang được thử nghiệm (DUT) hỗ trợ Bluetooth LE, hãy đặt ít nhất 3 beacon Bluetooth LE trong phạm vi 5 mét cách DUT để kiểm tra quét Bluetooth LE. Các beacon đó không cần được định cấu hình hoặc phát ra bất kỳ tín hiệu cụ thể nào và có thể là bất kỳ loại nào, kể cả iBeacon, Eddystone hay thậm chí là các thiết bị mô phỏng beacon BLE.

Băng tần siêu rộng

Nếu DUT hỗ trợ băng tần siêu rộng (UWB), thì một thiết bị khác hỗ trợ UWB phải được đặt đủ gần và định hướng để không có ăng-ten và vùng chết vô tuyến. Đối với các bài kiểm thử độ chính xác về khoảng cách, bạn cần đáp ứng những yêu cầu cụ thể về vị trí và hướng. Để biết thông tin chi tiết về cách thiết lập, hãy xem Yêu cầu về UWB. Bạn phải chạy thử nghiệm UWB theo cách thủ công, trong đó chỉ định hai thiết bị cách nhau một mét trên dòng lệnh. Để biết thông tin chi tiết về tính năng phân đoạn là yêu cầu bắt buộc đối với chương trình kiểm thử này, hãy xem phần Phân đoạn cục bộ.

Camera

Khi chạy CTS của camera, hãy sử dụng điều kiện ánh sáng bình thường kèm theo biểu đồ mẫu kiểm thử (chẳng hạn như mẫu bàn cờ). Đặt biểu đồ mẫu kiểm thử theo khoảng cách lấy nét tối thiểu của DUT để đảm bảo biểu đồ không quá gần ống kính.

Hướng các cảm biến của máy ảnh đến một cảnh có đủ ánh sáng để cho phép các cảm biến đang thử nghiệm tiếp cận và duy trì ở tốc độ khung hình mục tiêu tối đa đã định cấu hình trên mỗi giây (FPS) như chỉ định trong CONTROL_AE_TARGET_FPS_RANGE. Điều này áp dụng cho tất cả các cảm biến của máy ảnh do getCameraIdList báo cáo vì kiểm thử lặp lại trên các thiết bị trong danh sách và đo lường hiệu suất riêng lẻ.

Nếu DUT hỗ trợ máy ảnh bên ngoài, chẳng hạn như webcam USB, hãy cắm một máy ảnh bên ngoài khi chạy CTS. Nếu không, bài kiểm thử CTS sẽ không thành công.

Hệ thống định vị toàn cầu (GPS)/GNSS (Hệ thống vệ tinh định vị toàn cầu)

Nếu DUT hỗ trợ tính năng của hệ thống định vị toàn cầu/hệ thống vệ tinh điều hướng toàn cục (GPS/GNSS), hãy cung cấp tín hiệu GPS/GNSS cho DUT ở cấp tín hiệu phù hợp để thu và tính toán vị trí GPS. Phần GPS phải tuân thủ ICD-GPS-200C. Nếu không, tín hiệu GPS/GNSS có thể thuộc bất kỳ loại nào, bao gồm cả trình mô phỏng vệ tinh hoặc bộ lặp GPS/GNSS của tín hiệu ngoài trời, hoặc bạn có thể đặt DUT đủ gần một cửa sổ để có thể trực tiếp nhận đủ tín hiệu GPS/GNSS.

Wi-Fi và IPv6

Hoạt động kiểm thử CTS yêu cầu một mạng Wi-Fi hỗ trợ IPv4 và IPv6, có kết nối Internet với DNS đang hoạt động cho IPv4 và IPv6, hỗ trợ phát đa hướng IP và có thể coi DUT là một ứng dụng tách biệt. Ứng dụng riêng biệt là một cấu hình trong đó DUT không hiển thị các thông báo truyền tin/nhiều mạng trên mạng con đó. Điều này xảy ra với cấu hình điểm truy cập Wi-Fi (AP) hoặc bằng cách chạy DUT trên một mạng con tách biệt mà không kết nối các thiết bị khác.

Nếu không có quyền truy cập vào mạng IPv6 gốc, mạng của nhà mạng IPv6 hoặc VPN để vượt qua một số hoạt động kiểm thử phụ thuộc vào IPv6, thì bạn có thể sử dụng điểm truy cập Wi-Fi và đường hầm IPv6.

Để truyền CTS, DUT cần có các cờ UP, BROADCASTMULTICAST được đặt trên giao diện Wi-Fi. Giao diện Wi-Fi cần được chỉ định địa chỉ IPv4 và IPv6. Kiểm tra các thuộc tính giao diện Wi-Fi bằng adb shell ifconfig.

Đối với các thiết bị hỗ trợ Wi-Fi STA/STA Đồng thời, cần phải có nhiều mạng Wi-Fi (ít nhất là 2). Để vượt qua CTS, mạng Wi-Fi phải chạy trên các băng tần khác nhau với các SSID khác nhau hoặc trên cùng một SSID với nhiều BSSID.

Tin nhắn theo thời gian thực (RTT) của Wi-Fi

Android cung cấp API RTT của Wi-Fi cho tính năng thời gian trọn vòng (RTT) của Wi-Fi. Nhờ đó, các thiết bị có thể đo khoảng cách đến các điểm truy cập với độ chính xác từ 1 đến 2 mét, giúp tăng đáng kể độ chính xác của vị trí trong nhà. Hai thiết bị đề xuất hỗ trợ Tin nhắn theo thời gian thực (RTT) của Wi-Fi là Google Wifiđiểm truy cập phù hợp của Computelet2 (được đặt thành băng thông 40 MHz ở tốc độ 5 GHz).

Các điểm truy cập sẽ được bật nguồn nhưng không yêu cầu kết nối mạng. Các điểm truy cập không cần phải ở bên cạnh thiết bị thử nghiệm nhưng nên nằm trong phạm vi 12,4 m tính từ DUT. Thông thường, chỉ cần một điểm truy cập là đủ.

Thiết lập máy tính

Thận trọng: CTS hỗ trợ máy Linux 64 bit. CTS không được hỗ trợ trên hệ điều hành Windows hoặc MacOS.

FFMPEG

Cài đặt gói ffmpeg phiên bản 5.1.3 (trở lên) trên máy chủ.

Nâng cấp máy chủ

Bạn nên nâng cấp RAM máy chủ CTS lên 128GB và ổ cứng HDD lên 256GB. Điều này là cần thiết để đáp ứng số lượng tăng lên của các trường hợp kiểm thử CTS và tăng sự dành riêng không gian vùng nhớ khối xếp Java trong thương mại.

ADB và AAPT2

Trước khi chạy CTS, hãy đảm bảo rằng bạn đã cài đặt các phiên bản gần đây của cả Cầu gỡ lỗi Android (adb)Công cụ đóng gói tài nguyên Android (AAPT2), đồng thời đã thêm vị trí của các công cụ đó vào đường dẫn hệ thống của máy.

Để cài đặt ADB và AAPT2, hãy tải Bộ công cụ nền tảng SDK AndroidBộ công cụ xây dựng SDK Android mới nhất xuống từ Trình quản lý SDK của Android Studio hoặc công cụ dòng lệnh sdkmanager.

Đảm bảo rằng adbaapt2 nằm trong đường dẫn hệ thống của bạn. Lệnh sau đây giả định rằng bạn đã tải các tệp lưu trữ gói xuống một thư mục con có tên là android-sdk trong thư mục gốc:

export PATH=$PATH:$HOME/android-sdk/platform-tools:$HOME/android-sdk/build-tools/<tools version number>

Bộ phát triển Java dành cho Ubuntu

Cài đặt phiên bản thích hợp của Bộ phát triển Java (JDK).

  • Đối với Android 11, hãy cài đặt OpenJDK11.
  • Đối với Android 9 và Android 10, hãy cài đặt OpenJDK9.
  • Đối với Android 7.0, 7.1, 8.0 và 8.1, hãy cài đặt OpenJDK8.

Để biết thông tin chi tiết, hãy xem các yêu cầu của JDK.

Thiết lập để hỗ trợ Python

Cài đặt virtualenv cho nền tảng của bạn bằng cách làm theo hướng dẫn Cài đặt.

Bạn có thể xác minh việc cài đặt thành công bằng cách gọi virtualenv -h.

Tệp CTS

Tải xuống và mở các gói CTS từ phần Compatibility Test Suite Downloads (Tải xuống bộ kiểm thử tương thích) khớp với phiên bản Android của thiết bị và tất cả các giao diện nhị phân của ứng dụng (ABI) mà thiết bị của bạn hỗ trợ.

Tải xuống và mở phiên bản mới nhất của các tệp nội dung nghe nhìnCTS.

Tải các tệp CTS liên quan đến Mainline xuống (không bắt buộc)

Khi bạn chạy phiên bản CTS lần đầu tiên, CTS sẽ tự động tải một số tệp CTS liên quan đến Mainline xuống. Việc này sẽ thêm ít nhất 10 phút vào thời gian chạy, tuỳ thuộc vào tốc độ mạng của bạn.

Để tránh việc thêm thời gian chạy CTS này, bạn có thể tải các tệp CTS liên quan đến Mainline xuống trước khi chạy phiên bản CTS bằng cách làm theo những hướng dẫn sau:

  1. Lấy cấp độ API Android trên thiết bị bằng cách chạy:

    adb shell getprop ro.build.version.sdk
    
  2. Làm theo hướng dẫn trong tập lệnh download_mcts.sh để tải các tệp Mainline CTS xuống.

    Quá trình tải xuống sẽ mất ít nhất 10 phút, tuỳ thuộc vào tốc độ mạng của bạn.

Phát hiện thiết bị

Làm theo các bước để thiết lập hệ thống nhằm phát hiện thiết bị của bạn.

Hạn mức bộ nhớ

Bạn nên tăng bộ nhớ tối đa có sẵn trong quá trình chạy kiểm thử trong tập lệnh cts-tradefed. Hãy tham khảo ví dụ về CL để biết thêm thông tin.

Thiết lập thiết bị Android

Bản dựng của người dùng

Thiết bị tương thích được định nghĩa là một thiết bị có bản dựng đã ký bằng khoá phát hành/người dùng. Thiết bị của bạn phải chạy hình ảnh hệ thống dựa trên bản dựng người dùng tương thích đã biết (Android 4.0 trở lên) trong phần Tên mã, Thẻ và Số bản dựng.

Thuộc tính bản dựng cấp API đầu tiên

Một số yêu cầu về CTS phụ thuộc vào bản dựng mà thiết bị được xuất xưởng ban đầu. Ví dụ: các thiết bị ban đầu đi kèm với các bản dựng cũ có thể bị loại trừ khỏi các yêu cầu hệ thống áp dụng cho các thiết bị được cung cấp cùng với các bản dựng sau này.

Để cung cấp thông tin này cho CTS, nhà sản xuất thiết bị có thể đã xác định thuộc tính thời gian xây dựng ro.product.first_api_level. Giá trị của thuộc tính này là cấp độ API đầu tiên mà thiết bị được ra mắt cho mục đích thương mại.

Nhà sản xuất thiết bị có thể sử dụng lại phương thức triển khai cơ bản phổ biến để ra mắt một sản phẩm mới dưới dạng bản nâng cấp của một sản phẩm hiện có trong cùng một nhóm thiết bị. Nhà sản xuất thiết bị có thể tuỳ ý đặt cấp độ API của sản phẩm hiện có thành ro.product.first_api_level để các yêu cầu nâng cấp được áp dụng cho CTS và Treble/VTS.

Nhà sản xuất thiết bị có thể xác định PRODUCT_SHIPPING_API_LEVEL trong tệp device.mk để đặt thuộc tính này, như trong ví dụ sau:

# PRODUCT_SHIPPING_API_LEVEL sets ro.product.first_api_level to indicate
# the first api level that the device has been commercially launched on.
PRODUCT_SHIPPING_API_LEVEL := 21

Cấp độ API đầu tiên đối với Android 9 trở lên

Đối với các thiết bị chạy Android 9 trở lên, hãy đặt thuộc tính ro.product.first_api_level thành một giá trị hợp lệ trong Tên mã, Thẻ và Số bản dựng.

Cấp độ API đầu tiên cho Android 8.x trở xuống

Đối với các thiết bị chạy trên Android 8.x trở xuống, hãy bỏ đặt (xoá) thuộc tính ro.product.first_api_level cho bản dựng đầu tiên của sản phẩm. Đối với tất cả các bản dựng tiếp theo, hãy đặt ro.product.first_api_level thành giá trị cấp độ API chính xác. Điều này cho phép thuộc tính xác định chính xác một sản phẩm mới và lưu giữ thông tin về cấp độ API đầu tiên của sản phẩm. Nếu cờ này chưa được đặt, Android sẽ gán Build.VERSION.SDK_INT cho ro.product.first_api_level.

Gói shim CTS

Android 10 trở lên có một định dạng gói tên là APEX. Để chạy các chương trình kiểm thử CTS cho các API quản lý APEX (chẳng hạn như cập nhật lên một phiên bản mới hoặc báo cáo các APEX đang hoạt động), bạn phải cài đặt trước một gói CtsShimApex trên phân vùng /system.

Quy trình kiểm thử xác thực shim APEX sẽ xác minh việc triển khai CtsShimApex.

yêu cầu về ro.apex.updatable

  • Nếu bạn đặt thuộc tính ro.apex.updatable thành true, thì bạn bắt buộc phải sử dụng CtsShimApex cho tất cả thiết bị hỗ trợ tính năng quản lý gói APEX.

  • Nếu thuộc tính ro.apex.updatable bị thiếu hoặc không được đặt, thì bạn không bắt buộc phải cài đặt trước CtsShimApex trên thiết bị.

Quy trình kiểm thử xác thực shim APEX sẽ xác minh việc triển khai CtsShimApex.

Cài đặt sẵn và tải trước CtsShim

Kể từ Android 11, CtsShimApex chứa 2 ứng dụng tạo sẵn (được tạo từ nguồn bản dựng) không chứa mã nào ngoại trừ tệp kê khai. CTS sử dụng các ứng dụng này để kiểm thử các đặc quyền và quyền.

Nếu thiết bị không hỗ trợ tính năng quản lý gói APEX (tức là thuộc tính ro.apex.updatable bị thiếu hoặc không được đặt) hoặc nếu thiết bị đang chạy phiên bản 10 trở xuống, thì 2 ứng dụng tạo sẵn phải được cài đặt riêng trong hệ thống.

Nếu APEX được hỗ trợ, bạn phải đặt các bản cài đặt sẵn cho bản phát hành thích hợp là /system/apex/com.android.apex.cts.shim.apex.

Nếu dùng các ứng dụng tạo sẵn thông thường, bạn phải đặt CtsShimCtsShimPriv cho bản phát hành thích hợp dưới dạng /system/app/CtsShimPrebuilt.apk/system/priv-app/CtsShimPrivPrebuilt.apk tương ứng.

Bảng sau đây liệt kê các lượt cài đặt sẵn và lượt tải trước có sẵn cho từng phiên bản và cấu trúc thiết bị.

Phiên bản thiết bị Cài đặt trước
(nếu hỗ trợ APEX)
Tải sẵn
ARM x86 ARM x86
Android 14 android14-arm-release android14-x86-release android14-arm-CtsShim.apk

android14-arm-CtsShimPriv.apk

android14-x86-CtsShim.apk

android14-x86-CtsShimPriv.apk

Android 13 android13-arm-release android13-x86-release android13-arm-CtsShim.apk

android13-arm-CtsShimPriv.apk

android13-x86-CtsShim.apk

android13-x86-CtsShimPriv.apk

Android 12 android12-arm-release android12-x86-release android12-arm-CtsShim.apk

android12-arm-CtsShimPriv.apk

android12-x86-CtsShim.apk

android12-x86-CtsShimPriv.apk

Android 11 android11-arm-release android11-x86-release android11-arm-CtsShim.apk

android11-arm-CtsShimPriv.apk

android11-x86-CtsShim.apk

android11-x86-CtsShimPriv.apk

Android 10 Android10-release android10-arm-CtsShim.apk

android10-arm-CtsShimPriv.apk

android10-x86-CtsShim.apk

android10-x86-CtsShimPriv.apk

Android 9, O và O-MR1 Không áp dụng Không áp dụng arm-CtsShim.apk

arm-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.apk

Để vượt qua các bài kiểm thử, hãy tải trước ứng dụng vào các thư mục thích hợp trên ảnh hệ thống mà không cần ký lại ứng dụng.

Chương trình phụ trợ mẫu

Android 9 ra mắt Open Mobile API. Đối với các thiết bị báo cáo nhiều phần tử bảo mật, CTS sẽ thêm các trường hợp kiểm thử để xác thực hành vi của các Open Mobile API. Các trường hợp kiểm thử này yêu cầu cài đặt một lần một chương trình phụ trợ mẫu vào Phần tử bảo mật (eSE) được nhúng của DUT hoặc vào thẻ SIM mà DUT sử dụng. Bạn có thể tìm thấy chương trình phụ trợ mẫu eSEchương trình phụ trợ mẫu SIM trong AOSP.

Xem bài viết Kiểm thử CTS cho phần tử bảo mật để biết thêm thông tin chi tiết về các trường hợp kiểm thử Open Mobile API và trường hợp kiểm thử Kiểm soát quyền truy cập.

Yêu cầu về dung lượng lưu trữ

Bài kiểm tra độ căng thẳng của nội dung nghe nhìn CTS yêu cầu bạn phải lưu các đoạn video vào bộ nhớ ngoài (/sdcard). Hầu hết các đoạn video đều lấy từ Big Buck Bunny, thuộc bản quyền của Binder Foundation thuộc giấy phép Creative Commons Attribution 3.0.

Dung lượng bắt buộc phụ thuộc vào độ phân giải phát video tối đa mà thiết bị hỗ trợ. Hãy xem phần 5 trong tài liệu Định nghĩa về khả năng tương thích với Android để biết phiên bản nền tảng của các độ phân giải bắt buộc.

Dưới đây là các yêu cầu về bộ nhớ theo độ phân giải tối đa của video:

  • 480x360: 98 MB
  • 720x480: 193 MB
  • 1280x720: 606 MB
  • 1920x1080: 1863 MB

Màn hình và bộ nhớ

  • Mọi thiết bị không có màn hình nhúng đều cần phải kết nối với màn hình.
  • Nếu thiết bị có khe cắm thẻ nhớ, hãy cắm thẻ SD trống. Sử dụng một thẻ SD hỗ trợ bus tốc độ siêu cao (UHS) với dung lượng SDHC hoặc SDXC hoặc một thẻ có tốc độ tối thiểu là cấp 10 trở lên để đảm bảo có thể truyền CTS.

  • Nếu thiết bị có khe cắm thẻ SIM, hãy cắm thẻ SIM đã kích hoạt vào từng khe. Nếu thiết bị hỗ trợ SMS, thì mỗi thẻ SIM phải điền sẵn trường số riêng. Đối với các thiết bị chạy Android 12 trở lên, tất cả các thẻ SIM đều phải hỗ trợ việc lưu trữ số gọi tắt (ADN). Thẻ GSM và USIM có tệp dành riêng cho viễn thông (DFTelecom) đáp ứng yêu cầu này.

UICC dành cho nhà phát triển

Để chạy các bài kiểm thử API nhà mạng CTS, thiết bị cần dùng SIM có các đặc quyền của nhà mạng CTS, đáp ứng những yêu cầu nêu trong phần Chuẩn bị UICC.

Cấu hình thiết bị Android

  1. Đặt lại dữ liệu của thiết bị về trạng thái ban đầu: Cài đặt > Sao lưu và đặt lại > Đặt lại dữ liệu về trạng thái ban đầu.

  2. Đặt ngôn ngữ của thiết bị thành tiếng Anh (Hoa Kỳ): Cài đặt > Ngôn ngữ và phương thức nhập > Ngôn ngữ.

  3. Nếu thiết bị hỗ trợ việc tuỳ chỉnh phông chữ mặc định, hãy đặt bộ phông chữ sans-serif mặc định thành Roboto (bộ phông chữ sans-serif mặc định dùng trong các bản dựng AOSP).

  4. Bạn có thể bật chế độ cài đặt vị trí nếu có tính năng GPS hoặc Wi-Fi/mạng di động trên thiết bị: Settings > Location > On (Cài đặt > Vị trí > Bật).

  5. Kết nối với mạng Wi-Fi hỗ trợ IPv6, có thể coi DUT là một ứng dụng riêng biệt (xem phần Môi trường thực tế ở trên) và có kết nối Internet: Cài đặt > Wi-Fi.

  6. Đảm bảo không đặt hình mở khoá hoặc mật khẩu nào trên thiết bị: Cài đặt > Bảo mật > Phương thức khoá màn hình > Không có.

  7. Bật tính năng Gỡ lỗi qua USB trên thiết bị: Settings > Developer options > USB debugging (Cài đặt > Tuỳ chọn cho nhà phát triển > Gỡ lỗi qua USB).

  8. Đặt thời gian thành định dạng 12 giờ: Cài đặt > Ngày và giờ > Sử dụng định dạng 24 giờ > Tắt.

  9. Đặt thiết bị ở chế độ không khoá màn hình: Settings > Developer options > Stay Awake > On.

  10. Trong chỉ Android 5.x và 4.4.x, hãy đặt thiết bị ở chế độ cho phép vị trí mô phỏng: Settings > Developer options > Cho phép vị trí mô phỏng > Bật.

  11. Trong Android 4.2 trở lên, hãy tắt tính năng xác minh ứng dụng USB: Settings > Developer options > Verify apps over USB > Off (Cài đặt > Tuỳ chọn cho nhà phát triển > Xác minh ứng dụng qua USB > Tắt).

  12. Trong Android 13 trở lên, hãy đặt thiết bị ở chế độ cho phép modem mô phỏng: Cài đặt > Tuỳ chọn cho nhà phát triển > Cho phép modem mô phỏng > Bật.

  13. Khởi chạy trình duyệt và đóng bất kỳ màn hình khởi động/thiết lập nào.

  14. Kết nối máy tính sẽ dùng để kiểm tra thiết bị bằng cáp USB.

  15. Trước khi chạy CTS, hãy đặt Roboto2 làm phông chữ Sans Serif bằng cách sử dụng một chế độ cài đặt tương tác có thể truy cập cho người dùng (không bị ẩn).

Cài đặt tệp

Cài đặt và định cấu hình các ứng dụng trợ giúp trên thiết bị.

  1. Thiết lập thiết bị theo phiên bản CTS (Bộ kiểm tra tính tương thích):

    • CTS phiên bản 2.1 R2 đến 4.2 R4: Thiết lập thiết bị (hoặc trình mô phỏng) để chạy kiểm thử khả năng hỗ trợ tiếp cận với: adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

      Trên thiết bị, hãy bật tính năng uỷ quyền: Cài đặt > Hỗ trợ tiếp cận > Hỗ trợ tiếp cận > Ủy quyền dịch vụ hỗ trợ tiếp cận.

    • CTS phiên bản 6.x trở xuống: Trên các thiết bị khai báo android.software.device_admin, hãy thiết lập thiết bị để chạy bài kiểm thử quản trị thiết bị bằng cách sử dụng: adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

      Trong phần Cài đặt > Bảo mật > Chọn quản trị viên thiết bị, hãy bật 2 quản trị viên thiết bị android.deviceadmin.cts.CtsDeviceAdminReceiver*. Đảm bảo rằng android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver và mọi quản trị viên thiết bị được tải trước khác vẫn tắt.

  2. Sao chép các tệp đa phương tiện CTS vào thiết bị như sau:

    1. Di chuyển (cd) đến đường dẫn nơi các tệp nội dung nghe nhìn được tải xuống và giải nén.
    2. Thay đổi quyền đối với tệp: chmod u+x copy_media.sh

    3. Sao chép các tệp cần thiết:

      • Để sao chép các đoạn video ở độ phân giải 720x480, hãy chạy mã:

        ./copy_media.sh 720x480
        
      • Nếu bạn không chắc về độ phân giải tối đa, hãy sao chép tất cả các tệp:

        ./copy_media.sh all
        
      • Nếu có nhiều thiết bị trong adb, hãy thêm tuỳ chọn nối tiếp (-s) của một thiết bị cụ thể vào cuối. Ví dụ: để sao chép tối đa 720x480 vào thiết bị có sê-ri 1234567, hãy chạy:

        ./copy_media.sh 720x480 -s 1234567