CN111949280B - 确保预装插件在出厂时正确安装的方法和装置 - Google Patents

确保预装插件在出厂时正确安装的方法和装置 Download PDF

Info

Publication number
CN111949280B
CN111949280B CN202010806039.8A CN202010806039A CN111949280B CN 111949280 B CN111949280 B CN 111949280B CN 202010806039 A CN202010806039 A CN 202010806039A CN 111949280 B CN111949280 B CN 111949280B
Authority
CN
China
Prior art keywords
count
plug
list
boot
started
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010806039.8A
Other languages
English (en)
Other versions
CN111949280A (zh
Inventor
王通源
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Youhua Software Technology Co ltd
Original Assignee
Shenzhen Youhua Software Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Youhua Software Technology Co ltd filed Critical Shenzhen Youhua Software Technology Co ltd
Priority to CN202010806039.8A priority Critical patent/CN111949280B/zh
Publication of CN111949280A publication Critical patent/CN111949280A/zh
Application granted granted Critical
Publication of CN111949280B publication Critical patent/CN111949280B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种确保预装插件在出厂时正确安装的方法和装置,所述方法包括步骤:S1:系统启动后,判断是否工厂生产模式;S2:若是,则判断系统中是否存在/data/boot_count文件;S3:若存在,则读取文件内容并将内容赋值给内存变量boot_count;否则,将内存变量boot_count赋值为0;S4:将内存变量boot_count的值加1,并将内存变量boot_count的值写入到所述/data/boot_count文件;S5:获取系统当前启动的插件列表;S6:判断当前启动的插件列表与系统预置的插件列表是否一致;S7:若否,则恢复插件,使当前启动的插件列表还原为系统预置的插件列表。本发明可有效判断插件是否安装完成并确保正确安装。

Description

确保预装插件在出厂时正确安装的方法和装置
技术领域
本发明涉及计算机技术领域,特别涉及一种确保预装插件在出厂时正确安装的方法和装置。
背景技术
智能网关设备通常包含普通业务部分和智能业务部分,智能业务部分在系统起来时,如果插件没有安装,会进行插件的安装。但是工厂生产时由于设备上电、掉电的时间不确定,导致插件的安装有可能不能完成,或者是部分完成。这种情况下,出厂以后系统起来后就不会再进行插件的安装,这就导致产品出厂以后部分或全部插件不能正常工作,带来大量的售后问题。
发明内容
基于此,有必要提供一种确保预装插件在出厂时正确安装的方法和装置,可有效判断插件是否安装完成并确保正确安装。
为实现上述发明目的,本发明采用以下技术方案。
本发明提供一种确保预装插件在出厂时正确安装的方法,包括步骤:
S1:系统启动后,判断是否工厂生产模式;
S2:若是,则判断系统中是否存在/data/boot_count文件;
S3:若存在,则读取文件内容并将内容赋值给内存变量boot_count;否则,将内存变量boot_count赋值为0;
S4:将内存变量boot_count的值加1,并将内存变量boot_count的值写入到所述/data/boot_count文件;
S5:获取系统当前启动的插件列表;
S6:判断当前启动的插件列表与系统预置的插件列表是否一致;
S7:若否,则恢复插件,使当前启动的插件列表还原为系统预置的插件列表。
上述方法中,在步骤S5前,还包括步骤:
判断内存变量boot_count的值是否不大于3;
若是,则进入步骤S5。
上述方法中,在步骤S7之后,还包括步骤:
若当前启动的插件列表与系统预置的插件列表一致,则删除/data/boot_count文件。
本发明还提供一种确保预装插件在出厂时正确安装的装置,包括:
第一判断模块,用于系统启动后,判断是否工厂生产模式;
第二判断模块,用于若是工厂生产模式,则判断系统中是否存在/data/boot_count文件;
赋值模块,用于若存在所述文件,则读取文件内容并将内容赋值给内存变量boot_count;否则,将内存变量boot_count赋值为0;
写入模块,用于将内存变量boot_count的值加1,并将内存变量boot_count的值写入到所述/data/boot_count文件;
获取模块,用于获取系统当前启动的插件列表;
第三判断模块,用于判断当前启动的插件列表与系统预置的插件列表是否一致;
恢复模块,用于若当前启动的插件列表与系统预置的插件列表不一致,则恢复插件,使当前启动的插件列表还原为系统预置的插件列表。
上述装置中,还包括:
计数模块,用于判断内存变量boot_count的值是否不大于3;
若是,则引导所述获取模块获取系统当前启动的插件列表。
上述装置中,还包括:
删除模块,用于若当前启动的插件列表与系统预置的插件列表一致,则删除/data/boot_count文件。
本发明通过先判断设备的系统是否工厂生产模式,再根据/data/boot_count文件的内容识别出是否已经安装过插件,然后再通过当前的启动的插件列表和预置的插件列表是否一致来判断插件是否正确安装,进而对设备进行统一安装,达到确保所有的预装插件都能够正常安装的目的。本发明流程简单,可靠性高。
附图说明
图1为本实施例中确保预装插件在出厂时正确安装的方法的流程示意图;
图2为本实施例中确保预装插件在出厂时正确安装的装置的方框结构示意图。
本发明目的的实现及其功能、原理将在具体实施方式中结合附图作进一步阐述。
具体实施方式
下面结合附图及具体实施例做进一步说明。
如图1所示,本实施例提供一种确保预装插件在出厂时正确安装的方法,用于对智能网关等设备进行预装插件的管理,该方法主要包括以下步骤:
S1:系统启动后,判断是否工厂生产模式;
S2:若是,则判断系统中是否存在/data/boot_count文件;否则,结束流程;
S31:若存在,则读取文件内容并将内容赋值给内存变量boot_count;
S32:否则,将内存变量boot_count赋值为0;
S4:将内存变量boot_count的值加1,并将内存变量boot_count的值写入到所述/data/boot_count文件;
S41:判断内存变量boot_count的值是否不大于3;
S5:若是,获取系统当前启动的插件列表;否则,结束流程;
S6:判断当前启动的插件列表与系统预置的插件列表是否一致;
S7:若否,则恢复插件,使当前启动的插件列表还原为系统预置的插件列表。
S8:若是,删除/data/boot_count文件。
步骤S1中,判断是否工厂生产模式是进行预装插件的必要前提,若设备未处于工厂生产模式,则认为该产品已经安装过预装插件,无需再次安装,流程结束。
如果设备是工厂生产模式,则进入预装流程,首先需要查找系统中的/data/boot_count文件,该文件为日志文件,显示出系统的启动次数。如果系统没有启动过,则可能不存在该文件,此时,我们将名称为boot_count的内存变量赋值为0。如果系统启动过,则读取文件中的内容并将内容赋值给上述内存变量boot_count,使内存变量的值与上述/data/boot_count文件中的内容相匹配。至此,步骤S3完成。
然后,进入步骤S4,将内存变量boot_count的值加1,并将内存变量boot_count的值写入到所述/data/boot_count文件,其目的是,更新本次启动记录到日志文件,使内存变量boot_count的值修改为本次系统启动的第次,内存变量boot_count的值将被后续流程调用。
考虑到后续用户可能会另外安装其它插件,本实施例只对设备出厂后的前3次启动过程中检查预装插件是否被正确安装,因此,需要判断内存变量boot_count的值是否不大于3。如果大于3,则表明该设备的系统启动次数超过3次,我们不再重新安装预置的插件,如果小于或等于3,则会检查该设备是否已经正确安装预置的插件。具体流程如下:
若boot_count的值不大于3,则获取系统当前启动的插件列表;
判断该列表与系统预置的插件列表是否一致;
如果一致,表明设备已经正确安装了所有预置插件,如果不一致,表明设备未能正确安装所有预置插件。
本实施例可使用以下命令获取当前启动的插件列表:
dbus-send--system--type=method_call--print-reply--dest=com.ctc.
appframework1/com/ctc/appframework1com.ctc.appframework1.AppAgent.List。
对于未能正确安装所有预置插件何如处理,本实施例采用的方法是:
恢复插件,使当前启动的插件列表还原为系统预置的插件列表。
相当于对当前启动的插件列表进行重置,使其恢复出厂设置。
可通过以下命令恢复插件:
dbus-send--system--type=method_call--print-reply--dest=com.ctc.saf1/com/ctc/saf1com.ctc.saf1.framework.Restore。
另外,对于已经正确安装了所有预置插件的设备,我们最后一步会对系统进行复位操作,具体操作是:
删除/data/boot_count文件。也即,将日志文件中,系统启动次数清零。由于此时插件已完成安装,系统将退出工厂生产模式,不会再进行插件的安装操作了,至此,设备正式完成出厂设置。
参照图2所示,本实施例对应提供一种确保预装插件在出厂时正确安装的装置100,包括:
第一判断模块10,用于系统启动后,判断是否工厂生产模式;
第二判断模块20,用于若是工厂生产模式,则判断系统中是否存在/data/boot_count文件;
赋值模块30,用于若存在所述文件,则读取文件内容并将内容赋值给内存变量boot_count;否则,将内存变量boot_count赋值为0;
写入模块40,用于将内存变量boot_count的值加1,并将内存变量boot_count的值写入到所述/data/boot_count文件;
获取模块50,用于获取系统当前启动的插件列表;
第三判断模块60,用于判断当前启动的插件列表与系统预置的插件列表是否一致;
恢复模块70,用于若当前启动的插件列表与系统预置的插件列表不一致,则恢复插件,使当前启动的插件列表还原为系统预置的插件列表。
本实施例的装置还包括:
计数模块41,用于判断内存变量boot_count的值是否不大于3;
若是,则引导所述获取模块50获取系统当前启动的插件列表。
此外,还包括:
删除模块80,用于若当前启动的插件列表与系统预置的插件列表一致,则删除/data/boot_count文件。
上述各模块的功能和原理可参照图1所示实施例中所述,此处不再赘述。
综上所述,本发明通过先判断设备的系统是否工厂生产模式,再根据/data/boot_count文件的内容识别出是否已经安装过插件,然后再通过当前的启动的插件列表和预置的插件列表是否一致来判断插件是否正确安装,进而对设备进行统一安装,达到确保所有的预装插件都能够正常安装的目的。本发明流程简单,可靠性高。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

Claims (6)

1.一种确保预装插件在出厂时正确安装的方法,其特征在于,包括步骤:
S1:系统启动后,判断是否工厂生产模式;
S2:若是,则判断系统中是否存在/data/boot_count文件;
S3:若存在,则读取文件内容并将内容赋值给内存变量boot_count;否则,将内存变量boot_count赋值为0;
S4:将内存变量boot_count的值加1,并将内存变量boot_count的值写入到所述/data/boot_count文件;
S5:获取系统当前启动的插件列表;
S6:判断当前启动的插件列表与系统预置的插件列表是否一致;
S7:若否,则恢复插件,使当前启动的插件列表还原为系统预置的插件列表。
2.如权利要求1所述的方法,其特征在于,在步骤S5前,还包括步骤:
判断内存变量boot_count的值是否不大于3;
若是,则进入步骤S5。
3.如权利要求2所述的方法,其特征在于,在步骤S7之后,还包括步骤:
若当前启动的插件列表与系统预置的插件列表一致,则删除/data/boot_count文件。
4.一种确保预装插件在出厂时正确安装的装置,其特征在于,包括:
第一判断模块,用于系统启动后,判断是否工厂生产模式;
第二判断模块,用于若是工厂生产模式,则判断系统中是否存在/data/boot_count文件;
赋值模块,用于若存在所述文件,则读取文件内容并将内容赋值给内存变量boot_count;否则,将内存变量boot_count赋值为0;
写入模块,用于将内存变量boot_count的值加1,并将内存变量boot_count的值写入到所述/data/boot_count文件;
获取模块,用于获取系统当前启动的插件列表;
第三判断模块,用于判断当前启动的插件列表与系统预置的插件列表是否一致;
恢复模块,用于若当前启动的插件列表与系统预置的插件列表不一致,则恢复插件,使当前启动的插件列表还原为系统预置的插件列表。
5.如权利要求4所述的装置,其特征在于,还包括:
计数模块,用于判断内存变量boot_count的值是否不大于3;
若是,则引导所述获取模块获取系统当前启动的插件列表。
6.如权利要求5所述的装置,其特征在于,还包括:
删除模块,用于若当前启动的插件列表与系统预置的插件列表一致,则删除/data/boot_count文件。
CN202010806039.8A 2020-08-12 2020-08-12 确保预装插件在出厂时正确安装的方法和装置 Active CN111949280B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010806039.8A CN111949280B (zh) 2020-08-12 2020-08-12 确保预装插件在出厂时正确安装的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010806039.8A CN111949280B (zh) 2020-08-12 2020-08-12 确保预装插件在出厂时正确安装的方法和装置

Publications (2)

Publication Number Publication Date
CN111949280A CN111949280A (zh) 2020-11-17
CN111949280B true CN111949280B (zh) 2023-11-14

Family

ID=73332740

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010806039.8A Active CN111949280B (zh) 2020-08-12 2020-08-12 确保预装插件在出厂时正确安装的方法和装置

Country Status (1)

Country Link
CN (1) CN111949280B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102375735A (zh) * 2010-08-24 2012-03-14 腾讯科技(深圳)有限公司 插件扫描方法和系统
CN103389905A (zh) * 2012-05-10 2013-11-13 航天信息股份有限公司 插件加载方法及系统
WO2014048240A1 (zh) * 2012-09-28 2014-04-03 北京奇虎科技有限公司 使用浏览器中内置ActiveX插件的方法和客户端
WO2017088414A1 (zh) * 2015-11-25 2017-06-01 北京金山安全软件有限公司 应用程序的处理方法、装置及电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102375735A (zh) * 2010-08-24 2012-03-14 腾讯科技(深圳)有限公司 插件扫描方法和系统
CN103389905A (zh) * 2012-05-10 2013-11-13 航天信息股份有限公司 插件加载方法及系统
WO2014048240A1 (zh) * 2012-09-28 2014-04-03 北京奇虎科技有限公司 使用浏览器中内置ActiveX插件的方法和客户端
WO2017088414A1 (zh) * 2015-11-25 2017-06-01 北京金山安全软件有限公司 应用程序的处理方法、装置及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于嵌入式Linux内核的自恢复设计;张杰;杨笔锋;马尚昌;严学阳;;成都信息工程大学学报(04);全文 *
基于远程可信度量的VTCM插件设计与实现;何旺宇;王中华;李亚晖;;信息通信(01);全文 *

Also Published As

Publication number Publication date
CN111949280A (zh) 2020-11-17

Similar Documents

Publication Publication Date Title
US10114655B2 (en) Rapid start up method for electronic equipment
CN107493290B (zh) Android智能电视系统软件进行OTA升级的方法
US20150067316A1 (en) Electronic device and testing method
CN105760200A (zh) 终端设备及其系统升级方法
CN102736978A (zh) 一种检测应用程序的安装状态的方法及装置
CN109587331B (zh) 云手机故障自动修复的方法与系统
CN102665093A (zh) 一种机顶盒测试方法及测试系统
US20160170735A1 (en) Operating system updating method by using a checklist
CN110908838B (zh) 一种数据处理方法、装置及电子设备和存储介质
CN103544031B (zh) 多分区外存储设备的Android系统升级方法和系统
CN112000358B (zh) 充电桩的升级方法与智能充电桩
CN111142911A (zh) 具有异常恢复功能的嵌入式系统及其升级方法
WO2021036917A1 (zh) 物联网设备中的系统升级方法、装置、设备及存储介质
CN101149699A (zh) 一种可靠获取异常和复位信息的方法
CN111506326A (zh) 终端设备的升级方法、装置、设备及存储介质
CN103442272A (zh) 一种系统升级的方法
US20130047009A1 (en) Computing device, storage medium and method for testing stability of server
CN111949280B (zh) 确保预装插件在出厂时正确安装的方法和装置
CN114064084A (zh) Onu的升级管理方法、存储介质、电子装置和onu
CN103530142A (zh) 一种基于存储设备的Android系统升级方法和系统
CN110555009B (zh) 一种网络文件系统nfs服务的处理方法及装置
CN116015425B (zh) 光模块的控制方法和装置、存储介质及电子装置
CN112181467A (zh) 终端的存储器固件升级方法、装置、终端和存储介质
CN108595292B (zh) 一种系统的优化方法、移动终端及计算机存储介质
CN112804071A (zh) 在线升级方法、升级文件提供方法、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant