鉴于其.apk,我如何正确安装系统应用程序?


30

我删除了系统应用程序(com.android.mms),并拥有恢复它所需的.apk,但是它不会通过标准渠道进行安装(运行.apk会使我“未安装应用程序”)。安装系统应用程序的.apk的正确方法是什么?

Answers:


41

您需要将.apk推送至手机,将其推送至文件夹的“系统”分区,/system/app或者/system/priv-app在使用Android 4.3时使用adb。您可以adb在此处找到更多信息:http : //android-dls.com/wiki/index.php?title=ADB

为了写信,/system您可能必须以读写方式重新挂载它:

adb shell
su
mount -o rw,remount /system

或者,完全从主机的ADB执行此操作:

adb root
adb remount

现在您可以放置.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

然后,如果尚未设置标志,请更改权限。所有系统应用程序都需要具有权限rw-r--r--。您也可以使用命令通过ADB更改它们chmod 644 /path_to/your_file虽然已经很旧了,但这可能会有所帮助

放置后,.apk您需要重新启动设备。例如使用adb reboot


是的,我认为这是要走的路,尝试了一下,不好的签名说。我使用了Mms.apk,该文件是.zip rom的一部分,用于安装当前运行的android。
Dmitriy Likhten

2
漂亮的答案。谢谢。一则评论,我无法“ mv my-app.apk / system / app”。我收到一个错误“在“ XXX.apk”上失败-跨设备链接”。我能够CP和RM的APK中所述android.stackexchange.com/questions/75920/...
迈克尔·利维

1
考虑使用cp代替,mv因为您正在不同的文件系统之间移动,并且并非所有mv版本都支持它
Andres

这不会使用apk的位置更新android权限,这对于使用apk的软件包是必需的
paIncrease 2015年

5

卡尔·帕克 Carl Parker)在 Android Authority
Android权威)上撰写了此文章:

对于设备上安装的应用

  • 假设您已在设备上安装了该应用程序,请转到该应用程序的Google Play商店链接,并记下“?id =”之后的单词,然后忽略其余的单词。
  • 通过USB电缆将设备连接到计算机。
  • 打开计算机上的命令提示符,然后键入以下命令:
adb remount 
adb shell 
su 
cd /data/app/ 
  • 键入命令ls appfilename*(其中“ appfilename”是Google Play商店中应用的ID;请确保在末尾添加星号)。此命令将显示应用程序的完整APK文件名。
  • 输入以下命令:
mv apk_full_filename_here /system/app/apk_full_filename_here 
exit 
exit 
adb reboot 
  • 设备现在将重新启动。您的应用现已保存为系统应用。

对于APK在PC硬盘上的应用

  • 在计算机上打开命令提示符,然后导航至APK文件所在的位置。
  • 在设备上启用USB调试,然后通过USB电缆将设备连接到计算机。
  • 输入以下命令:
adb remount
adb push apk-filename-here /system/app/
adb shell chmod 644 /system/app/apk-filename-here
adb reboot

您的手机将自动重启。您的应用现在将另存为系统应用。


3

请注意,在使用adb播放时,您将通过其软件包文件名安装应用程序(这意味着,在命令提示符下,您将键入> adb install myFile.apk)

但您将通过其软件包名称来卸载它们(> adb卸载com.this.that.otherthing)

在卸载之前的版本之前,您将无法安装软件包。

将adb添加到您的PATH会有所帮助,以便您可以转到.apk文件所在的目录,然后键入adb install myFile.apk。


谢谢!不知道卸载机制:)
Dmitriy Likhten 2010年

尚未尝试使用系统应用程序,但对于常规应用程序/system/bin/pm(Package Manager),该实用程序对我有用。喜欢pm install -r myFile.apk-r用于“替换”)。这样,您无需卸载并知道软件包名称。
亚历山大·马拉霍夫

0

您需要安装Android SDK(或至少一个称为adb的工具)。此外,您需要在设备上允许“非市场安装”。

完成此操作后,您可以使用控制台转到包含该文件的文件夹。然后(通过USB)连接手机并运行adb install appname.apk


查看其他答案的评论。自从我安装了swype以来,已经启用了非市场安装:)
Dmitriy Likhten 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.