Gỡ lỗi ứng dụng Android trên thiết bị. Nơi bật "Gỡ lỗi USB"

Điện thoại thông minh dù có tiên tiến đến đâu thì nó vẫn là một thiết bị phụ thuộc. Trong nhiều trường hợp vẫn cần phải làm việc với thiết bị di động Máy tính cá nhân. Đặc biệt, khi nói đến phát triển điện thoại di động hoặc khôi phục thiết bị sau phần mềm không thành công. Ví dụ: nếu tiện ích bị lỗi, để cài đặt lại hệ thống, bạn sẽ cần kết nối cáp (qua USB) từ điện thoại thông minh đến PC. Để máy tính phát hiện được điện thoại hoặc máy tính bảng của bạn, thiết bị sẽ được đưa vào chế độ gỡ lỗi. TRONG vật liệu này Chúng tôi sẽ cố gắng cho bạn biết cách bật gỡ lỗi USB trên Android và những mục đích khác có thể cần thiết.

Gỡ lỗi USB là gì - tại sao cần thiết?

Nếu bạn không đánh đặc tính kỹ thuật, thì chế độ gỡ lỗi (chế độ này còn gọi là chế độ gỡ lỗi) là một tính năng của các tiện ích Android được tạo ra để thử nghiệm các tính năng mới sản phẩm phần mềm. Các nhà phát triển sử dụng nó để đánh giá hiệu suất của ứng dụng của họ.

Gỡ lỗi USB cho phép bạn thực hiện các tác vụ sau:

  1. Kiểm tra và xác minh ứng dụng trước khi phát hành chúng trên Play Market.
  2. Lấy quyền ROOT (hack) của thiết bị di động.
  3. Sao chép tập tin từ thư mục gốc hệ điều hành.
  4. Cài đặt phần mềm từ nguồn của bên thứ ba.
  5. Cài đặt phần mềm không chính thức Android.
  6. Tạo bản sao dự phòng của thiết bị (lưu trữ dữ liệu).

Chế độ gỡ lỗi có thể được sử dụng để khôi phục chương trình cơ sở, chẳng hạn như nếu nó không hoạt động chính xác hoặc điện thoại ngừng bật.

Cách bật chế độ gỡ lỗi USB trên Android

Việc bật gỡ lỗi USB từ điện thoại hoặc máy tính bảng được thực hiện thông qua menu cài đặt. Tùy chọn này thường được tìm thấy trong tùy chọn nhà phát triển hoặc menu trợ năng.

Thường thì mục menu này bị ẩn để người dùng thông thường không thể chuyển sang chế độ gỡ lỗi và không làm gián đoạn hoạt động của hệ thống. Thông thường, các nhà sản xuất nổi tiếng như Samsung hay HTC đều áp dụng cách này, trong khi nhà sản xuất Trung Quốc cho phép bạn bật chế độ gỡ lỗi USB trên điện thoại thông minh của mình mà không cần hỏi bất kỳ câu hỏi nào.

Nếu bạn sở hữu một thiết bị của Samsung hoặc bất kỳ thiết bị nào khác thương hiệu lớn, ẩn quyền truy cập gỡ lỗi, thì bạn sẽ phải làm như sau:

  • Mở cài đặt hệ thống.
  • Chuyển đến menu con “Giới thiệu về điện thoại”.
  • Nhấp vào số bản dựng hệ thống cho đến khi thiết bị chuyển bạn sang trạng thái nhà phát triển.
  • Ở trạng thái mới, bạn có thể thử chuyển đến phần có các tùy chọn dành cho nhà phát triển và bật gỡ lỗi USB một lần nữa.

Bật gỡ lỗi USB qua máy tính

Phương pháp này sẽ hữu ích cho những người dùng có thiết bị vì lý do nào đó không có màn hình cảm ứng, màn hình bị hỏng hoặc không có cách nào để kết nối chuột USB.

Thông thường, để chuyển sang chế độ gỡ lỗi, bạn cần kết nối điện thoại thông minh hoặc máy tính bảng với máy tính. Để làm điều này bạn sẽ phải sử dụng một địa chỉ gần đó công cụ bổ sung và hãy kiên nhẫn.

Vì vậy, để đi đến chế độ này Bạn cần thực hiện những việc sau thông qua máy tính của mình ( phương pháp này Thích hợp cho tất cả các phiên bản Android, bao gồm 5.0, 6.0, 7.0 trở lên):

  • Trước tiên, bạn cần tải xuống các tệp Platform-Tools và QtADB-CWM (đây là Tệp khôi phụcđể khôi phục thiết bị).
  • Di chuyển các tập tin này đến thư mục gốc máy tính để lái xe C.
  • Tải xuống kho lưu trữ Sqlite3 và di chuyển nó vào thư mục Sqlite3_Windows trên ổ C (bạn cần tự tạo).
  • Chúng tôi đưa tiện ích vào chế độ khôi phục và kết nối nó với máy tính.
  • Chạy tệp QtADB.exe đã tải xuống trước đó.
  • Sau khi mở chương trình, hãy tìm mục con Nâng cao ở đó và đảm bảo rằng thư mục dữ liệuđã được kết nối với máy tính. Dòng lệnh trong ứng dụng sẽ phản hồi với trạng thái Sẵn sàng.
  • Sau đó mở menu con “Tệp”. Nó được chia thành hai riêng biệt quản lý tập tin. Trong FM bên trái, chúng tôi mở thư mục Sqlite3_Windows đã được tạo trước đó và trong FM bên phải, chúng tôi mở thư mục /data/data/com.andoid.providers.settings/databases trong Android.
  • Tìm tệp settings.db ở FM bên phải và kéo nó sang trái.
  • Sau đó mở menu Start chọn Run rồi nhập cmd vào đó.
  • Sẽ bắt đầu dòng lệnh Các cửa sổ.
  • Bạn cần nhập từng lệnh sau:

