Android Silent Install Apk(Android 静默安装)

本文介绍了一种针对不在Google Store发布的私有Android应用的自动更新方案。文章详细阐述了如何检查Apk版本、下载新Apk并进行静默安装等步骤,并提供了具体的代码示例。此外还探讨了获取系统权限的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

這次要完成一個能夠自動更新的APP

但是又必須符合以下條件:

  • 不打算放在Google Store
  • 不需要手動認證安裝(避開Installer,你真的要安裝嗎?->確定。這件事)

http://stackoverflow.com/questions/4308473/auto-update-for-private-android-appshttp://stackoverflow.com/questions/4308473/auto-update-for-private-android-apps

可以參考這張圖知道,分別要做以下幾件事情:

  1. 檢查Apk版本
  2. 下載新的Apk(Target new Apk url)
  3. 安裝(安裝工作交給另外一個APP執行)

直接跳到安裝部分

安裝

這篇Silent install apk programmatically by system app (without root)有提到silent install apk的一些事項:

  1. 加入android.permission.INSTALL_PACKAGES的權限
  2. signed my application using signapk.jar
    這部分很麻煩,沒做
  3. 接著可以用指令pm install /.../app.apk,進行安裝

PS: Updating application 有分別兩種方式

  • use pm install -r /.../app.apk
  • 先下pm uninstall com.mydomain.myapp,但是需要有android.permission.DELETE_PACKAGES的權限

以下是程式碼的部分

<uses-permission android:name="android.permission.ACCESS_SUPERUSER" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Silent install with Root link
     
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
     
String filePath = Environment.getExternalStorageDirectory().toString() + "/your_app_directory/your_app_filename.apk";
Process installProcess = null;
int installResult = - 1337;
try {
installProcess = Runtime.getRuntime().exec( "su -c pm install -r " + filePath);
} catch (IOException e) {
// Handle IOException the way you like.
}
if (installProcess != null) {
try {
installResult = installProcess.waitFor();
} catch(InterruptedException e) {
// Handle InterruptedException the way you like.
}
if (installResult == 0) {
// Success!
} else {
// Failure. :-/
}
} else {
// Failure 2. :-(
}

Troubles

android.permission.INSTALL_PACKAGES

Project -> Clean

Source:

  • 忘了

Silent install

Source:

adb push your_apk_path /system/app/

據說可以获取系统权限

# Method 1
adb remount

# Method 2
#不行的话,
adb shell su                     #之后将文件系统remount为读写权限:
mount -o rw,remount /system     #出于安全考虑,记得完事后remount回只读:
mount -o ro,remount /system

# Method 3
mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system

Source:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值