CN111949280A - 确保预装插件在出厂时正确安装的方法和装置 - Google Patents
确保预装插件在出厂时正确安装的方法和装置 Download PDFInfo
- Publication number
- CN111949280A CN111949280A CN202010806039.8A CN202010806039A CN111949280A CN 111949280 A CN111949280 A CN 111949280A CN 202010806039 A CN202010806039 A CN 202010806039A CN 111949280 A CN111949280 A CN 111949280A
- Authority
- CN
- China
- Prior art keywords
- plug
- list
- count
- boot
- memory variable
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000009434 installation Methods 0.000 title abstract description 15
- 238000011084 recovery Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-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文件。
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 true CN111949280A (zh) | 2020-11-17 |
CN111949280B 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)
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 | 北京金山安全软件有限公司 | 应用程序的处理方法、装置及电子设备 |
-
2020
- 2020-08-12 CN CN202010806039.8A patent/CN111949280B/zh active Active
Patent Citations (4)
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)
Title |
---|
何旺宇;王中华;李亚晖;: "基于远程可信度量的VTCM插件设计与实现", 信息通信, no. 01 * |
张杰;杨笔锋;马尚昌;严学阳;: "基于嵌入式Linux内核的自恢复设计", 成都信息工程大学学报, no. 04 * |
Also Published As
Publication number | Publication date |
---|---|
CN111949280B (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10114655B2 (en) | Rapid start up method for electronic equipment | |
CN107493290B (zh) | Android智能电视系统软件进行OTA升级的方法 | |
CN101593083B (zh) | 对计算机配置信息进行保护和恢复的装置、计算机和方法 | |
US20150067316A1 (en) | Electronic device and testing method | |
CN101895671B (zh) | 一种机顶盒Loader模块升级方法及其机顶盒 | |
CN113434202B (zh) | 一种设备的启动方法、装置、电子设备及计算机存储介质 | |
CN105760200A (zh) | 终端设备及其系统升级方法 | |
US20150146486A1 (en) | Data Storage Device and Flash Memory Control Method | |
WO2021036917A1 (zh) | 物联网设备中的系统升级方法、装置、设备及存储介质 | |
CN108345464A (zh) | 一种安卓系统的启动方法及安卓车机 | |
CN111506326A (zh) | 终端设备的升级方法、装置、设备及存储介质 | |
CN102081539A (zh) | 一种用于双模终端的可靠软件升级方法 | |
CN103530142A (zh) | 一种基于存储设备的Android系统升级方法和系统 | |
CN105468420B (zh) | 操作系统升级方法和装置 | |
CN107995033B (zh) | 一种onu配置文件升级方法及装置 | |
CN106033363B (zh) | 一种嵌入式系统的应用程序的升级方法及升级装置 | |
CN106028142A (zh) | 一种播放设备的升级控制方法和装置 | |
CN111949280A (zh) | 确保预装插件在出厂时正确安装的方法和装置 | |
CN112804071B (zh) | 在线升级方法、升级文件提供方法、设备及存储介质 | |
CN109347937B (zh) | 一种应用于视频监控设备的智能远程升级方法 | |
CN109739328B (zh) | 一种m.3ssd的复位电路及方法 | |
CN105791514B (zh) | 一种应用启动监测方法及装置 | |
CN116820528A (zh) | 固件版本升级方法、装置、芯片和电子设备 | |
CN111309388A (zh) | 设备的系统软件版本的自动回滚系统及其方法 | |
CN108595292B (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 |