cd C:\Sqlite3_Windows (để kích hoạt lệnh, nhấn “Enter”)

sqlite3 settings.db (để kích hoạt lệnh, hãy nhấn vào Enter Enter)

cập nhật giá trị cài đặt bảo mật=1 trong đó name='adb_enabled' (để kích hoạt lệnh, nhấn “Enter”)

Thoát (để kích hoạt lệnh, nhấn “Enter”)

  • Quay lại ứng dụng QtADB và cập nhật dữ liệu ở bảng bên trái.
  • Sau khi cập nhật, hãy kéo tệp settings.db trở lại bên phải, trước đây anh ấy đã ở đâu.
  • Chương trình sẽ hỏi bạn có cần thay thế không tập tin hiện có- chúng ta đồng ý.
  • Đó là tất cả. Điện thoại có thể được sử dụng ở chế độ gỡ lỗi.

Tôi nên làm gì nếu sau khi bật gỡ lỗi USB mà vẫn không tìm thấy thiết bị?

Thật không may, việc gỡ lỗi USB không phải lúc nào cũng hoạt động. Thông thường, ngay cả sau khi chuyển sang chế độ này, thiết bị vẫn không hoạt động bình thường. Tại sao điều này có thể xảy ra và cần thực hiện những biện pháp nào để giải quyết vấn đề?

  • Hãy chắc chắn rằng bạn đã cài đặt đúng Trình điều khiển Android Cầu gỡ lỗi. Nó có thể được tìm thấy trên trang web phòng điều hành của Google. Hệ thống Android. Vì các thiết bị khác nhau Bộ trình điều khiển khác nhau có sẵn. Nếu không có trình điều khiển cụ thể cho thiết bị của bạn, bạn có thể sử dụng trình điều khiển phổ thông.
  • Đảm bảo thiết bị của bạn được máy tính nhận dạng. Nếu cáp hoặc cổng bị hỏng, thì thiết bị có thể hoàn toàn không hiển thị trong hệ thống và tất nhiên là không thể nói về bất kỳ chế độ gỡ lỗi nào trong trường hợp này.
  • Gỡ lỗi USB có thể không hoạt động bình thường trên các thiết bị chạy chương trình cơ sở không chính thức.

Phần kết luận

Thực ra đó là tất cả. Bây giờ bạn đã biết cách bật chế độ gỡ lỗi USB trên Android. Như bạn có thể thấy, nếu bạn thực hiện đúng hướng dẫn thì việc thực hiện quy trình này không quá khó khăn. Điều chính là không bị lạc và tải xuống mọi thứ trước tập tin cần thiết. Trong hầu hết các trường hợp, các phương pháp được mô tả ở trên chỉ dành cho nhà phát triển và người thử nghiệm, nhưng có những trường hợp người dùng thông thường cũng phải làm việc với chế độ này, vì vậy tốt hơn hết bạn nên tự làm quen với cách kích hoạt nó.

Trong hướng dẫn thay đổi chương trình cơ sở hoặc mở khóa bộ nạp khởi động, thường có yêu cầu bật gỡ lỗi USB. Thuật toán hành động thường không được đính kèm vì người dùng có kinh nghiệm biết tùy chọn nằm ở đâu. Nhưng người mới bắt đầu sẽ không thể tìm thấy một mục như vậy vì cài đặt nằm trong phần ẩn. Làm thế nào để tìm thấy phần ẩn và bật gỡ lỗi USB, chúng tôi sẽ cho bạn biết trong bài viết này.

Nơi bật "Gỡ lỗi USB"

Tùy chọn này nằm trong phần “dành cho nhà phát triển”. Theo mặc định, phần này bị ẩn và người dùng không thể truy cập được vì nó chứa cài đặt quan trọng. Để kích hoạt một phần bạn cần:

  1. Mở cài đặt hệ thống.
  2. Cuộn qua các phần cho đến cuối, nơi bạn mở mục “giới thiệu về điện thoại”. Trong điện thoại thông minh có vỏ MIUI, mục này nằm ở đầu cài đặt.
  3. Nó sẽ đi xuống số bản dựng.
  4. Bảy lần không nghỉ, bấm vào số bản dựng. 3-4 lần nhấp trước khi mở khóa, dòng chữ tương ứng sẽ hiển thị trên màn hình: Sau một số được chỉ định, bạn sẽ mở phần dành cho nhà phát triển.
  5. Khi hoàn tất, thông báo sẽ bật lên: “Xin chúc mừng, bạn đã trở thành nhà phát triển”. Điều này giả định rằng bạn đã mở một cài đặt ẩn.

