我们是制造工业设备的公司的软件开发部门,我们有一些三星Galaxy-Tab 4平板电脑,我们用它们作为"遥控器"对于制造设备,使用我们为此目的编写的应用程序,并直接从Android Studio安装。此应用不会分发给其他设备。我们在线购买了这些平板电脑,开箱即用,即没有涉及电话公司或公共运营商。这些平板电脑未在Google注册,即没有与之相关的Gmail帐户;事实上,我们甚至无法与他们一起访问Google Play。我自己拆开了这些平板电脑,从未在Google或三星上注册过这些平板电脑。
所以当我今天早上来到并看到屏幕上的通知时,我很惊讶已经下载了计划的软件更新并准备好了。它说这是876.87 MB,它想要升级到Lollipop。
我不知道升级的来源或启动方式。我担心的是,如果在客户现场或贸易展会上发生这种情况,意外升级可能会破坏我们的软件或造成其他恶作剧。 有没有办法可以通过编程方式禁用软件升级?
答案 0 :(得分:0)
作为应用程序开发人员,您无法控制固件升级。它们来自载体,或者如果它是wi-fi平板电脑,制造商。
您唯一的选择是控制固件。这意味着为您选择的硬件构建自己的Android固件dist。然后,您可以禁用(或以其他方式控制)固件更新计划/处理我在固件中进行更改。
与部署应用程序相比,拥有固件是一件非常重要的事情。
答案 1 :(得分:0)
我今天早上来的时候感到很惊讶,并在屏幕上看到一个预定软件更新的通知
作为一名软件开发人员,我无法理解你的惊喜。它是一个众所周知的(并且由于缓慢/延迟推出而经常批评的功能)操作系统的功能
我不知道升级的来源或启动方式
那些来自设备制造商(你说三星,对吗?)并且不需要任何类型的登录或帐户。它在操作系统内部的某处编码,以检查制造商服务器是否有更新。与Windows,Mac OS,Linux或iOS相同。
应用程序无法从API的角度来禁用操作系统更新。这将是一个重大的安全漏洞。人们很容易想象一个恶意应用程序利用已知的操作系统漏洞并阻止操作系统自身更新,从而修补漏洞。
针对您案例的可能解决方案
除了创建自己的自定义操作系统来控制流程之外我唯一可能想到的方法是托管您自己的VPN服务器来阻止更新服务器(或阻止整个互联网期望您想要访问的资源您的应用)并在Settings -> WiFi
下将设备配置到此VPN。
ps。:我看到了上面提到的link,我建议不要禁用系统服务(或者至少在你拨打它之后测试A LOT),因为这可能会导致其他问题。