以编程方式禁用Android操作系统升级?

问题描述 投票:2回答:2

我们是制造工业设备的公司的软件开发部门,我们有一些三星Galaxy-Tab 4平板电脑,我们用它作为制造设备的“遥控器”,使用我们为此目的编写的应用程序并直接从Android安装工作室。此应用不会分发给其他设备。我们在线购买了这些平板电脑,开箱即用,即没有涉及电话公司或公共运营商。这些平板电脑未在Google注册,即没有与之相关的Gmail帐户;事实上,我们甚至无法使用它们访问Google Play。我自己拆开了这些平板电脑,从未在Google或三星上注册过这些平板电脑。

所以当我今天早上来到并在屏幕上看到一个已经下载了计划的软件更新并准备好的通知时,我感到很惊讶。它说这是876.87 MB,它想要升级到Lollipop。

我不知道升级的来源或启动方式。我担心的是,如果在客户现场或贸易展会上发生这种情况,意外升级可能会破坏我们的软件或造成其他恶作剧。有没有办法可以通过编程方式禁用软件升级?

android upgrade
2个回答
0
投票

作为应用程序开发人员,您无法控制固件升级。它们来自运营商,或者如果是Wi-Fi平板电脑,则来自制造商。

您唯一的选择是控制固件。这意味着为您选择的硬件构建自己的Android固件dist。然后,您可以禁用(或以其他方式控制)固件更新计划/过程,以便在固件中进行更改。

与部署应用程序相比,拥有固件是一件非常重要的事情。


0
投票

当我今天早上来到并在屏幕上看到预定软件更新的通知时,我感到很惊讶

作为软件开发人员,我无法理解你的惊喜。这是一个非常着名的(并且通常由于缓慢/延迟推出而引起批评的功能)操作系统的功能

我不知道升级的来源或启动方式

那些来自设备制造商(你说三星,对吗?)并且不需要任何类型的登录或帐户。它在操作系统内部的某处编码,以检查制造商服务器是否有更新。与Windows,Mac OS,Linux或iOS相同。

应用程序无法从API的角度来禁用操作系统更新。这将是一个重大的安全漏洞。人们很容易想象一个恶意应用程序利用已知的操作系统漏洞并阻止操作系统自身更新,从而修补漏洞。

您的案例的可能解决方案

除了创建自己的自定义操作系统来控制流程之外我唯一可能想到的方法是托管您自己的VPN服务器来阻止更新服务器(或阻止整个互联网期望您想要从应用程序访问的资源)并在Settings -> WiFi下将设备配置到此VPN。

ps。:我看到了上面提到的link,我建议不要禁用系统服务(或者至少在你禁用之后测试A LOT),因为这可能会导致其他问题。

© www.soinside.com 2019 - 2024. All rights reserved.