Làm cách nào để cài đặt đúng ứng dụng hệ thống được cung cấp .apk của nó?


30

Tôi đã xóa một ứng dụng hệ thống (com.android.mms) và tôi có .apk cần để khôi phục nó, tuy nhiên nó sẽ không cài đặt qua các kênh tiêu chuẩn (chạy .apk cho tôi "ứng dụng chưa được cài đặt"). Cách thích hợp để cài đặt .apk của ứng dụng hệ thống là gì?

Câu trả lời:


41

Bạn sẽ cần đẩy .apk sang điện thoại vào phân vùng Hệ thống vào thư mục /system/apphoặc /system/priv-appkhi sử dụng Android 4.3 adb. Bạn có thể tìm thêm thông tin về adbđây: http://android-dls.com/wiki/index.php?title=ADB .

Để viết cho /systembạn, bạn có thể phải đọc lại nó-đọc:

adb shell
su
mount -o rw,remount /system

Hoặc, thực hiện hoàn toàn từ ADB của máy chủ:

adb root
adb remount

Bây giờ bạn có thể đặt .apk:

adb push my-app.apk /sdcard/
adb shell
su
cd /sdcard
mv my-app.apk /system/app
# or when using Android 4.3 or higher
mv my-app.apk /system/priv-app

Sau đó, nếu các cờ chưa được đặt, hãy thay đổi quyền. Tất cả các ứng dụng hệ thống cần phải có quyền rw-r--r--. Bạn cũng có thể thay đổi chúng thông qua ADB bằng lệnh chmod 644 /path_to/your_file. Mặc dù nó khá cũ, nhưng điều này có thể giúp

Sau khi bạn đã đặt, .apkbạn cần khởi động lại thiết bị của mình. Ví dụ với adb reboot.


Phải, tôi nghĩ rằng đây sẽ là con đường để đi, đã thử nó, nói chữ ký xấu. Tôi đã sử dụng Mms.apk là một phần của rom .zip tôi đã sử dụng để cài đặt Android hiện tại đang chạy.
Dmitriy Likhten

2
Câu trả lời đẹp. Cảm ơn. Một nhận xét, tôi không thể "mv my-app.apk / system / app". Tôi đã gặp lỗi "không thành công trên 'XXX.apk' - Liên kết thiết bị chéo". Tôi đã có thể CP và RM apk như được mô tả trong android.stackexchange.com/questions/75920/ Kẻ
Michael Levy

1
Cân nhắc sử dụng cpthay mvvì bởi vì bạn đang di chuyển giữa các hệ thống tệp khác nhau và nó không được hỗ trợ trong tất cả các mvphiên bản
Andres

điều này không cập nhật các quyền của Android với vị trí của apk, vốn được yêu cầu cho các gói sử dụng apk
paIncreas

5

Carl Parker viết về nó trên Android Author :
(được sao chép một phần ở đây trong trường hợp bài viết gốc bị hỏng)

Đối với ứng dụng được cài đặt trên thiết bị

  • Giả sử bạn đã cài đặt ứng dụng trên thiết bị của mình, hãy truy cập liên kết Cửa hàng Google Play của ứng dụng và ghi chú lại các từ sau khi? Id = id và bỏ qua phần còn lại.
  • Kết nối thiết bị của bạn với máy tính thông qua cáp USB.
  • Mở dấu nhắc lệnh trên máy tính của bạn và gõ các lệnh sau:
adb remount 
adb shell 
su 
cd /data/app/ 
  • ls appfilename*Nhập lệnh (trong đó, appfilename, là ứng dụng ID trên Google Play Store; đảm bảo bạn bao gồm dấu hoa thị ở cuối). Lệnh này sẽ hiển thị tên tệp APK hoàn chỉnh của ứng dụng.
  • Nhập lệnh sau:
mv apk_full_filename_here /system/app/apk_full_filename_here 
exit 
exit 
adb reboot 
  • Thiết bị sẽ khởi động lại. Ứng dụng của bạn hiện được lưu dưới dạng một ứng dụng hệ thống.

Dành cho ứng dụng APK của ai trên ổ cứng PC

  • Mở một dấu nhắc lệnh trên máy tính của bạn và điều hướng đến vị trí đặt tệp APK.
  • Bật gỡ lỗi USB trên thiết bị của bạn và kết nối thiết bị của bạn với máy tính thông qua cáp USB.
  • Nhập các lệnh sau:
adb remount
adb push apk-filename-here /system/app/
adb shell chmod 644 /system/app/apk-filename-here
adb reboot

Điện thoại của bạn sẽ tự động khởi động lại. Ứng dụng của bạn bây giờ sẽ được lưu dưới dạng một ứng dụng hệ thống.


3

lưu ý rằng khi chơi với adb, bạn sẽ cài đặt ứng dụng thông qua tên tệp gói của chúng (nghĩa là tại dấu nhắc lệnh bạn sẽ nhập> adb cài đặt myFile.apk)

nhưng bạn sẽ gỡ cài đặt chúng thông qua tên gói của chúng (> adb gỡ cài đặt com.this.that.therthing)

Bạn sẽ không thể cài đặt gói cho đến khi bạn gỡ cài đặt gói trước.

Nó sẽ giúp thêm adb vào PATH của bạn để bạn có thể chỉ cần vào thư mục chứa tệp .apk và nhập adb cài đặt myFile.apk.


Cảm ơn! Không biết về cơ chế gỡ cài đặt :)
Dmitriy Likhten

Chưa thử với các ứng dụng hệ thống, nhưng đối với các ứng dụng thông thường /system/bin/pm(Trình quản lý gói) hoạt động với tôi. Giống như pm install -r myFile.apk( -rcho "thay thế"). Bằng cách này, bạn không cần phải gỡ cài đặt và biết tên gói.
Alexander Malakhov

0

Bạn cần cài đặt SDK Android (hoặc ít nhất là một công cụ được gọi là adb). Hơn nữa, bạn cần cho phép "Cài đặt phi thị trường" trên thiết bị của mình.

Sau khi hoàn thành, bạn thay đổi thư mục chứa tệp có bàn điều khiển. Sau đó kết nối điện thoại của bạn (qua USB) và chạyadb install appname.apk


Xem ý kiến ​​của câu trả lời khác. Đã bật cài đặt phi thị trường kể từ khi tôi cài đặt swype :)
Dmitriy Likhten
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.