Hướng dẫn Android Debug Bridge (adb) và các thao tác sử dụng cực cơ bản

Thảo luận trong 'Dev Android' bắt đầu bởi blueberry, 9 Tháng sáu 2013.

  1. blueberry

    blueberry User manager

    Tham gia ngày:
    9 Tháng sáu 2013
    Bài viết:
    3,511
    Đã được thích:
    3,686
    Trong khi mod rom, up rom mà điện thoại gặp một lỗi như bootloop, hoặc đơn giản như force close liên tục,... Bạn lại biết nguyên nhân nằm ở đâu, nhưng không thể nào thao tác để sửa trên điện thoại được, và còn nhiều trường hợp khác, lúc đó việc biết một số lệnh của adb cực hữu ích.

    Bạn nào muốn tìm hiểu lý thuyết về adb các kiểu thì google nhé, mình bắt đầu vào vấn đề luôn.

    1. Kết nối: cài driver đầy đủ http://csmgdl.lgmobile.com/swdata/c...leDriver_S4981MAN38AP22_ML_WHQL_Ver_3.8.1.exe
    - Tải adb.
    - Kết nối điện thoại vơi máy tính, chọn chế độ Charge only khi máy còn bật được, khi máy không khởi động được thì vào recovery.
    - Nếu kết nối bằng Charge only, phải chọn Usb Debugging trong Developers options.
    - Giữ shift và nhấn chuột phải vào thư mục chưa file adb, chọn Open Command.
    2014-12-12_232738.png
    Với Windows XP hình như không có cái này, các bạn chịu khó vào run, gõ cmd rồi di chuyển tới thư mục chứa adb: ví dụ để adb trong D:\adb
    Mã:
    cd /d D:\adb
    - Kiểm tra xem máy đã kết nối được chưa bằng lệnh
    Mã:
    adb devices
    2014-12-12_232829.png
    Trước khi đọc tiếp, cần chú ý
    - Khi chỉnh sửa những file hệ thống, cần remount lại với quyền read-write (phần 3)
    - Khi gõ đường dẫn, trong mọi trường hợp tốt nhất luôn phân biệt chữ hoa/thường, kể cả đường dẫn trong Windows.
    - Nếu trong đường dẫn có dấu "cách" (space) thì đường dẫn phải để trong ngoặc kép, ví dụ: D:\mod\a.apk (ok); D:\rom mod\a.apk (không được); "D:\rom mod\a.apk" (ok)
    - Có thể kéo thả file vào cửa sổ Command Prompt để lấy đường dẫn của file đó luôn.
    - Trong đường dẫn đến file hoặc folder, có thể dùng dấu sao "*" để đại diện cho một chuỗi ký tự bất kỳ, dấu hỏi chấm "?" để đại diện cho một ký tự bất kỳ. Ví dụ *.apk là đại diện cho tất cả những file có đuôi là .apk. Điều này cần thiết khi thao tác với nhiều file (nếu chưa rõ có thể xuống phần 4 đọc ví dụ).​

    2. Lệnh cơ bản
    • Copy file (folder) từ máy tính vào điện thoại: ví dụ file SystemUI.apk trong thư mục "D:\rom mod" vào /system/app
    Mã:
     adb push "D:\rom mod\SystemUI.apk" /system/app
    • Lấy file (folder) từ điện thoại ra máy tính: ví dụ SystemUI.apk từ /system/app ra D:\rom mod
    Mã:
    adb pull /system/app/SystemUI.apk "D:\rom mod"
    • Cài file apk trực tiếp vào điện thoại: ví dụ cài RootExplorer.apk
      Mã:
      adb install D:\app\RootExplorer.apk
      Nếu trong máy có cài RootExplorer rồi mà muốn cài đè thì
      Mã:
      adb install -r D:\app\RootExplorer.apk
      Cài vào thẻ nhớ thay vì bộ nhớ trong
      Mã:
      adb install -s D:\app\RootExplorer.apk
    • Lấy logcat: vì là hướng dẫn cơ bản nên mình chỉ hướng dẫn lấy một kiểu. Ví dụ: lấy logcat rồi lưu ra file a.txt cùng thư mục chưa adb
      Mã:
      adb logcat > a.txt
      Gõ lệnh xong đợi khoảng 5s rồi ấn Ctrl + C để kết thúc.
    • Khởi động lại:
    - Bình thường
    Mã:
    adb reboot
    - Khởi động lại vào bootloader
    Mã:
    adb reboot bootloader
    - Khởi động lại vào recovery
    Mã:
    adb reboot recovery
    - Khởi động lại vào download mode
    Mã:
    adb reboot download
    3. adb shell: thực hiện một số lệnh cơ bản của linux
    Vào shell:
    Mã:
    adb shell
    . Mọi lệnh dưới đây mình nói chỉ chạy được khi bạn đã vào shell.
    Chú ý: mọi lệnh trong shell có thể được dùng nhanh từ adb:
    Mã:
    adb shell [lệnh_shell]
    • Di chuyển đến thư mục: ví dụ đến /system/app
      Mã:
      cd /system/app
    • Danh sách file trong thư mục hiện hành: ví dụ các file trong /system/app
      Mã:
      ls /system/app
    • Quyền root, để chỉnh sửa hệ thống, như mấy ví dụ dưới muốn sửa gì trong /system đều phải dùng lệnh này trước
      Mã:
      su
    • Mount với quyền read-write: khi muốn thay đổi gì trong hệ thống phải dùng lệnh này trước
      Mã:
      mount -o remount,rw /system
    • Copy: ví dụ /sdcard/a.apk muốn copy sang /system/app
      Mã:
       cp /sdcard/a.apk /system/app
      Nếu muốn copy vẫn file đấy sáng /system/app nhưng đổi tên luôn thành b.apk
      Mã:
      cp /sdcard/a.apk /system/app/b.apk
    • Move: ví dụ từ /sdcard/a.apk ra /sdcard/external_sd/
      Mã:
      mv /sdcard/a.apk /sdcard/external_sd/
      Nếu muốn move đổi tên luôn
      Mã:
      mv /sdcard/a.apk /sdcard/external_sd/b.apk
    • Rename: ví dụ /system/app/a.apk sang /system/app/b.apk
      Mã:
      mv /system/app/a.apk /system/app/b.apk
    • Xoá: ví dụ xoá /system/app/a.apk
      Mã:
      rm /system/app/a.apk
      Xóa tất cả các thứ trong thư mục system ko cần biết có gì bên trong:
      Mã:
      rm -r /system/
    • Tạo thư mục: ví dụ tạo thư mục catlog trong /data/
      Mã:
      mkdir data/catlog
    • Gỡ bỏ một chương trình người dùng cài đặt vào: đơn giản chỉ cần xoá file tương ứng trong /data/app. Nên kết hợp với lệnh ls để xem danh sách file
      Mã:
      rm /data/app/UserApp.apk
    • Chỉnh permission: ví dụ /system/app/SystemUI.apk sang 644 (rw-r-r)
      Mã:
      chmod 644 /system/app/SystemUI.apk
    • Thoát: từ root ra shell hoặc từ shell ra adb
      Mã:
      exit
    4. Ví dụ chung:
    • Copy đè file D:\mod\LGPhone.apk từ máy tính vào điện thoại:
    Mã:
    adb shell
    su
    mount -o remount,rw /system
    exit
    exit
    adb push D:\mod\LGPhone.apk /system/app
    adb shell su chmod 644 /system/app/LGPhone.apk
    
    • Set quyền 644 cho tất cả các file .so trong thư mục lib
      Mã:
      adb shell
      su
      mount -o remount,rw /system
      chmod 644 system/lib/*.so
      Xoá hết apk trong system/app
      Mã:
      adb shell
      su
      mount -o remount,rw /system
      rm system/app/*.apk
      Có gì mọi người bổ sung thêm.
     

    Các file đính kèm:

    cong ngo, ntkhien, nghianhan and 53 others like this.
  2. natradk1

    natradk1 Vì một cộng đồng LG Việt

    Tham gia ngày:
    8 Tháng sáu 2013
    Bài viết:
    93
    Đã được thích:
    12
    adb reboot download mode nữa nhé a
     
  3. blueberry

    blueberry User manager

    Tham gia ngày:
    9 Tháng sáu 2013
    Bài viết:
    3,511
    Đã được thích:
    3,686
    Ờ nhỉ, thanks bạn, còn cái gì nữa bạn gợi ý luôn hộ mình, tự dưng viết bài thế này khó nhớ ra quá :)
     
  4. LêDũng96

    LêDũng96 Well-Known Member Staff Member

    Tham gia ngày:
    8 Tháng sáu 2013
    Bài viết:
    3,183
    Đã được thích:
    682
    Bài viết rất hay, nhưng mà chưa biết mod lên cũng ko tiếp thu đc hết. Phải tập nhiều vậy. :D
     
    cong ngo and daohoa24 like this.
  5. blueberry

    blueberry User manager

    Tham gia ngày:
    9 Tháng sáu 2013
    Bài viết:
    3,511
    Đã được thích:
    3,686
    Không cần mod bạn ơi :D Mình viết bài này vì thấy nhiều anh em thỉnh thoảng thay mấy file framework tạch toàn thấy restore lại cả rom, trong khi không cần mất công như vậy :eek:
     
    daohoa24 thích bài này.
  6. hoangnova

    hoangnova Captain Staff Member

    Tham gia ngày:
    20 Tháng năm 2013
    Bài viết:
    6,738
    Đã được thích:
    15,889
    Đủ các đám lệnh a hay dùng ;) bài chuẩn :eek:
     
  7. hoangnova

    hoangnova Captain Staff Member

    Tham gia ngày:
    20 Tháng năm 2013
    Bài viết:
    6,738
    Đã được thích:
    15,889
    BỔ sung thêm 1 số lệnh như mkdir, mở rộng thêm khi dùng các lệnh rm, chmod với nhiều file ví dụ

    Set quyền 644 cho tất cả các file .so trong thư mục lib

    chmod 644 system/lib/*.so

    xóa tất cả các file apk trong thư mục system/app

    rm system/app/*.apk

    xóa tất cả các thứ trong thư mục system ko cần biết có gì bên trong:

    rm -r system/

    Tạo 1 thư mục catlog trong data/

    mkdir data/catlog
     
  8. blueberry

    blueberry User manager

    Tham gia ngày:
    9 Tháng sáu 2013
    Bài viết:
    3,511
    Đã được thích:
    3,686
    Ok để em ắp đết :cool:
     
    daohoa24 thích bài này.
  9. khamvaphaonline

    khamvaphaonline Khám thì phải Phá Staff Member

    Tham gia ngày:
    8 Tháng sáu 2013
    Bài viết:
    795
    Đã được thích:
    395
    Cái này hay quá, nhiều khi thay file bị stop lại phải up lain rom.

    Gửi từ LG-F180 của tôi bằng cách sử dụng Tapatalk 2
     
    daohoa24 thích bài này.
  10. Nguyễn Hồng Đức

    Nguyễn Hồng Đức Vạn Nhân Vãng Staff Member

    Tham gia ngày:
    12 Tháng sáu 2013
    Bài viết:
    227
    Đã được thích:
    99
    bài viết rất bổ ích :cool:
     
    daohoa24 and mrdrg10 like this.
  11. xuanduc89

    xuanduc89 Member Staff Member

    Tham gia ngày:
    10 Tháng sáu 2013
    Bài viết:
    4,380
    Đã được thích:
    1,656
    bài viết hay quá bác ạ
     
  12. minh mũ đỏ

    minh mũ đỏ Active Member

    Tham gia ngày:
    9 Tháng sáu 2013
    Bài viết:
    727
    Đã được thích:
    155
    Bác tl giúp e với: driver kia là cài cho pc thì với mỗi loại máy có cần thêm driver cho từng máy không? E có một con máy tính bảng ainol novo7 paladin (con này có từ thời ics mới ra mắt, chạy chip MIPS), sau một năm sử dụng, đột nhiên n không thể boot vào màn hìnhchinhs, không thể up rom bằng cwm recovery, không thể flash rom bằng tool của máy, nật nguồn thì vào thẳng recovery. Giờ eko có ai dùng nên e không thể mượn đc bản backup rom để restore, chỉ còn trông chờ vào adb nhưng làm theo hướng dẫn trên xda đến bước adb devices thì n không nhận ra ẻm (ở chế độ boot giống download mode trên lu6200) . Giờ sao hả bác? ná có cao kiến j không?

    Gửi từ LG-LU6200 của tôi bằng cách sử dụng Tapatalk 2
     
  13. blueberry

    blueberry User manager

    Tham gia ngày:
    9 Tháng sáu 2013
    Bài viết:
    3,511
    Đã được thích:
    3,686
    Cái driver trên là của mấy máy LG thôi, còn bạn muốn dùng cho thiết bị nào thì phải cài driver của nhà sản xuất cho thiết bị đó.
     
    xuanduc89 thích bài này.
  14. minh mũ đỏ

    minh mũ đỏ Active Member

    Tham gia ngày:
    9 Tháng sáu 2013
    Bài viết:
    727
    Đã được thích:
    155
    E đã cài nhưng n vẫn không nhận ra đc máy

    Gửi từ LG-LU6200 của tôi bằng cách sử dụng Tapatalk 2
     
  15. xuanduc89

    xuanduc89 Member Staff Member

    Tham gia ngày:
    10 Tháng sáu 2013
    Bài viết:
    4,380
    Đã được thích:
    1,656
    mrdrg10 thích bài này.
  16. minh mũ đỏ

    minh mũ đỏ Active Member

    Tham gia ngày:
    9 Tháng sáu 2013
    Bài viết:
    727
    Đã được thích:
    155
  17. xuanduc89

    xuanduc89 Member Staff Member

    Tham gia ngày:
    10 Tháng sáu 2013
    Bài viết:
    4,380
    Đã được thích:
    1,656
    bác serch đi
    có rom dev cho em nó mà
    mà bác chấp nhận đi
    con này có 1 củ 5 thì làm ăn dc gì
     
  18. minh mũ đỏ

    minh mũ đỏ Active Member

    Tham gia ngày:
    9 Tháng sáu 2013
    Bài viết:
    727
    Đã được thích:
    155
    1 củ 5 nhưng mà khá hay để nghịch đấy. E đang đau đầu vs n bác ạ. Muốn mua ipad nhưng không có tiền, đành cố gắng cứu e này vậy...

    Gửi từ LG-LU6200 của tôi bằng cách sử dụng Tapatalk 2
     
    xuanduc89 thích bài này.
  19. tomy100

    tomy100 Active Member

    Tham gia ngày:
    12 Tháng sáu 2013
    Bài viết:
    943
    Đã được thích:
    337
    hay quá
    :roflmao:
     
    xuanduc89 thích bài này.
  20. xuanduc89

    xuanduc89 Member Staff Member

    Tham gia ngày:
    10 Tháng sáu 2013
    Bài viết:
    4,380
    Đã được thích:
    1,656
    bác hét ghê thế:sick:
     

Chia sẻ trang này