技術領域
本發明涉及移動通信技術領域,尤其涉及一種處理產品生產數據的方法及裝置。
背景技術:
移動終端的產品生產數據主要包括:產品的基板號,MSN號,藍牙、WIFI地址,IMEI號等,產品生產數據存儲于移動終端的存儲器中。在移動終端的使用過程中,不同的使用場景,可能要用到產品生產數據中的一種或多種數據。比如,移動終端的使用者要建立WLAN的連接,則移動終端的上層應用要從存儲產品生產數據的存儲器中讀取WIFI地址,再進一步建立WLAN的連接。如果WIFI地址讀取失敗,則無法建立WLAN連接。
一般,移動終端的產品生產數據具有終端唯一性和出廠后不可修改性,即,移動終端在工廠內時,可以通過特殊的產品生產數據處理工具對產品生產數據進行讀寫,但在移動終端出廠后,在正常使用過程中,產品生產數據則只能通過移動終端的上層應用讀取,無法對其進行修改。
但是,目前市面上存在大量移動終端修改工具(比如:root工具),此類工具可以通過移動終端的上層應用將存儲產品生產數據的存儲空間釋放,導致移動終端的正常使用過程中,移動終端的上層應用無法獲取產品生產數據。
目前,還沒有一種針對移動終端的上層應用讀取產品生產數據失敗的解決方案。
技術實現要素:
本發明實施例提供一種處理產品生產數據的方法及裝置,用以提供一種針對移動終端的上層應用讀取產品生產數據失敗的解決方案。
本發明實施例提供的一種處理產品生產數據的方法,包括:
移動終端的上層應用讀取第一份產品生產數據中的產品生產數據信息;
在移動終端的上層應用讀取第一份產品生產數據中的產品生產數據信息失敗后,移動終端的設備驅動讀取第二份產品生產數據中的產品生產數據信息,并將第一份產品生產數據替換為第二份產品生產數據。
本發明實施例提供的一種處理產品生產數據的裝置,包括:
上層應用,用于讀取第一份產品生產數據中的產品生產數據信息;
設備驅動,用于在上層應用讀取第一份產品生產數據中的產品生產數據信息失敗后,讀取第二份產品生產數據中的產品生產數據信息,之后,將第一份產品生產數據替換為第二份產品生產數據。
本發明實施例提供一種處理產品生產數據的方法及裝置,該方法中,在移動終端的上層應用讀取第一份產品生產數據中的產品生產數據信息失敗后,移動終端的設備驅動讀取第二份產品生產數據中的產品生產數據信息,并將第一份產品生產數據替換為第二份產品生產數據,解決了移動終端修改工具造成的產品生產數據讀取失敗的問題,保證了移動終端正常使用過程中能成功獲取產品生產數據,增強了產品生產數據的安全性。
附圖說明
圖1為本發明實施例提供的處理產品生產數據的方法過程的示意圖;
圖2為本發明實施例的產品生產數據讀取過程的流程圖;
圖3是本發明實施例的初始產品生產數據的寫入過程的流程圖;
圖4是本發明實施例的產品生產數據的更新過程的流程圖;
圖5為本發明實施例提供的處理產品生產數據的裝置的結構示意圖;
圖6A和圖6B為本發明實施例提供的處理產品生產數據的裝置中存儲產品生產數據的存儲器的示意圖。
具體實施方式
本發明實施例提供一種處理產品生產數據的方法和裝置,該方法中,在移動終端的上層應用讀取第一份產品生產數據中的產品生產數據信息失敗后,移動終端的設備驅動讀取第二份產品生產數據中的產品生產數據信息,并將第一份產品生產數據替換為第二份產品生產數據,解決了移動終端修改工具造成的產品生產數據讀取失敗的問題,保證了移動終端正常使用過程中能成功獲取產品生產數據。
圖1為本發明實施例提供的處理產品生產數據的方法過程的示意圖,如圖1所示,該方法包括以下步驟:
S101:移動終端的上層應用讀取第一份產品生產數據中的產品生產數據信息。
S102:在S101步驟中移動終端的上層應用讀取第一份產品生產數據中的產品生產數據信息失敗后,移動終端的設備驅動讀取第二份產品生產數據中的產品生產數據信息,并將第一份產品生產數據替換為第二份產品生產數據。
在本發明實施例中,考慮到產品生產數據的重要性,產品生產數據有兩份,在第一份產品生產數據中的產品生產數據信息讀取失敗后,可進一步讀取第二份產品生產數據中的產品生產數據信息,并用第二份產品生產數據替換第一份產品生產數據,以實現產品生產數據的恢復。
在移動終端出廠前,以及在工廠內更新產品生產數據的過程中,將要寫入或更新的產品生產數據先后寫為第一份產品生產數據和第二份產品生產數據,以實現備份,此時,兩份產品生產數據是相同的。但由于對產品生產數據的多次讀取、存儲產品生產數據的存儲器的硬件損壞、修改工具的刪除等因素,可能導致第一份產品生產數據無法讀取,或雖能讀取,但讀取出的數據被校驗出錯,則第一份產品生產數據已不可用,此時,由移動終端的設備驅動隱形地自動讀取第二份產品生產數據中的產品生產數據信息,并將第一份產品生產數據替換為讀取的第二份產品生產數據,以恢復產品生產數據。這里的“隱形”是指對于移動終端的使用者不可見,“自動”是指設備驅動在獲知第一份產品生產數據中的產品生產數據信息讀取失敗后,無需經過上層應用的確認,自動地讀取第二份產品生產數據中的產品生產數據信息,并將讀取到的產品生產數據信息返回給上層應用。其中,移動終端的設備驅動可為移動終端操作系統內核中的驅動代碼。由于上述過程對移動終端的使用者是未知的,因此提升了用戶感知。
進一步地,第二份產品生產數據僅由移動終端的設備驅動讀取。
第一份產品生產數據對上層應用有讀寫接口,對上層應用是可見的;在工廠中,可用特定的設備通過移動終端的上層應用寫第一份產品生產數據,而在出廠后,在正常使用移動終端的過程中,上層應用僅能讀取第一份產品生產數據中的產品生產數據信息,無法改寫、刪除產品生產數據。第二份產品生產數據對外界是完全隱藏的,唯一能對其操作的就是設備驅動。可選地,設備驅動為移動終端操作系統內核中的驅動代碼。
進一步地,第一份產品生產數據和第二份產品生產數據分別存儲于移動終端的同一個存儲器的不同分區或不同存儲器中。
這樣做,可以有效避免由于一個分區損壞而導致兩份產品生產數據都無法讀取的情況,可靠性高。實際實現時,一份產品生產數據可占用32K、64K等大小的存儲空間,具體大小視產品生產數據的數據量而定。
進一步地,本發明實施例提供的處理產品生產數據的方法還包括:移動終端將收到的初始產品生產數據作為第一份產品生產數據,并存儲第一份產品生產數據,以及將該收到的初始產品生產數據作為第二份產品生產數據,并存儲第二份產品生產數據。
在移動終端的生產過程中,移動終端將收到的初始產品生產數據首先作為第一份產品生產數據進行存儲,然后再由設備驅動隱形地作為第二份產品生產數據進行存儲。兩個存儲過程中的任何一個出錯,則會重新進入生產過程。直至重復進入產生過程的次數達到預設的次數閾值(比如:2次)。
進一步地,本發明實施例提供的處理產品生產數據的方法還包括:
移動終端將收到的更新的產品生產數據作為第一份產品生產數據替換已存儲的第一份產品生產數據,以及將更新的產品生產數據作為第二份產品生產數據,替換已存儲的第二份產品生產數據。
根據工藝需要,在特殊的情況下(比如:產品反包),需要在工廠中更新產品生產數據。該過程中,分別對兩份產品生產數據進行更新,保證兩份產品生產數據是相同的。
進一步地,若將更新的產品生產數據替換已存儲的第一份產品生產數據失敗,則移動終端的設備驅動讀取已存儲的第一份產品生產數據中的產品生產數據信息,若讀取成功,則重新將收到的更新的產品生產數據作為第一份產品生產數據替換已存儲的第一份產品生產數據;
若將更新的產品生產數據替換已存儲的第二份產品生產數據失敗,則移動終端的設備驅動讀取已存儲的第二份產品生產數據中的產品生產數據信息,若讀取成功,則重新將收到的更新的產品生產數據作為第二份產品生產數據替換已存儲的第二份產品生產數據。
在更新產品生產數據時,可能由于操作、硬件設備讀寫等諸多原因,導致一次更新失敗,這里,無論第一份產品生產數據和第二份產品生產數據任意一個更新失敗,則認為產品生產數據更新失敗。此時,可選擇退出更新過程,也可嘗試讀取已存儲的產品生產數據,若讀取成功,則證明存儲該產品生產數據的硬件沒有損壞,可嘗試再次更新產品生產數據。實際實現時,可預設重復更新次數的閾值(比如:2次),當重復更新次數達到該預設的閾值時,則退出更新過程。
設備驅動在對產品生產數據進行讀取時,使用函數bdget_disk()來獲取存儲產品生產數據的存儲器或存儲器分區的設備句柄(作為后面函數調用的參數),并通過函數族bread()和brelse()來讀取產品生產數據。設備驅動可通過函數族getblk(),mark_buffer_dirty(), ll_rw_block(), brelse()實現兩份產品生產數據的相互替換。這樣就保證了兩份產品生產數據的同步。比如,當兩份產品生產數據分別存儲于同一存儲器的分區BCK1和BCK2時,通過上述函數族,可將BCK1的數據寫入BCK2。以上函數僅為示例,不應視為對本發明實施例的限制。
下面,分別參考圖2、圖3和圖4說明本發明實施例的產品生產數據讀取、初始產品生產數據的寫入以及產品生產數據的更新過程。
首先,參考圖2說明本發明實施例的產品生產數據讀取的過程。
S201:移動終端的上層應用讀取第一份產品生產數據中的產品生產數據信息,若成功,則執行步驟S202;若失敗,則執行步驟S203;
S202:返回讀取的產品生產數據信息給上層應用;
S203:移動終端的設備驅動自動讀取第二份產品生產數據中的產品生產數據信息,若失敗,則執行步驟S204;若成功,則執行步驟S205,可選地,可在執行步驟S205之前先執行步驟S205’;
S204:確認存儲產品生產數據的存儲器或存儲器分區已損壞,無法修復,退出產品生產數據的讀取流程;
S205:用第二份產品生產數據替換第一份產品生產數據并返回步驟S202;
S205’:對存儲第一份產品生產數據的存儲器分區或存儲器進行格式化,該步驟的目的是為了去除存儲器分區的可能存在的壞塊,提高替換時的存儲成功率。
下面,參考圖3說明本發明實施例的初始產品生產數據的寫入過程。
S301:進入工廠生產模式;
S302:將收到的初始產品生產數據作為第一份產品生產數據,并存儲第一份產品生產數據,若存儲成功,則執行步驟S303,若存儲失敗,則返回步驟S301;
S303:將收到的初始產品生產數據作為第二份產品生產數據,并存儲第二份產品生產數據,若存儲成功,則執行步驟S304,若存儲失敗,則返回步驟S301;
S304:進入生產的其他階段。
初始產品生產數據是在移動終端出廠前用特定的設備寫入的。一般,移動終端要先進入工廠生產模式才能寫入產品生產數據。在成功寫入產品生產數據后,再進入工廠生產的其他階段,比如:外殼包裝、整機性能測試等。
從上述步驟可以看出,第一份產品生產數據或第二份產品生產數據中的任意一份存儲失敗,都會重新進入工廠生產模式,實際實現時,可限定重新進入工廠生產模式的次數(比如:2次),以避免死循環。
最后,參考圖4說明本發明實施例的產品生產數據的更新過程。
根據工藝需要,在特殊的情況下(比如:產品反包),需要在工廠內更新產品生產數據。該過程中,分別對兩份產品生產數據進行更新,以保證兩份產品生產數據是相同的。該過程通過如下步驟實現:
S401:移動終端將收到的更新的產品生產數據作為第一份產品生產數據替換已存儲的第一份產品生產數據;若替換成功,則執行步驟S402,若替換失敗,則執行步驟S403;
S402:移動終端將收到的更新的產品生產數據作為第二份產品生產數據,替換已存儲的第二份產品生產數據,若成功,則執行步驟S405,若失敗,則執行步驟S406;
S403:移動終端的設備驅動讀取已存儲的第一份產品生產數據中的產品生產數據信息,若讀取成功,則返回步驟S401,若失敗,則執行步驟S404;
S404:確認存儲產品生產數據的存儲器或存儲器分區已損壞,無法修復,退出產品生產數據的更新過程;
S405:進入工廠更新的其他步驟;
S406:移動終端的設備驅動讀取已存儲的第二份產品生產數據中的產品生產數據信息,若讀取成功,則返回步驟S402,若失敗,則執行步驟S404。
實際實現時,可限定重新更新的次數(比如:2次),以避免死循環。可選地,在執行步驟S402步驟時,若失敗,也可直接執行步驟S404,即確認產品生產數據的存儲器或存儲器分區已損壞,退出產品生產數據的更新流程,不再進行更新。
基于同一發明構思,本發明實施例中還提供了一種移動終端處理產品生產數據的裝置,由于該移動終端的實現原理本發明實施例的處理產品生產數據的方法相似,因此該移動終端的實施可以參見方法的實施,重復之處不再贅述。
圖5為本發明實施例提供的處理產品生產數據的裝置的結構示意圖。該裝置具體包括:
上層應用501,用于讀取第一份產品生產數據中的產品生產數據信息;
設備驅動502,用于在上層應用501讀取第一份產品生產數據中的產品生產數據信息失敗后,讀取第二份產品生產數據中的產品生產數據信息,之后,將第一份產品生產數據替換為第二份產品生產數據。
進一步地,本發明實施例提供的處理產品生產數據的裝置中,第二份產品生產數據僅由設備驅動讀寫。
進一步地,如圖6A所示,本發明實施例提供的處理產品生產數據的裝置還包括:第一存儲器601,其中,第一存儲器601包括分區BCK1和分區BCK2,分區BCK1用于存儲第一份產品生產數據,分區BCK2用于存儲第二份產品生產數據。
或者,如圖6B所示,本發明實施例提供的處理產品生產數據的裝置還包括:第二存儲器602和第三存儲器603,其中,第二存儲器602用于存儲第一份產品生產數據,第三存儲器603用于存儲第二份產品生產數據。
本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或計算機程序產品。因此,本發明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本發明的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本發明范圍的所有變更和修改。
顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。