关于android静默安装问题

onlinetomcat 2011-05-05 08:53:46
android提供静默安装方法 ,可是当我调用的时候告诉我说不能申请安装的权限,可是我的权限已经在mainfest.xml添加了,我想问下这个是怎么回事,希望高手给解答下。
...全文
2253 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ran13819773752 2012-06-26
  • 打赏
  • 举报
回复
你们说来说去根本好像没解决得到问题哦 ?
Sodino 2011-05-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dinjay 的回复:]

还是权限问题,如果手机root了,那可以调用隐藏的api实现静默安装。
还看到过一个帖子说是,使用android:sharedUserId="android.uid.system"属性来使应用程序获得系统权限。
这样通过Runtime.getRuntime().exec("pm install -r ... ")方法来实现安装,没有试过,感觉也够呛
[/Quote]
其实设置sharedUserId与实现静默安装根本就没关系
和所运行的环境保持签名一致或者内置或者获取了root权限才是解决办法


请参考:
http://blog.csdn.net/sodino/archive/2011/03/10/6238818.aspx
[Android]实现静默安装APK的两种方法
sky-Z 2011-05-05
  • 打赏
  • 举报
回复
哦,这个我是在apk的android.mk中加上了LOCAL_CERTIFICATE := platform
onlinetomcat 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ykdsea 的回复:]
PackageManager pm = getPackageManager();
pm.installPackage(Uri.fromFile(new File(apk_filepath)), installobserver, 0, null);

这个是未开放的api,使用的需要和整个sources编译,或者使用反射机制(我也没有用过)。
权限的话,加上
<uses-permissio……
[/Quote]

权限都加上了 ,可是调用的时候还是出异常,原因是第三方应用无法申请安装权限
sky-Z 2011-05-05
  • 打赏
  • 举报
回复
PackageManager pm = getPackageManager();
pm.installPackage(Uri.fromFile(new File(apk_filepath)), installobserver, 0, null);

这个是未开放的api,使用的需要和整个sources编译,或者使用反射机制(我也没有用过)。
权限的话,加上
<uses-permission android:name="android.permission.INSTALL_PACKAGES"></uses-permission>
<uses-permission android:name="android.permission.DELETE_PACKAGES"></uses-permission>
<uses-permission android:name="android.permission.CLEAR_APP_USER_DATA"></uses-permission>
<uses-permission android:name="android.permission.CLEAR_APP_CACHE"></uses-permission>
onlinetomcat 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dinjay 的回复:]
还是权限问题,如果手机root了,那可以调用隐藏的api实现静默安装。
还看到过一个帖子说是,使用android:sharedUserId="android.uid.system"属性来使应用程序获得系统权限。
这样通过Runtime.getRuntime().exec("pm install -r ... ")方法来实现安装,没有试过,感觉也够呛
[/Quote]
android:sharedUserId="android.uid.system 这样就不能获取到sdcard的信息了。
我用过pm install -r这个在pc端就好用 但是在代码里就需要权限。
我现在其实想知道 代码里是否可以实现静默安装
dinjay 2011-05-05
  • 打赏
  • 举报
回复
还是权限问题,如果手机root了,那可以调用隐藏的api实现静默安装。
还看到过一个帖子说是,使用android:sharedUserId="android.uid.system"属性来使应用程序获得系统权限。
这样通过Runtime.getRuntime().exec("pm install -r ... ")方法来实现安装,没有试过,感觉也够呛
foley_liao 2011-05-05
  • 打赏
  • 举报
回复
把debuggable 设为false呢
sky-Z 2011-05-05
  • 打赏
  • 举报
回复
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-subdir-java-files)

LOCAL_PACKAGE_NAME := apk_pkg_name
LOCAL_CERTIFICATE := platform

include $(BUILD_PACKAGE)
onlinetomcat 2011-05-05
  • 打赏
  • 举报
回复
6楼帅哥,你能说说你是怎么实现的不?有可能的话贴段代码看下 谢谢了
onlinetomcat 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ykdsea 的回复:]
哦,这个我是在apk的android.mk中加上了LOCAL_CERTIFICATE := platform
[/Quote]
你能把你的android.mk给我看看吗这个怎么使用啊?

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