Bây giờ phần ẩn đang hoạt động, hãy quay lại Cài đặt chung thiết bị. Mục “Dành cho nhà phát triển” sẽ xuất hiện ở trên. Nhấn vật phẩm mới và trong cửa sổ tiếp theo, hãy đi xuống bên dưới, nơi bạn di chuyển công tắc đối diện với mục “Gỡ lỗi USB”.

Quan trọng! Nếu không cần "gỡ lỗi" nữa, hãy tắt tùy chọn này vì lý do bảo mật. Thuật toán hành động được mô tả có liên quan đến tất cả các thiết bị, cho đến phiên bản Android 4.0.4. Khi bạn kết nối với máy tính lần đầu tiên, trên màn hình điện thoại thông minh/máy tính bảng, bạn phải chọn hộp, đồng ý rằng bạn tin cậy máy tính này.

Gỡ lỗi USB được sử dụng để làm gì?

Tùy chọn này được sử dụng khi kết nối thiết bị với máy tính. Thông thường để gỡ lỗi ứng dụng, xem nhật ký, v.v. Việc kích hoạt gỡ lỗi là cần thiết để công việc của ADB, và cả với lấy quyền root quyền, sáng tạo bản sao lưu dữ liệu, sao chép/di chuyển tập tin nhanh chóng.

Phần kết luận

Bài viết này mô tả chế độ gỡ lỗi USB dành cho thiết bị Android. Ngoài ra còn có hướng dẫn chi tiết khi kích hoạt tùy chọn tương ứng. Chỉ bật gỡ lỗi khi cần thiết và khi bạn hoàn tất, vì lý do bảo mật, hãy tắt tùy chọn này.

Tại sao bạn sử dụng gỡ lỗi USB? Viết cho chúng tôi về nó trong phần bình luận.

Bài viết có hữu ích với bạn không?
Đánh giá nó và hỗ trợ dự án!

Bài viết này sẽ chỉ cho bạn cách đính kèm trình gỡ lỗi vào ứng dụng Android và hướng dẫn các phương thức được gọi bằng cách sử dụng thông tin thu được sau khi dịch ngược ứng dụng.

Bài viết này sẽ chỉ cho bạn cách đính kèm trình gỡ lỗi vào ứng dụng Android và hướng dẫn các phương thức được gọi bằng cách sử dụng thông tin thu được sau khi dịch ngược ứng dụng. Tin tốt là việc gỡ lỗi không yêu cầu đặc quyền siêu người dùng. Các kỹ thuật được mô tả có thể rất hữu ích trong quá trình pentest. ứng dụng di động, bởi vì chúng tôi có thể "xâm nhập" mã trong khi chương trình đang chạy, lấy và ghi lại thông tin mà thông thường chúng tôi không có quyền truy cập. Ví dụ: bạn có thể chặn lưu lượng truy cập trước khi mã hóa và lấy khóa, mật khẩu cũng như bất kỳ thông tin có giá trị nào khác một cách nhanh chóng. Bài viết sẽ hữu ích cho những người pentester và nhà phát triển ứng dụng di động muốn có thêm kiến ​​thức chuyên sâu về các cuộc tấn công có thể xảy ra trên nền tảng Android.

