Android 自动升级系统apk作为setting.apk

Android 自动升级系统apk作为setting.apk,android,Android,我想做我的家庭应用程序,并把它放到/system dir,我的家庭应用程序是唯一的家庭。当然,我定制了我的家庭应用程序,并修改了android源代码。一切都好。但我有一个问题,如何自动更新我的家庭应用程序,我不想: adb root adb remount adb shell rm /system/app/your.apk adb push your.apk /system/app 如果我可以像普通的应用程序更新一样进行更新,比如: download apk and intent.se

我想做我的家庭应用程序,并把它放到/system dir,我的家庭应用程序是唯一的家庭。当然,我定制了我的家庭应用程序,并修改了android源代码。一切都好。但我有一个问题,如何自动更新我的家庭应用程序,我不想:

adb root
adb remount
adb shell rm /system/app/your.apk
adb push your.apk /system/app
如果我可以像普通的应用程序更新一样进行更新,比如:

  download apk and
  intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");  
  mContext.startActivity(intent);  
或者修改android源代码。有人能给我一些建议吗?

你可以使用“通用应用程序更新”方法,或者

无论哪种方式,您的
/system/app/whatever.apk
都不会被触动,因为没有root(以及您在问题中提到的重新装载)就无法更改它。相反,更新后的apk将存储为
/data/app/whatever.apk
,它将取代您的系统应用程序。您仍然可以使用系统应用程序功能

用户可以删除更新的apk(“卸载更新”),类似于常规的非系统应用程序,在这种情况下,您的原始系统apk将再次使用。

您可以使用“通用应用程序更新”方法,或

无论哪种方式,您的
/system/app/whatever.apk
都不会被触动,因为没有root(以及您在问题中提到的重新装载)就无法更改它。相反,更新后的apk将存储为
/data/app/whatever.apk
,它将取代您的系统应用程序。您仍然可以使用系统应用程序功能


用户可以删除更新的apk(“卸载更新”),类似于常规的非系统应用程序,在这种情况下,将再次使用您原来的系统apk。

您是否尝试了常见的应用程序更新?由于可以以某种方式“更新”系统应用程序,在这种情况下,您更新的apk将保持打开/数据,因为未安装的设备不支持重新安装。用户将无法卸载此类更新的应用程序,但可以删除更新(例如/data中的apk)。我无法尝试使用通用应用程序更新,我认为它没有用,因为我的应用程序是系统应用程序。因此我发布了问题。我想像系统更新一样更新我的应用程序。我不理解你的评论。我刚刚尝试使用通用应用程序方法更新系统应用程序,结果成功了(提示用户同意更新系统应用程序,单击同意,更新已安装)。但也许我没听清你的问题。如果您希望以静默方式更新,请使用;在任何情况下,您更新的应用程序都将转到/data,因为/system是只读的。谢谢您的回答。如果我有root,我想我可以使用删除我的应用程序,然后将我的应用程序添加到系统并重新启动设备。我无法理解“在任何情况下,你更新的应用程序将转到/data,因为/system是只读的”,你的意思是,使用通用应用程序方法,我的应用程序将转到at data,而不是at/system?使用通用应用程序方法时,您的
/system/app/whatever.apk
未被触动,因为没有root用户无法更改它。更新后的apk将转到
/data/app/whatever.apk
,但会被视为对
/system/app/whatever.apk
的更新。至少在我的小测试系统中,新位置的应用程序权限仍在工作。你尝试过普通应用程序更新吗?由于可以以某种方式“更新”系统应用程序,在这种情况下,您更新的apk将保持打开/数据,因为未安装的设备不支持重新安装。用户将无法卸载此类更新的应用程序,但可以删除更新(例如/data中的apk)。我无法尝试使用通用应用程序更新,我认为它没有用,因为我的应用程序是系统应用程序。因此我发布了问题。我想像系统更新一样更新我的应用程序。我不理解你的评论。我刚刚尝试使用通用应用程序方法更新系统应用程序,结果成功了(提示用户同意更新系统应用程序,单击同意,更新已安装)。但也许我没听清你的问题。如果您希望以静默方式更新,请使用;在任何情况下,您更新的应用程序都将转到/data,因为/system是只读的。谢谢您的回答。如果我有root,我想我可以使用删除我的应用程序,然后将我的应用程序添加到系统并重新启动设备。我无法理解“在任何情况下,你更新的应用程序将转到/data,因为/system是只读的”,你的意思是,使用通用应用程序方法,我的应用程序将转到at data,而不是at/system?使用通用应用程序方法时,您的
/system/app/whatever.apk
未被触动,因为没有root用户无法更改它。更新后的apk将转到
/data/app/whatever.apk
,但会被视为对
/system/app/whatever.apk
的更新。至少在我的小测试系统中,应用程序权限仍在新位置工作。