Yêu cầu về môi trường thử nghiệm:

  • Hệ điều hành: Windows/Mac OS X/Linux
  • Java (khuyến nghị phiên bản 1.7)
  • IDE (Eclipse, IntelliJ IDEA, Studio Android)
  • SDK Android(https://developer.android.com/sdk/index.html?hl=i)
  • APKTool (https://code.google.com/p/android-apktool/)/APK Studio (http://apkstudio.codeplex.com)
  • Thiết bị/trình giả lập Android

Cấu hình sau sẽ được sử dụng trong bài viết này: Windows 8, Android Studio và IntelliJ IDEA. Thiết bị: Nexus 4 có Phiên bản Android 4.4.4. Tôi khuyên bạn nên thêm tất cả các tiện ích vào biến môi trường PATH để làm cho những công cụ này truy cập dễ dàng hơn và nhanh hơn.

Bạn có thể tải xuống gói ứng dụng Android (APK) được sử dụng trong bài viết này từ đây: com.netspi.egruber.test.apk .

Thiết lập thiết bị

Những hướng dẫn dưới đây sẽ giúp bạn chuẩn bị thiết bị cho các thí nghiệm.

Kích hoạt phần Tùy chọn nhà phát triển

Để bắt đầu, tính năng gỡ lỗi USB phải được bật trên thiết bị Android của bạn (tùy chọn tìm kiếm và phát hiện lỗi thông qua USB), điều này sẽ cho phép bạn “giao tiếp” với thiết bị bằng các công cụ từ Quay số Android SDK. Tuy nhiên, trước đó bạn cần kích hoạt phần Tùy chọn nhà phát triển. Trên thiết bị của bạn, hãy đi tới phần Cài đặt > Giới thiệu về điện thoại và nhấp vào mục Số bản dựng nhiều lần, sau đó một thông báo sẽ xuất hiện cho biết phần Tùy chọn nhà phát triển đã được kích hoạt.

Hình 1: Để kích hoạt phần Tùy chọn nhà phát triển, bạn cần nhấp vào Số bản dựng nhiều lần

Cho phép gỡ lỗi USB

Để bật gỡ lỗi qua cổng USB, hãy đi tới Cài đặt > Tùy chọn nhà phát triển và chọn hộp bên cạnh Gỡ lỗi USB.

Hình 2: Kích hoạt tùy chọn gỡ lỗi USB

Kết nối thiết bị và khởi chạy ADB

Sau khi kết nối thiết bị với máy tính qua cổng USB, thông báo “Đã bật gỡ lỗi USB được kết nối” sẽ xuất hiện. thiết bị" Bạn cũng nên kiểm tra xem bạn có thể kết nối với thiết bị của mình bằng ứng dụng Cầu gỡ lỗi Android (ADB) có trong SDK Android hay không ( gói Android Công cụ nền tảng SDK). Tại dấu nhắc lệnh, nhập lệnh sau:

Thiết bị sẽ xuất hiện trong danh sách.

Hình 3: Danh sách các thiết bị được kết nối

Nếu thiết bị không xuất hiện trong danh sách thì hầu hết nguyên nhân có thể xảy ra không chính xác trình điều khiển đã cài đặt(trên Windows). Tùy thuộc vào thiết bị, trình điều khiển có thể được tìm thấy trong SDK Android hoặc trên trang web của nhà sản xuất.

Kiểm tra ứng dụng để gỡ lỗi

Trước khi gỡ lỗi ứng dụng Android, trước tiên bạn cần kiểm tra xem điều này có khả thi hay không. Việc kiểm tra có thể được thực hiện theo nhiều cách.

Cách đầu tiên là chạy Màn hình thiết bị Android, được bao gồm trong SDK Android (trong thư mục công cụ). TRONG tập tin Windowsđược gọi là màn hình.bat. Tại mở Android Giám sát thiết bị Thiết bị sẽ xuất hiện trong phần Thiết bị.

Hình 4: Ứng dụng giám sát thiết bị Android

Nếu có ứng dụng nào trên thiết bị có thể gỡ lỗi được thì ứng dụng đó cũng sẽ xuất hiện trong danh sách. Tôi đã tạo ra chương trình kiểm tra, nhưng danh sách trống vì chương trình không thể gỡ lỗi được.

Cách thứ hai để kiểm tra xem ứng dụng có thể gỡ lỗi hay không là kiểm tra tệp AndroidManifest.xml từ gói ứng dụng (APK, gói ứng dụng Android). APK là một kho lưu trữ zip chứa tất cả thông tin cần thiết để chạy ứng dụng trên thiết bị Android của bạn.

Bất cứ khi nào một ứng dụng được tải từ Google Play Store, gói ứng dụng cũng được tải xuống. Tất cả các tệp APK đã tải xuống thường được lưu trữ trên thiết bị trong thư mục /data/app. Nếu bạn không có quyền siêu người dùng, bạn sẽ không thể liệt kê các tệp từ thư mục /data/app. Mặc dù, nếu biết tên tệp APK, bạn có thể sao chép nó bằng tiện ích adb. Để tìm tên của tệp APK, hãy nhập lệnh sau:

Dòng lệnh của thiết bị xuất hiện. Sau đó nhập lệnh sau:

danh sách chiều các gói -f

Một danh sách tất cả các gói trên thiết bị được hiển thị.

Hình 5: Danh sách các gói trên thiết bị

Nhìn vào danh sách, chúng tôi tìm thấy một ứng dụng thử nghiệm.

Hình 6: Gói ứng dụng thử nghiệm đã tạo (được tô sáng màu trắng)

Bây giờ bạn cần sao chép tập tin gói. Mở shell và nhập lệnh sau:

adb pull /data/app/[tệp .apk]

Hình 7: Copy file APK từ máy vào hệ thống

Bây giờ bạn cần mở tệp gói và kiểm tra nội dung của AndroidManifest.xml. Thật không may, chúng tôi không thể trích xuất kho lưu trữ vì tệp APK được mã hóa ở định dạng nhị phân. Tiện ích thường được sử dụng nhất để giải mã là apktool mặc dù tôi sử dụng Studio APK, vì ứng dụng này thân thiện GUI. Phần còn lại của bài viết sẽ nói về APK Studio.

Trong APK Studio, nhấp vào biểu tượng nhỏ màu xanh lá cây, đặt tên cho dự án và chỉ định đường dẫn đến Tệp APK. Sau đó chỉ định let để lưu dự án.

Hình 8: Tạo dự án mới trong APK Studio

Sau đó Mở APK chọn tệp AndroidManifest.xml và xem thông số thẻ ứng dụng. Nếu thiếu cờ android:debuggable (hoặc có nhưng được đặt thành false) thì ứng dụng không thể gỡ lỗi được.

Hình 9: Nội dung của file AndroidManifest.xml

Sửa đổi tệp AndroidManifest.xml

Sử dụng tiện ích apktool hoặc APK Studio, chúng tôi có thể sửa đổi các tệp và đóng gói nội dung lại vào gói. Bây giờ chúng ta sẽ sửa đổi tệp AndroidManifest.xml để có thể gỡ lỗi ứng dụng. Thêm dòng android:debuggable="true" bên trong thẻ ứng dụng.

Hình 10: Thay đổi nội dung của thẻ ứng dụng

Sau khi thêm cờ, hãy nhấp vào biểu tượng “cái búa” và lắp ráp lại gói. Gói được xây dựng lại sẽ nằm trong thư mục build/apk.

Hình 11: Quá trình lắp ráp lại gói hàng thành công

Sau khi xây dựng lại, gói được ký và có thể cài đặt lại trên thiết bị (tất cả các ứng dụng Android phải được ký). Hầu hết các ứng dụng không xác minh chứng chỉ được sử dụng để ký. Nếu không, bạn cần thay đổi mã thực hiện việc kiểm tra này.

Bây giờ bạn cần cài đặt gói được xây dựng lại. Đầu tiên, xóa ứng dụng cũ bằng lệnh sau:

gỡ cài đặt adb pm

Sau đó cài đặt gói mới:

cài đặt adb [tệp .apk]

Bạn cũng có thể gỡ bỏ và cài đặt gói bằng một lệnh:

cài đặt adb -r [tệp .apk]

Hình 12: Cài đặt gói được xây dựng lại

Kiểm tra xem ứng dụng được cài đặt lại có khởi chạy chính xác trên thiết bị hay không. Nếu mọi thứ đều hoạt động, hãy quay lại Trình giám sát thiết bị Android, nơi ứng dụng thử nghiệm sẽ xuất hiện.

Hình 13: Ứng dụng được xây dựng lại bây giờ có thể được gỡ lỗi

Thiết lập môi trường phát triển (IDE)

Bây giờ bạn có thể đính kèm trình gỡ lỗi vào ứng dụng được xây dựng lại, nhưng trước tiên bạn cần tạo một dự án trong môi trường phát triển (bài viết sử dụng IntelliJ IDEA). Hãy tạo một dự án mới. Trong trường Tên ứng dụng, nhập tên tùy chỉnh. Trong trường Tên gói, hãy chỉ định tên khớp chính xác với hệ thống phân cấp thư mục của gói được xây dựng lại.

Hình 14: Tạo một dự án mới trong IntelliJ IDEA

Thông thường, tên tệp APK sẽ khớp với cấu trúc thư mục, mặc dù nếu bạn không chắc chắn, hãy kiểm tra hệ thống phân cấp thư mục trong APK Studio cho đến thư mục chứa tệp ứng dụng. Trong trường hợp của tôi, tên và cấu trúc thư mục hoàn toàn giống nhau (com.netspi.egruber.test).

Hình 15: Kiểm tra hệ thống phân cấp thư mục ứng dụng

Bỏ chọn "Tạo Chào thế giới Hoạt động" và hoàn tất việc tạo dự án (tất cả các tham số khác vẫn được giữ nguyên). Dự án mới sẽ trông giống như thế này:

Hình 16: Phân cấp thư mục và file của dự án mới

Sau khi tạo dự án, bạn cần thêm nguồn từ tệp APK để trình gỡ lỗi “biết” tên của các ký hiệu, phương thức, biến, v.v. Tin vui là các ứng dụng Android có thể được dịch ngược mà hầu như không làm giảm chất lượng (mã nguồn sẽ giống như bản gốc) . Sau khi dịch ngược, mã nguồn được nhập vào môi trường phát triển (IDE).

Lấy nguồn từ gói ứng dụng

Trước tiên, bạn cần chuyển đổi APK thành tệp jar. Sau đó, bằng cách sử dụng trình dịch ngược java, chúng ta sẽ lấy được mã nguồn của ứng dụng. Chúng ta sẽ thực hiện chuyển đổi sang jar bằng tiện ích dex2jar. dex2jar có tệp d2j-dex2jar.bat được sử dụng để chuyển đổi APK sang jar. Cú pháp lệnh khá đơn giản:

d2j-dex2jar.bat [tệp .apk]

Hình 17: Chuyển APK sang jar

Sau đó mở hoặc kéo tệp kết quả vào JD-GUI (đây là trình dịch ngược java).

Hình 18: Cấu trúc file Jar

Tệp jar sẽ xuất hiện dưới dạng cấu trúc phân cấp chứa các tệp java có mã nguồn có thể đọc được. Đi tới Tệp > Lưu tất cả nguồn để đóng gói tất cả các nguồn vào kho lưu trữ zip.

Hình 19: Lưu văn bản nguồn của file đã dịch ngược

Sau khi lưu văn bản nguồn, hãy giải nén kho lưu trữ vào một thư mục riêng.

Hình 20: Kho lưu trữ đã được giải nén

Bây giờ bạn cần nhập cả hai thư mục vào dự án đã tạo trước đó trong IDE. Trong IntelliJ, đi tới thư mục src và sao chép nội dung của kho lưu trữ đã giải nén ở đó (hai thư mục).

Hình 21: Cả hai thư mục đều được sao chép vào thư mục src

Quay lại Intellij, chúng ta thấy dự án được cập nhật.

Hình 22: Các văn bản nguồn xuất hiện trong dự án

Nếu chúng ta nhấp vào bất kỳ thành phần nào trong danh sách, chúng ta sẽ thấy văn bản nguồn. Như bạn có thể thấy trong ảnh chụp màn hình bên dưới (văn bản nguồn của lớp loginActivity), mã nguồn bị làm xáo trộn bằng ProGuard.

Hình 23: Văn bản nguồn bị xáo trộn của lớp loginActivity

Kết nối trình gỡ lỗi

Bây giờ dự án đã có mã nguồn, chúng ta có thể bắt đầu đặt điểm dừng trên các phương thức và biến. Khi đạt đến điểm dừng, ứng dụng sẽ dừng lại. Ví dụ: tôi đặt điểm dừng trên một phương thức (ngay trong mã bị xáo trộn) chịu trách nhiệm xử lý thông tin được nhập vào trường văn bản.

Hình 24: Điểm dừng được đặt trên một phương thức bị xáo trộn.

Ngay khi breakpoint xuất hiện, hãy kết nối trình gỡ lỗi với tiến trình trên thiết bị bằng cách nhấp vào biểu tượng màn hình bên phải góc trên cùng(biểu tượng có thể khác trên IDE của bạn).

Hình 25: Kết nối trình gỡ lỗi với tiến trình

Hình 26: Danh sách các tiến trình kết nối trình gỡ lỗi

Sau khi chọn quy trình, trình gỡ lỗi sẽ kết nối với thiết bị.

Hình 27: Debugger gắn vào một tiến trình đang chạy trên thiết bị

Tôi sẽ nhập số 42 vào trường văn bản (nếu bạn nhớ thì có một điểm ngắt trên phương thức tương ứng).

Hình 28: Nhập số 42 vào trường văn bản

Sau khi nhấn nút Enter Code, ứng dụng sẽ bị hỏng tại điểm dừng vì trình gỡ lỗi biết phương thức nào đang được gọi trên thiết bị. Ứng dụng Android được biên dịch có chứa thông tin gỡ lỗi(chẳng hạn như tên biến) có thể truy cập được bằng bất kỳ trình gỡ lỗi tuân thủ Giao thức dây gỡ lỗi Java (JDWP) nào. Nếu ứng dụng của bạn đã bật tính năng gỡ lỗi, trình gỡ lỗi tương thích với JDWP (hầu hết các trình gỡ lỗi có trong môi trường phát triển Java đều thuộc danh mục này) sẽ có thể kết nối với máy ảo Các ứng dụng Android sau đó đọc và thực hiện các lệnh gỡ lỗi.

Hình 29: Đạt Breakpoint

Ảnh chụp màn hình bên dưới hiển thị số mà chúng tôi đã nhập trước đó vào trường văn bản.

Hình 30: Danh sách các biến của thể hiện lớp hiện tại

Phần kết luận

Chúng ta không chỉ có thể đọc dữ liệu trong ứng dụng mà còn có thể chèn dữ liệu của riêng mình. Điều này có thể hữu ích, chẳng hạn như nếu chúng ta muốn làm gián đoạn luồng thực thi mã và bỏ qua một số phần của thuật toán. Bằng cách sử dụng trình gỡ lỗi, chúng tôi có thể hiểu rõ hơn logic của ứng dụng và phân tích những gì không thể truy cập được người dùng bình thường. Ví dụ: việc xem các chức năng mã hóa được sử dụng và các khóa động có thể rất hữu ích. Ngoài ra, đôi khi khi gỡ lỗi, việc biết các hàm tương tác với nhau như thế nào cũng rất hữu ích. hệ thống tập tin hoặc cơ sở dữ liệu để hiểu thông tin nào được ứng dụng lưu trữ. Các thao tác tương tự có sẵn trên mọi thiết bị Android không có đặc quyền siêu người dùng.

Trên bất kỳ điện thoại thông minh hoặc máy tính bảng nào chạy trên nền tảng Android, bất kể nhà sản xuất và phiên bản hệ điều hành được cài đặt sẵn, đều có thể kích hoạt chức năng đặc biệt, được gọi là “Chế độ gỡ lỗi”. Tuy nhiên, quá trình kích hoạt chức năng này sẽ khác nhau. Thực tế là tất cả phụ thuộc vào phiên bản của hệ thống được cài đặt.

Trong bài viết này, chúng ta sẽ xem xét kỹ hơn câu hỏi về cách bật gỡ lỗi USB trên Android, như trên phiên bản trước Hệ điều hành và trên những cái mới nhất. Chúng ta cũng sẽ xem xét câu hỏi chế độ này nhằm giải quyết những nhiệm vụ gì.

Trước tiên, hãy tìm hiểu xem người dùng bình thường có thể cần kích hoạt chế độ này vì mục đích gì.

Như bạn có thể đoán, nó cần thiết để gỡ lỗi ứng dụng và bản thân thiết bị. Nói nhiều hơn bằng ngôn ngữ đơn giản, nhằm mục đích kiểm tra chức năng của các chương trình và do đó, trước hết, rất phổ biến đối với các nhà phát triển phần mềm. Tuy nhiên, đối với những người bình thường, nó cũng có giá trị vì nó cho phép bạn tương tác với Android thông qua PC và sử dụng các chương trình (chủ yếu là ADB) có thể thực hiện các thao tác khác nhau với thiết bị từ xa.

Quy trình kích hoạt trên các phiên bản khác nhau

Phiên bản Android 2.0 - 3.0

Nếu bạn có một thiết bị Android cũ được cài đặt phiên bản 2.0 và 3.0, thì để kích hoạt tính năng gỡ lỗi, bạn cần thực hiện một số bước đơn giản:

Phiên bản Android 4.0, 5.0 và 6.0

Trên các phiên bản Android bốn, năm và sáu, bạn phải mày mò một chút, vì chế độ gỡ lỗi trong chúng được ẩn cẩn thận khỏi mắt người dùng.

Cách bật chế độ tìm kiếm và phát hiện lỗi thông qua USB trên các phiên bản Android mới nhất? Để làm điều này, bạn cần thực hiện các bước sau:

Tôi nên làm gì khi không phát hiện được thiết bị khi bật tính năng gỡ lỗi?

Như thực tế cho thấy, người dùng thường gặp phải tình huống sau khi bật chế độ gỡ lỗi, điện thoại thông minh hoặc Máy tính bảngđối với một số lý do. Người dùng nên làm gì trong trường hợp này?

  • Trước hết, bạn cần kiểm tra xem phiên bản mới nhất của trình điều khiển phát hiện thiết bị qua USB đã được cài đặt trên máy tính của bạn chưa. Hãy thử cập nhật trình điều khiển của bạn bằng cách tải chúng xuống phiên bản mới nhất từ trang web của nhà sản xuất thiết bị.
  • Kiểm tra xem thiết bị của bạn có bị khóa không. Khi kết nối với máy tính, nên tháo khóa.
  • Kiểm tra các cổng nơi dây kết nối. Vâng, để biết thêm hoạt động chính xác sử dụng tốt hơn cổng USB 2.0, sẽ có khả năng tương thích tốt hơn với chúng.

Gỡ lỗi qua Wi-Fi

Trong trường hợp bạn sử dụng chế độ gỡ lỗi bằng cách USB Android Không có cách nào, bạn có thể thử kết nối qua Wi-Fi.

Quan trọng! Trước khi bắt đầu, hãy đảm bảo thiết bị của bạn đã nhận được Quyền ROOT. Hướng dẫn này chỉ phù hợp với phòng mổ Hệ thống Windows 7, đang bật thời gian nhất định phổ biến nhất trên PC.

  1. Trước tiên, bạn cần tìm ra địa chỉ IP và cổng của thiết bị. Với mục đích này, bạn có thể sử dụng chương trình. Nó có sẵn trong cửa hàng ứng dụng của Google Chơi.
  2. Tải chương trình và chạy nó.
  3. Thông tin về địa chỉ IP hiện tại sẽ xuất hiện ở phía dưới.
  4. Trên PC của bạn, hãy truy cập “Bắt đầu” - “Tất cả chương trình” - “Phụ kiện”. Trong danh sách ứng dụng, tìm và chọn Command Promt.
  5. Trong bảng điều khiển mở ra, hãy nhập lệnh sau: adb connect 192.168.0.1:8555. Đó là tất cả. Kết nối Android đã hoàn tất. Bây giờ mọi thao tác với ADB có thể được thực hiện thông qua Công nghệ không dây Wifi.

Vô hiệu hóa gỡ lỗi

Để tắt tính năng gỡ lỗi, hãy làm theo hướng dẫn sau:

Phần kết luận

Nhờ tài liệu của chúng tôi, giờ đây bạn đã biết cách bật gỡ lỗi USB trên Android, cũng như lý do và trong trường hợp nào mà chủ sở hữu điện thoại thông minh hoặc máy tính bảng thông thường có thể cần chức năng này.

Hãy để chúng tôi nhắc bạn rằng gỡ lỗi USB là một công cụ hữu ích công cụ hệ thống, cung cấp cho người dùng khả năng cài đặt lại chương trình cơ sở, tải xuống và cài đặt bên thứ ba phần mềm, đồng bộ hóa của bạn thiết bị di động từ PC, v.v. Người dùng cao cấp sẽ có thể có được quyền "Siêu người dùng" và thậm chí trong một số trường hợp, khôi phục hệ thống nếu nó ngừng hoạt động bình thường.

Tại tạo Android Hầu hết các nhà phát triển ứng dụng đều sử dụng nhiều trình giả lập khác nhau. Điều này rất tiện lợi vì bạn không cần phải cất nhiều thiết bị khác nhau trong ngăn kéo bàn, không phải đau đầu khi kết nối các thiết bị với máy tính và không có đống dây điện trên bàn. Chúng tôi nhấp chuột và xem hoạt động của chương trình của chúng tôi trên màn hình máy tính. Đơn giản và thanh lịch. Tuy nhiên, trình giả lập không phải là điện thoại. Anh ta bị hạn chế về khả năng của mình. Nếu ứng dụng của bạn sử dụng bất kỳ chức năng phần cứng cụ thể nào, chẳng hạn như các chức năng liên quan đến máy ảnh, Bluetooth hoặc kết nối USB, làm việc trong thời gian lễ tân gọi điện, với khả năng cao, chúng tôi có thể nói rằng bạn không thể làm được nếu không gỡ lỗi thiết bị thực. May mắn thay, Eclipse chứa mọi thứ bạn cần để hoàn thành nhiệm vụ này.

Kết nối điện thoại và khởi chạy chương trình

Trước khi kết nối điện thoại với máy tính bằng cáp USB truyền dữ liệu, một số bước chuẩn bị phải được thực hiện. Thực tế là Eclipse được cấu hình theo mặc định để hoạt động với trình mô phỏng và chúng ta cần điều chỉnh cấu hình chế độ gỡ lỗi. Nó đơn giản. Chọn mục menu Chạy > Cấu hình gỡ lỗi, sau đó chọn DroidDebug. TRÊN Tab mục tiêu trong phần Chế độ lựa chọn mục tiêu triển khai, bạn cần đặt nút chuyển sang Thủ công và nhấp vào Áp dụng. Như vậy bao gồm chế độ thủ công việc lựa chọn một nền tảng. Bây giờ, khi bạn khởi chạy ứng dụng, một hộp thoại sẽ xuất hiện nơi bạn có thể chọn trình mô phỏng hoặc một trong các điện thoại được kết nối.

Để điện thoại hoạt động ở chế độ gỡ lỗi, nó cũng cần được cấu hình phù hợp. Trong khi trên màn hình chính, bạn cần nhấp vào Nút trình đơn và tìm ứng dụng Cài đặt. Trong ứng dụng này, hãy mở phần “Ứng dụng” và sau đó là mục “Phát triển”. Trong màn hình mở ra, bạn cần đánh dấu vào ô bên cạnh mục “Gỡ lỗi USB”. Chuỗi hành động này hoạt động trên hầu hết các điện thoại, nhưng rất có thể trên thiết bị của bạn, chế độ gỡ lỗi UBS được bật ở một nơi khác.

Kết nối điện thoại của bạn với máy tính và nhấp vào nút Gỡ lỗi trong Eclipse. Trong hộp thoại xuất hiện, bạn sẽ thấy hai danh sách: “Chọn một Thiết bị Android” và “Khởi chạy thiết bị ảo Android mới”. Phần đầu tiên liệt kê các điện thoại được kết nối với máy tính, phần thứ hai - trình giả lập. Chọn điện thoại của bạn từ danh sách đầu tiên. Eclipse sẽ cài đặt ứng dụng bạn đang gỡ lỗi trên điện thoại và khởi chạy nó. Bạn có thể gỡ lỗi chương trình của bạn.

Giám sát trạng thái điện thoại DDMS (Dịch vụ giám sát gỡ lỗi Dalvik)

Tất cả thông tin về trạng thái của điện thoại đều có sẵn thông qua Công cụ đặc biệt, được gọi là dịch vụ giám sát DDMS (Dịch vụ giám sát gỡ lỗi Dalvik). Để khởi chạy nó, hãy nhấp vào nút android ở góc trên cùng bên phải của Eclipse.

Cửa sổ DDMS bao gồm một số bảng. Bảng điều khiển Thiết bị hiển thị danh sách các trình mô phỏng có sẵn và điện thoại được kết nối. Đây là danh sách những người đang chạy trong khoảnh khắc này quá trình. Mỗi tiến trình chạy trong máy ảo riêng của nó. Các luồng được hiển thị trên tab riêng biệt Chủ đề. Chuyển hướng Chương trình quản lý dữ liệuđược thiết kế để hoạt động với hệ thống tập tin của điện thoại. Với nó, bạn có thể sao chép các tập tin từ máy tính sang điện thoại và ngược lại. Bằng cách sử dụng Nút màn hình Capture có thể chụp ảnh màn hình điện thoại của bạn. Nút lỗi màu xanh lá cây cho phép bạn đính kèm trình gỡ lỗi vào quy trình đã chọn. Để sử dụng tính năng này, bạn phải có quy trình mã nguồn mở.

Cũng cần lưu ý là tiện ích ghi nhật ký LogCat và bảng điều khiển tương ứng của nó, có thể rất hữu ích khi tìm kiếm lỗi. Làm việc với nhật ký được thực hiện thông qua một lớp đặc biệt android.util.Log. Các phương pháp được sử dụng phổ biến nhất là:

Log.e() - để ghi lại lỗi,
Log.w() - để ghi lại cảnh báo,
Log.i() - để ghi nhật ký tin nhắn thông tin,
Log.d() - để ghi nhật ký gỡ lỗi,
Log.v() - để ghi lại các bản ghi chi tiết,

Các phương thức này phải được truyền hai chuỗi làm tham số. Đầu tiên là thẻ, sau đó có thể được sử dụng để tìm kiếm và lọc trong LogCat. Thứ hai là thông tin thực tế được nhập vào tạp chí.