DE60206055T2 - System und verfahren für verbesserte sicherheit bei der umprogrammierung eines handgerätes - Google Patents
System und verfahren für verbesserte sicherheit bei der umprogrammierung eines handgerätes Download PDFInfo
- Publication number
- DE60206055T2 DE60206055T2 DE60206055T DE60206055T DE60206055T2 DE 60206055 T2 DE60206055 T2 DE 60206055T2 DE 60206055 T DE60206055 T DE 60206055T DE 60206055 T DE60206055 T DE 60206055T DE 60206055 T2 DE60206055 T2 DE 60206055T2
- Authority
- DE
- Germany
- Prior art keywords
- reprogramming
- code
- wireless communication
- communication device
- data
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000004891 communication Methods 0.000 claims abstract description 131
- 230000004044 response Effects 0.000 claims abstract description 41
- 230000008672 reprogramming Effects 0.000 claims description 112
- 238000013475 authorization Methods 0.000 claims description 46
- 238000013500 data storage Methods 0.000 claims 6
- 230000001960 triggered effect Effects 0.000 claims 1
- 230000015654 memory Effects 0.000 abstract description 117
- 238000012545 processing Methods 0.000 abstract description 19
- 230000002085 persistent effect Effects 0.000 abstract description 18
- 238000003860 storage Methods 0.000 description 62
- 230000008569 process Effects 0.000 description 35
- 230000006870 function Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 20
- 238000005056 compaction Methods 0.000 description 13
- 239000000284 extract Substances 0.000 description 8
- 238000004590 computer program Methods 0.000 description 5
- 230000032258 transport Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004540 process dynamic Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101150012579 ADSL gene Proteins 0.000 description 1
- 102100020775 Adenylosuccinate lyase Human genes 0.000 description 1
- 108700040193 Adenylosuccinate lyases Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/30—Security of mobile devices; Security of mobile applications
- H04W12/35—Protecting application or service provisioning, e.g. securing SIM application provisioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/22—Processing or transfer of terminal data, e.g. status or physical capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/22—Processing or transfer of terminal data, e.g. status or physical capabilities
- H04W8/24—Transfer of terminal data
- H04W8/245—Transfer of terminal data from a network towards a terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/18—Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
- H04W8/20—Transfer of user or subscriber data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Stored Programmes (AREA)
- Transceivers (AREA)
- Telephonic Communication Services (AREA)
- Communication Control (AREA)
- Sub-Exchange Stations And Push- Button Telephones (AREA)
- Information Transfer Between Computers (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Circuits Of Receivers In General (AREA)
- Debugging And Monitoring (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Selective Calling Equipment (AREA)
Description
- Hintergrund
- Gebiet der Erfindung
- Die vorliegende Erfindung betrifft allgemein das Gebiet der drahtlosen Kommunikation und insbesondere Sicherheitssysteme zur Neueinrichtung und Umprogrammierung einer drahtlosen Kommunikationsvorrichtung.
- Drahtlose Kommunikationsvorrichtungen, welche jede Art von Gerät umfassen, das über ein drahtloses Kommunikationsnetzwerk kommuniziert, werden programmiert und eingerichtet, wenn sie hergestellt werden. Alternativ können sie programmiert und eingerichtet werden, wenn sie durch einen Händler oder einen Netzzugangsanbieter, wie zum Beispiel Sprint, Verizon, AT&T Mobile und andere, aktiviert werden. Das Programmieren und Einrichten (hier insgesamt als "Programmieren" bezeichnet) einer drahtlosen Kommunikationsvorrichtung (hier auch als eine "drahtlose Vorrichtung", "Mobilteil" oder "mobiles Gerät" bezeichnet), versorgt das Mobilteil mit seiner Mobil-Identifikationsnummer ("MIN") – auch seine Telefonnummer genannt, und anderen Betriebsparametern, Netzwerkparametern und Anwendungssoftware. Diese Elemente werden in einem persistenten Speicher in dem Mobilteil untergebracht, wo sie nicht verändert oder gelöscht werden können.
- Typischerweise, siehe zum Beispiel US-A-5673317, werden Mobilteile durch den Netzbetreiber oder Dienstanbieter programmiert, wenn das Mobilteil aktiviert wird. In herkömmlichen Mobilteilen wird, nachdem diese Programmierung stattfand, auch ein Verriegelungscode (hier auch als ein "Zugriffscode" bezeichnet) in dem persistenten Speicher in dem Mobilteil untergebracht. Danach muss jeden weiteren Programmierversuchen zuerst der Zugriffscode geliefert werden, bevor das Mobilteil erlaubt, dass sein persistenter Speicher modifiziert wird, ein Vorgang, der als Neueinrichtung oder Umprogrammierung (hier insgesamt als "Umprogrammierung" bezeichnet) bekannt ist.
- Diese Art herkömmlicher Sicherheit zum Umprogrammieren von Mobilteilen begegnet vielen Schwierigkeiten. Durch die Interessen des Graumarktes und des Schwarzmarktes wurden Anwendungsdienstprogramme und -werkzeuge entwickelt, die in der Lage sind, den Zugriffscode eines Mobilteiles offen zu legen, so dass das Mobilteil umprogrammiert werden kann. Oftmals werden dann umprogrammierte Telefone als Graumarktgüter an arglose Kunden verkauft. Außerdem werden diese unerlaubt umprogammierten Telefone auch auf dem Schwarzmarkt verkauft, wo ihre Verwendung legale Kunden durch Blockieren des Netzes mit unbezahltem Verkehr durcheinander bringt.
- Was deshalb gebraucht wird, ist ein System und ein Verfahren, das für zusätzliche Sicherheit in Mobilteilen gegen unbefugtes Umprogrammieren sorgt, ohne das befugte Umprogrammieren zu behindern.
- Zusammenfassung
- Herkömmliche Mobilteile können gegenwärtig mit ziemlich preiswerten Softwaredienstprogrammen und einer seriellen Verbindung umprogrammiert werden. Ein solches Umprogrammieren erlaubt es, dass diese Mobilteile auf dem Grau- oder Schwarzmarkt verkauft werden, wo ihre unerlaubte Benutzung die Funkwellen mit zusätzlichem Verkehr blockiert und den Netzzugang für zahlende Kunden vereitelt.
- Es werden Systeme und Verfahren und ein computerlesbares Medium, wie in den unabhängigen Ansprüchen 1, 7, 13, und 21 definiert, für verbesserte Sicherheit in der Mobilteil-Umprogrammierung bereitgestellt, die verhindern, dass ein Mobilteil, ohne eine Art von Autorisierung von dem Dienstanbieter (hier auch als "Netzbetreiber" bezeichnet) umprogrammiert wird. Ein signifikanter Vorteil dieser neuen Lösung ist, dass der Netzbetreiber Aufzeichnungen führen kann, die sich darauf beziehen, wann, wo und durch wen ihre Telefone, die auf den Markt gebracht wurden, umprogrammiert werden. Außerdem erhöht das Erfordernis einer Netzbetreiberautorisierung für das Umprogrammieren eines Mobilteiles signifikant die Schwierigkeit und Komplexität des Umprogrammierens von Mobilteilen für die Verbreitung auf dem Grau- oder Schwarzmarkt.
- Wenn ein Mobilteil eine Umprogrammierungsanforderung empfängt oder einen Umprogrammierungsversuch entdeckt, kontaktiert das Mobilteil den Netzbetreiber für eine Autorisierung, umprogrammiert zu werden. Das Netz kann die Autorisierung liefern, die Autorisierung verweigern, zusätzliche Informationen von der Umprogrammierungsvorrichtung verlangen oder die Umprogrammierungsvorrichtung direkt kontaktieren, um die Umprogrammierung zu autorisieren.
- Zweckmäßigerweise kann das Mobilteil ohne den in dem persistenten Speicher gespeicherten Zugriffscode hergestellt werden. Dieses Fehlen eines Zugriffscodes verschafft dem Mobilteil keine Möglichkeit, dass es ohne Kenntnis und Autorisierung des Netzbetreibers umprogrammiert wird. Weitere Vorteile und Anwendungen der hier vorgestellten Systeme und Verfahren werden nach der Durchsicht der ausführlichen Beschreibung deutlich.
- Kurze Beschreibung der Zeichnungen
- Die Details der vorliegenden Erfindung sowohl über ihre Struktur als auch über ihre Funktion können teilweise durch das Studium der beigefügten Zeichnungen erkundet werden, in denen gleiche Bezugszeichen gleiche Teile bezeichnen, und in welchen:
-
1 ein schematisches Blockdiagramm des gesamten Softwarewartungssystems der drahtlosen Vorrichtung ist; -
2 ein schematisches Blockdiagramm des Softwarewartungssystems ist, das die Installation von Befehlssätzen über die Luftverbindungsschnittstelle hervorhebt; -
3 ein schematisches Blockdiagramm ist, das das System der vorliegenden Erfindung zum Ausführen dynamischer Befehlssätze in einer drahtlosen Kommunikationsvorrichtung darstellt; -
4 ein schematisches Blockdiagramm des Speichers der drahtlosen Vorrichtung ist; -
5 eine Tabelle ist, die die Codeabschnitt-Adresstabelle von3 darstellt; -
6 eine ausführliche Darstellung der Symbolbibliothek eins von3 mit Symbolen ist; -
7 eine Tabelle ist, die die Symboloffset-Adresstabelle von3 darstellt; -
8 eine Darstellung des Operationscodes ("Opcode") ist, auf den durch die Laufzeitmaschine zugegriffen wird; -
9 eine ausführlichere Darstellung des ersten Operationscodes von8 ist; -
10 ein Flussdiagramm ist, das das Verfahren der vorliegenden Erfindung zum Ausführen dynamischer Befehlssätze in einer drahtlosen Kommunikationsvorrichtung darstellt; -
11 ein Flussdiagramm ist, das eine beispielhafte Dynamischer-Befehlssatz-Operation darstellt; -
12 ein Flussdiagramm ist, das eine weitere beispielhafte Dynamischer-Befehlssatz-Operation darstellt; -
13 ein Flussdiagramm ist, das eine dritte beispielhafte Dynamischer-Befehlssatz-Operation darstellt; -
14 ein Flussdiagramm ist, das eine vierte beispielhafte Dynamischer-Befehlssatz-Operation darstellt; -
15 ein Flussdiagramm ist, das eine fünfte beispielhafte Dynamischer-Befehlssatz-Operation darstellt; -
16 ein Schaubild eines Netzwerks auf hoher Ebene ist, das ein Beispiel eines drahtlosen Kommunikationsnetzes darstellt; -
17A ein Blockdiagramm ist, das ein Beispiel einer drahtlosen Kommunikationsvorrichtung darstellt; -
17B ein Blockdiagramm ist, das ein Beispiel eines Entfernte-Laufzeitbefehle-Codeabschnitts darstellt; -
18A ein Blockdiagramm ist, das ein Beispiel eines PMRTI-Servers darstellt; -
18B ein Blockdiagramm ist, das ein Beispiel eines Server-Laufzeitbefehle-Codeabschnitts darstellt; -
19 ein Flussdiagramm ist, das einen Beispielvorgang zum Ausführen dynamischer Befehlssätze in einer drahtlosen Kommunikationsvorrichtung darstellt; -
20 ein Flussdiagramm ist, das einen Beispielvorgang zum Kompilieren dynamischer Befehlssätze in einer drahtlosen Kommunikationsvorrichtung darstellt; -
21 ein Flussdiagramm ist, dass einen Beispielvorgang zum Ausführen dynamischer Befehlssätze auf einem PMRTI-Server darstellt; -
22 ein Flussdiagramm ist, dass einen Beispielvorgang zur Netzbetreiber-Autorisierung der Mobilteil-Umprogrammierung darstellt; -
23 ein Flussdiagramm ist, dass einen Öffentlicher-und-Privater-Schlüssel-Beispielvorgang zur Netzbetreiber-Autorisierung der Mobilteil-Umprogrammierung darstellt; -
24 ein Flussdiagramm ist, dass einen Beispielvorgang zum Erzeugen eines Fensters einer autorisierungsfreien Umprogrammierung an einem Mobilteil darstellt; -
25 ein Flussdiagramm ist, dass ein Beispiel eines PMRTI-Vorgangs zur Netzbetreiber-Autorisierung der Mobilteil-Umprogrammierung darstellt; und -
26 ein Blockdiagramm ist, das ein beispielhaftes Computersystem darstellt, das in Verbindung mit vielen hierin beschriebenen Ausführungsformen verwendet werden kann. - Ausführliche Beschreibung
- Bestimmte Ausführungsformen, wie sie hier offenbart sind, sehen Systeme und Verfahren für eine bidirektionale Kommunikation von dynamischen Befehlssätzen zwischen einer drahtlosen Kommunikationsvorrichtung und einem drahtlosen Kommunikationsnetz vor. Beispielsweise ermöglicht ein Verfahren, wie es hier offenbart ist, dass eine drahtlose Kommunikationsvorrichtung einen Befehlssatz dynamisch aufbaut und diesen Befehlssatz an das Netz zur Ausführung und Verarbeitung sendet.
- Nach dem Lesen dieser Beschreibung wird es dem Fachmann deutlich werden, wie die Erfindung in verschiedenen alternativen Ausführungsformen und alternativen Anwendungen zu implementieren ist. Obwohl verschiedene Ausführungsformen der vorliegenden Erfindung hier beschrieben werden, versteht es sich jedoch, dass diese Ausführungsformen nur als Beispiel und nicht als Begrenzung dargestellt werden. Von daher sollte diese ausführliche Beschreibung verschiedener alternativer Ausführungsformen nicht ausgelegt werden, um den Bereich oder den Umfang der vorliegenden Erfindung, wie er in den beigefügten Ansprüchen dargelegt ist, zu beschränken.
- Einige Teile der ausführlichen Beschreibungen, die folgen, werden in Form von Prozeduren, Schritten, logischen Blöcken, Codes, einer Ablaufsteuerung und anderen symbolischen Darstellungen von Operationen an Datenbits innerhalb eines Mikroprozessors oder Speichers einer drahtlosen Vorrichtung präsentiert. Diese Beschreibungen und Darstellungen sind die Mittel, die von Fachleuten in der Datenverarbeitung verwendet werden, um den Inhalt ihrer Arbeit anderen Fachleuten äußerst effektiv mitzuteilen. Eine Prozedur, ein von einem Mikroprozessor ausgeführter Schritt, eine Anwendung, ein logischer Block, ein Prozess u.s.w. wird hier und allgemein verstanden als eine in sich konsistente Folge von Schritten oder Anweisungen, die zu einem gewünschten Ergebnis führen. Die Schritte sind jene, die physikalische Manipulationen physikalischer Größen erfordern. Obgleich nicht notwendigerweise, haben diese Größen üblicherweise die Form von elektrischen oder magnetischen Signalen, die gespeichert, übertragen, kombiniert, verglichen und anderweit in einer mikroprozessorbasierten drahtlosen Vorrichtung verarbeitet werden können. Es hat sich zuweilen erwiesen, hauptsächlich aus Gründen des allgemeinen Gebrauchs, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Terme, Zahlen oder Ähnliches zu bezeichnen. Wo physische Vorrichtungen, wie zum Beispiel ein Speicher, erwähnt werden, sind sie mit anderen physischen Vorrichtungen durch einen Bus oder eine andere elektrische Verbindung verbunden. Diese physischen Vorrichtungen können betrachtet werden, dass sie mit logischen Abläufen oder Anwendungen zusammenwirken, und sind deshalb mit logischen Operationen "verbunden". Zum Beispiel kann ein Speicher einen Code speichern oder auf ihn zugreifen, um eine logische Operation zu unterstützen, oder eine Anwendung kann einen Codeabschnitt aus dem Speicher zur Ausführung aufrufen.
- Man sollte jedoch nicht vergessen, dass alle diese und ähnliche Terme mit den geeigneten physikalischen Größen in Verbindung zu bringen sind und lediglich zweckmäßige Kennzeichnungen sind, die auf diese Größen angewendet werden. Sofern es nicht speziell anderweitig erklärt wird, als es aus den folgenden Diskussionen ersichtlich ist, versteht es sich, dass in der ganzen vorliegenden Erfindung Diskussionen, die Terme wie zum Beispiel "Verarbeiten" oder "Verbinden" oder "Übersetzen" oder "Anzeigen" oder "Eingeben" oder "Bestimmen" oder "Anzeigen" oder "Erkennen" oder Ähnliches verwenden, die Aktivität und die Prozesse eines Mikroprozessorsystems in einer drahtlosen Vorrichtung bezeichnen, das Daten, die als physikalische (elektronische) Größen innerhalb der Register und der Speicher des Computersystems repräsentiert werden, verarbeitet und in andere Daten umformt, die in gleicher Weise als physikalische Größen innerhalb der Speicher oder Register oder anderer solcher Informationsspeicher-, Übertragungs- oder Anzeigevorrichtungen der drahtlosen Vorrichtung repräsentiert werden.
-
1 ist ein schematisches Blockdiagramm des gesamten Softwarewartungssystems100 der drahtlosen Vorrichtung. Die Systemsoftware-Organisation der vorliegenden Erfindung ist im Folgenden im Anschluss an einen allgemeinen Überblick über das Softwarewartungssystem100 ausführlich dargestellt. Das allgemeine System100 beschreibt einen Vorgang des Lieferns von Systemsoftwareaktualisierungen und Befehlssätzen (Programmen) und das Installieren der gelieferten Software in einer drahtlosen Vorrichtung. Die Systemsoftwareaktualisierungen und Patchmanager-Laufzeitbefehle (PMRTI), die allgemeiner als Befehlssätze oder dynamische Befehlssätze bekannt sind, werden von dem Hersteller der Mobilteile erstellt. Die Systemsoftware ist in Symbolbibliotheken organisiert. Die Symbolbibliotheken sind in Codeabschnitte angeordnet. Wenn Symbolbibliotheken aktualisiert werden müssen, wird das Software-Update102 als ein oder mehrere Codeabschnitte transportiert. Das Software-Update wird zu den drahtlosen Vorrichtungen gesendet, von denen die drahtlose Kommunikationsvorrichtung104 repräsentativ ist, oder wird in separater Kommunikation von einer Basisstation106 unter Verwendung bekannter Luft-, Daten- oder Nachrichtentransportprotokolle übertragen. Die Erfindung ist auf kein bestimmtes Transportformat beschränkt, da die drahtlose Kommunikationsvorrichtung leicht modifiziert werden kann, um jedes verfügbare Über-Luft-Transportprotokoll zum Zweck des Empfangens der Systemsoftware und der PMRTI-Updates zu verarbeiten. - Die Systemsoftware kann als eine Sammlung von verschiedenen Untersystemen betrachtet werden. Codeobjekte können fest in einem dieser abstrakten Untersysteme verankert sein, und die resultierende Sammlung kann als eine Symbolbibliothek gekennzeichnet werden. Dies sorgt für eine logische Aufgliederung der Codebasis, und Software-Patches und -Fixes können mit einer dieser Symbolbibliotheken in Verbindung gebracht werden. In den meisten Fällen ist eine einzelne Aktualisierung mit einer oder meistens zwei Symbolbibliotheken verbunden. Der Rest der Codebasis, die anderen Symbolbibliotheken, bleiben unverändert.
- Der Gedanke der Symbolbibliotheken stellt einen Mechanismus bereit, mit Code und Konstanten umzugehen. Auf der anderen Seite passen die Lese-Schreib (RW)-Daten in eine einzelne individuelle RW-Bibliothek, die RAM-basierte Daten für alle Bibliotheken enthält.
- Sobald der transportierte Codeabschnitt durch die drahtlose Vorrichtung
104 empfangen wurde, muss er verarbeitet werden. Diese drahtlose Vorrichtung überschreibt einen bestimmten Codeabschnitt des nichtflüchtigen Speichers108 . Der nichtflüchtige Speicher108 weist einen Dateisystemabschnitt (FSS)110 und einen Codespeicherabschnitt112 auf. Der Codeabschnitt wird vor dem Transport typischerweise komprimiert, um die Belegung in dem FSS110 zu minimieren. Oft wird der aktualisierte Codeabschnitt von seinen RW-Daten begleitet sein, die eine andere Art von Symbolbibliothek sind, die alle RW-Daten für jede Symbolbibliothek enthält. Obwohl die RW-Daten beim Ausführen der Systemsoftware in einen flüchtigen Direktzugriffs-Lese-Schreib-Speicher114 geladen werden, müssen sie immer in dem nichtflüchtigen Speicher108 gespeichert werden, so dass sie jedes Mal in den flüchtigen Direktzugriffs-Lese-Schreib-Speicher114 geladen werden können, wenn die drahtlose Vorrichtung zurückgesetzt wird. Das beinhaltet, dass beim ersten Mal RW-Daten in den flüchtigen Direktzugriffs-Lese-Schreib-Speicher geladen werden. Wie nachfolgend ausführlicher erläutert, sind die RW-Daten typischerweise mit einem Patchmanager-Codeabschnitt angeordnet. - Das System
100 weist das Konzept virtueller Tabellen auf. Durch die Verwendung solcher Tabellen können Symbolbibliotheken in einem Codeabschnitt ohne Zerteilen (Ersetzen) anderer Teile der Systemsoftware (anderer Codeabschnitte) eingesetzt (ersetzt) werden. Virtuelle Tabellen werden aus Effizienzgründen von dem flüchtigen Direktzugriffs-Lese-Schreib-Speicher114 ausgeführt. Eine Codeabschnitt-Adresstabelle und eine Symboloffset-Adresstabelle sind virtuelle Tabellen. - Die aktualisierten Codeabschnitte werden durch die drahtlose Vorrichtung
104 empfangen und in dem FSS110 gespeichert. Eine Benutzerschnittstelle (UI) der drahtlosen Vorrichtung gibt dem Benutzer typischerweise bekannt, dass neue Software verfügbar ist. In Antwort auf UI-Eingabeaufforderungen bestätigt der Benutzer die Bekanntgabe und signalisiert den Patch- oder Aktualisierungsvorgang. Alternativ wird der Aktualisierungsvorgang automatisch ausgeführt. Es kann sein, dass die drahtlose Vorrichtung normale Kommunikationsaufgaben nicht ausführen kann, während der Aktualisierungsvorgang ausgeführt wird. Der Patchmanager- Codeabschnitt weist eine nichtflüchtige Lese-Schreib-Treiber-Symbolbibliothek auf, die auch in den flüchtigen Direktzugriffs-Lese-Schreib-Speicher114 geladen wird. Die nichtflüchtige Lese-Schreib-Treiber-Symbolbibliothek bewirkt, dass Codeabschnitte mit aktualisierten Codeabschnitten überschrieben werden. Der Patchmanager-Codeabschnitt weist die Lese-Schreib-Daten, die Codeabschnitt-Adresstabelle und die Symboloffset-Adresstabelle sowie einen Symbol-Zugriffscode und die Symbol-Zugriffscodeadresse (im Folgenden erörtert) auf. Teile von diesen Daten sind ungültig, wenn aktualisierte Codeabschnitte eingeführt werden, und ein aktualisierter Patchmanager-Codeabschnitt weist Lese-Schreib-Daten, eine Codeabschnitt-Adresstabelle und eine Symboloffset-Adresstabelle auf, die für die aktualisierten Codeabschnitte gültig sind. Sobald die aktualisierten Codeabschnitte in den Codespeicherabschnitt112 geladen sind, wird die drahtlose Vorrichtung zurückgesetzt. Anschließend an den Rücksetzvorgang kann die drahtlose Vorrichtung die aktualisierte Systemsoftware ausführen. Es versteht sich, dass der Patchmanager-Codeabschnitt andere Symbolbibliotheken beinhalten kann, die oben nicht erörtert wurden. Diese anderen Symbolbibliotheken müssen nicht in den flüchtigen Lese-Schreib-Speicher114 geladen werden. -
2 ist ein schematisches Blockdiagramm des Softwarewartungssystems100 , welches die Installation von Befehlssätzen über die Luftverbindungsschnittstelle hervorhebt. Zusätzlich zum Aktualisieren von Systemsoftware-Codeabschnitten kann dass Wartungssystem100 dynamische Befehlssätze, Programme oder Patchmanager-Befehlssätze (PMIS), die hier als Patchmanager-Laufzeitbefehle (PMRTI) bezeichnet werden, herunterladen und installieren. Der PMRTI-Codeabschnitt200 wird zu der drahtlosen Vorrichtung104 in der gleichen Weise wie die oben beschriebenen Systemsoftware- Codeabschnitte transportiert. PMRTI-Codeabschnitte werden am Anfang in dem FSS110 gespeichert. Ein PMRTI-Codeabschnitt ist typischerweise eine Binärdatei, die man sich als kompilierte Anweisungen für das Mobilteil vorstellen kann. Ein PMRTI-Codeabschnitt ist umfassend genug, um für die Ausführung von grundlegenden mathematischen Operationen und die Ausführung von bedingt ausgeführten Operationen zu sorgen. Beispielsweise könnte ein RF-Kalibrierung-PMRTI die folgenden Operationen ausführen:
IF RF CAL ITEM IS LESS THAN X
EXECUTE INSTRUCTION
ELSE
EXECUTE INSTRUCTION - Ein PMRTI kann grundlegende mathematische Operationen unterstützen, wie zum Beispiel Addition, Subtraktion, Multiplikation und Division. Wie bei den Systemsoftware-Codeabschnitten kann der PMRTI-Codeabschnitt in Antwort auf UI-Eingabeaufforderungen geladen werden, und die drahtlose Vorrichtung muss zurückgesetzt werden, nachdem der PMRTI in den Codespeicherabschnitt
112 geladen ist. Dann kann der PMRTI-Abschnitt ausgeführt werden. Wenn der PMRTI-Codeabschnitt mit irgendwelchen virtuellen Tabellen oder Lese-Schreib-Daten verknüpft ist, wird ein aktualisierter Patchmanager-Codeabschnitt mit dem PMRTI für die Installation in den Codespeicherabschnitt112 transportiert. Alternativ kann der PMRTI von dem FSS110 aufbewahrt und verarbeitet werden. Nachdem das Mobilteil104 all die Befehle in dem PMRTI-Abschnitt ausgeführt hat, kann der PMRTI-Abschnitt aus dem FSS110 gelöscht werden. Alternativ wird der PMRTI für zukünftige Vorgänge behalten. Zum Beispiel kann der PMRTI jedes Mal ausgeführt werden, wenn die drahtlose Vorrichtung eingeschaltet wird. - PMRTI ist eine sehr leistungsfähige Laufzeit-Befehlsmaschine. Das Mobilteil kann jeden zu ihm gelieferten Befehl durch die PMRTI-Umgebung ausführen. Dieser Mechanismus kann verwendet werden, um RF-Kalibrierungen zu unterstützen. Allgemeiner kann PMRTI verwendet werden, um Fehler in der Software der drahtlosen Vorrichtung ferngesteuert zu beseitigen, wenn, typischerweise als das Ergebnis von Benutzerbeschwerden, Softwareprobleme durch den Hersteller oder den Dienstanbieter erkannt werden. PMRTI kann auch Daten erfassen, die benötigt werden, um Softwareprobleme zu diagnostizieren. PMRTI kann neu heruntergeladene Systemanwendungen für die Datenanalyse, die Fehlersuche und die Fehlerbeseitigung starten. PMRTI kann RW-Daten basierte Updates für die Analyse und mögliche vorläufige Behebung eines Problems anstatt eines aktualisierten Systemsoftware-Codeabschnitts bereitstellen. PMRTI kann Speicherkompaktierungsalgorithmen zur Verwendung durch die drahtlose Vorrichtung bereitstellen.
- In einigen Aspekten der Erfindung kann die Organisation der Systemsoftware in Symbolbibliotheken Auswirkungen auf die Größe des flüchtigen Speichers
114 und des nichtflüchtigen Speichers108 haben, die für die Ausführung erforderlich ist. Das liegt an der Tatsache, dass die Codeabschnitte typischerweise größer sind als die Symbolbibliotheken, die in den Codeabschnitten angeordnet sind. Diese größeren Codeabschnitte existieren, um aktualisierte Codeabschnitte aufzunehmen. Das Organisieren der Systemsoftware als eine Sammlung von Bibliotheken beeinflusst die Anforderung an die Größe des nichtflüchtigen Speichers. Für die gleiche Codegröße ist die Menge des verwendeten nichtflüchtigen Speichers infolge der Tatsache höher, dass Codeabschnitte so dimensioniert werden können, dass sie größer als die darin angeordneten Symbolbibliotheken sind. - Sobald die Softwareaktualisierungen zu der drahtlosen Vorrichtung geliefert wurden, unterstützt das Softwarewartungssystem
100 die Speicherkompaktierung. Speicherkompaktierung ist ähnlich der Disketten-Defragmentierungsanwendungen in Desktop-Computern. Der Kompaktierungsmechanismus stellt sicher, dass der Speicher optimal genutzt wird und gut ausgewogen für zukünftige Codeabschnittsaktualisierungen ist, bei denen die Größe der aktualisierten Codeabschnitte unvorhersagbar ist. Das System100 analysiert den Codespeicherabschnitt, während er gepatcht (aktualisiert) wird. Das System100 versucht, aktualisierte Codeabschnitte in den Speicherplatz einzupassen, der durch den Codeabschnitt belegt wird, der gerade ersetzt wird. Wenn der aktualisierte Codeabschnitt größer ist als der Codeabschnitt, der gerade ersetzt wird, kompaktiert das System100 die Codeabschnitte im Speicher112 . Alternativ kann die Kompaktierung durch den Hersteller oder Dienstanbieter berechnet werden, und Kompaktierungsanweisungen können zu der drahtlosen Vorrichtung104 transportiert werden. - Die Kompaktierung kann infolge der Komplexität des Algorithmus und auch des enormen Volumens der Datenbewegung ein zeitaufwendiger Vorgang sein. Der Kompaktierungsalgorithmus sagt die Machbarkeit voraus, bevor er irgendeine Verarbeitung beginnt. UI-Eingabeaufforderungen können verwendet werden, um um Erlaubnis von dem Benutzer nachzusuchen, bevor die Kompaktierung versucht wird.
- In einigen Aspekten der Erfindung können alle Systemsoftware-Codeabschnitte gleichzeitig aktualisiert werden. Ein vollständiges Systemsoftware-Upgrade würde jedoch einen größeren FSS
110 erfordern. -
3 ist ein schematisches Blockdiagramm, das die Ausführung eines dynamischen Befehlssatzes der vorliegenden Erfindung in einer drahtlosen Kommunikationsvorrichtung darstellt. Das System300 weist einen Codespeicherabschnitt 112 im Speicher108 einschließlich ausführbarer Systemsoftware der drahtlosen Vorrichtung auf, die in eine Mehrzahl von aktuellen Codeabschnitten aufgeteilt ist. Es sind Codeabschnitt eins (302 ), Codeabschnitt zwei (304 ), Codeabschnitt n (306 ) und ein Patchmanager-Codeabschnitt308 gezeigt. Jedoch ist die Erfindung nicht auf irgendeine bestimmte Anzahl von Codeabschnitten beschränkt. Ferner weist das System300 eine erste Mehrzahl von Symbolbibliotheken auf, die in der zweiten Mehrzahl von Codeabschnitten angeordnet sind. Gezeigt sind die in Codeabschnitt eins (302 ) angeordnete Symbolbibliothek eins (310 ), die in Codeabschnitt zwei (304 ) angeordneten Symbolbibliotheken zwei (312 ) und drei (314 ) und die in Codeabschnitt n (306 ) angeordnete Symbolbibliothek m (316 ). Jede Bibliothek weist Symbole auf, die eine zugehörige Funktionalität haben. Zum Beispiel kann die Symbolbibliothek eins (310 ) den Betrieb des Flüssigkristalldisplays (LCD) der drahtlosen Vorrichtung umfassen. Dann würden die Symbole mit Displayfunktionen in Verbindung stehen. Wie im Folgenden ausführlich erörtert, sind zusätzliche Symbolbibliotheken in dem Patchmanager-Codeabschnitt308 angeordnet. -
4 ist ein schematisches Blockdiagramm des Speichers der drahtlosen Vorrichtung. Wie gezeigt, ist der Speicher der Codespeicherabschnitt112 von1 . Der Speicher ist ein beschreibbarer, nichtflüchtiger Speicher, wie zum Beispiel ein Flash-Speicher. Es versteht sich, dass die Codeabschnitte nicht notwendigerweise in dem gleichen Speicher wie der FSS110 gespeichert sein müssen. Es versteht sich auch, dass die Systemsoftware-Struktur der vorliegenden Erfindung mit Codeabschnitten ermöglicht werden könnte, die in einer Mehrzahl von kooperierenden Speichern gespeichert sind. Der Codespeicherabschnitt112 weist eine zweite Mehrzahl von angrenzend adressierten Speicherblöcken auf, wobei jeder Speicherblock einen zugehörigen Codeabschnitt von der zweiten Mehrzahl von Codeabschnitten speichert. So ist Codeabschnitt eins (302 ) in einem ersten Speicherblock400 , Codeabschnitt zwei (304 ) in dem zweiten Speicherblock402 , Codeabschnitt n (306 ) in dem n-ten Speicherblock404 und der Patchmanager-Codeabschnitt (308 ) in dem p-ten Speicherblock406 gespeichert. - Stellt man die
3 und4 gegenüber, ist der Anfang jedes Codeabschnitts an entsprechenden Startadressen im Speicher gespeichert, und die Symbolbibliotheken sind so angeordnet, dass sie an dem Anfang von Codeabschnitten beginnen. Das heißt, jede Symbolbibliothek beginnt an einer ersten Adresse und durchläuft sequentiell einen Bereich von Adressen von der ersten Adresse an. Zum Beispiel beginnt Codeabschnitt eins (302 ) an der ersten Startadresse408 (markiert mit "S") in dem Codespeicherabschnitt-Speicher112 . In3 beginnt Symbolbibliothek eins (310 ) am Anfang318 des ersten Codeabschnitts. Gleichermaßen beginnt Codeabschnitt zwei (304 ) an einer zweiten Startadresse410 (4 ), und die Symbolbibliothek zwei beginnt am Anfang320 von Codeabschnitt zwei (3 ). Codeabschnitt n (306 ) beginnt an einer dritten Startadresse412 in dem Codespeicherabschnitt-Speicher112 (4 ), und die Symbolbibliothek m (316 ) beginnt am Anfang des Codeabschnitts n322 (3 ). Der Patchmanager-Codeabschnitt beginnt an der p-ten Startadresse414 im Codespeicherabschnitt-Speicher112 , und die erste Symbolbibliothek in dem Patchmanager-Codeabschnitt308 beginnt am Anfang324 des Patchmanager-Codeabschnitts. Somit ist die Symbolbibliothek eins (310 ) ultimativ in dem ersten Speicherblock400 gespeichert. Wenn ein Codeabschnitt eine Mehrzahl von Symbolbibliotheken aufweist, wie zum Beispiel Codeabschnitt zwei (304 ), werden die Mehrzahl von Symbolbibliotheken in dem zugehörigen Speicherblock gespeichert, in diesem Fall dem Speicherblock402 . - In
3 weist das System300 ferner eine Codeabschnitt-Adresstabelle326 als einen Symboltyp auf, der in einer Symbolbibliothek enthalten ist, die in dem Patchmanager-Codeabschnitt308 angeordnet ist. Die Codeabschnitt-Adresstabelle stellt Querverweise von Codeabschnitt-Bezeichnern mit zugehörigen Codeabschnitt-Startadressen im Speicher her. -
5 ist eine Tabelle, die die Codeabschnitt-Adresstabelle326 von3 darstellt. Die Codeabschnitt-Adresstabelle326 wird konsultiert, um die Codeabschnitt-Startadresse für eine Symbolbibliothek zu finden. Zum Beispiel sucht das System300 den Codeabschnitt eins, wenn ein Symbol in der Symbolbibliothek eins zur Ausführung erforderlich ist. Um die Startadresse von Codeabschnitt eins zu finden und folglich das Symbol in der Symbolbibliothek eins zu lokalisieren, wird die Codeabschnitt-Adresstabelle326 konsultiert. Die Anordnung von Symbolbibliotheken in Codeabschnitten und das Aufspüren von Codeabschnitten mit einer Tabelle erlaubt es, dass die Codeabschnitte verschoben oder ausgedehnt werden. Die Ausdehnungs- oder Verschiebungsvorgänge können erforderlich sein, um aktualisierte Codeabschnitte (mit aktualisierten Symbolbibliotheken) zu installieren. - Zurückkehrend zu
3 sollte beachtet werden, dass nicht jede Symbolbibliothek notwendigerweise an dem Anfang eines Codeabschnitts beginnt. Wie gezeigt, ist die Symbolbibliothek drei (314 ) im Codeabschnitt zwei (304 ) angeordnet, aber beginnt nicht an der Codeabschnitt-Startadresse320 . Daher konsultiert das System300 , wenn ein Symbol in der Symbolbibliothek drei (314 ) für die Ausführung erforderlich ist, die Codeabschnitt-Adresstabelle326 für die Startadresse von Codeabschnitt zwei (304 ). Wie im Folgenden erläutert, erlaubt es eine Symboloffset-Adresstabelle, dass die Symbole in der Symbolbibliothek drei (314 ) lokalisiert werden. Es macht nichts, dass die Symbole über mehrere Bibliotheken verteilt sind, solange sie in dem gleichen Codeabschnitt gehalten werden. - Wie oben erwähnt, weist jede Symbolbibliothek funktionell zugehörige Symbole auf. Ein Symbol ist ein programmiererdefinierter Name zum Lokalisieren und Verwenden des Rumpfes einer Routine, einer Variable oder einer Datenstruktur. Somit kann ein Symbol eine Adresse oder ein Wert sein. Symbole können interne oder externe sein. Interne Symbole sind über den Bereich des aktuellen Codeabschnitts hinaus nicht sichtbar. Genauer gesagt, sie werden nicht von anderen Symbolbibliotheken in anderen Codeabschnitten gesucht. Externe Symbole werden über Codeabschnitte hinweg verwendet und aufgerufen und werden von Bibliotheken in unterschiedlichen Codeabschnitten gesucht. Die Symboloffset-Adresstabelle enthält typischerweise eine Liste von allen externen Symbolen.
- Zum Beispiel kann die Symbolbibliothek eins (
310 ) Zeichen auf einer Anzeige der drahtlosen Vorrichtung erzeugen. Symbole in dieser Bibliothek würden wiederum Telefonnummern, Namen, die Uhrzeit oder andere Anzeigemerkmale erzeugen. Jedes Merkmal wird mit Routinen erzeugt, die hier als ein Symbol bezeichnet werden. Beispielsweise erzeugt ein Symbol in der Symbolbibliothek eins (310 ) Telefonnummern auf der Anzeige. Dieses Symbol wird durch ein "X" dargestellt und ist extern. Wenn die drahtlose Vorrichtung einen Telefonanruf empfängt und der Anrufer-ID-Dienst aktiviert ist, muss das System das "X"-Symbol ausführen, um die Nummer auf der Anzeige zu erzeugen. Folglich muss das System das "X"-Symbol lokalisieren. -
6 ist eine ausführliche Darstellung der Symbolbibliothek eins (310 ) von3 mit Symbolen. Die Symbole sind angeordnet, dass sie von den entsprechenden Codeabschnitt-Startadressen versetzt sind. In vielen Fällen ist der Anfang der Symbolbibliothek der Anfang eines Codeabschnitts, aber das stimmt nicht, wenn ein Codeabschnitt mehr als eine Symbolbibliothek aufweist. Symbolbibliothek eins (310 ) beginnt am Anfang des Codeabschnitts eins (siehe3 ). Wie in6 gezeigt, ist das "X"-Symbol bei einem Adressabstand von (03) von dem Anfang der Symbolbibliothek lokalisiert, und das "Y"-Symbol ist bei einem Adressabstand von (15) lokalisiert. Die Symboloffset-Adressen sind in einer Symboloffset-Adresstabelle328 in dem Patchmanager-Codeabschnitt gespeichert (siehe3 ). -
7 ist eine Tabelle, die die Symboloffset-Adresstabelle328 von3 darstellt. Die Symboloffset-Adresstabelle328 stellt Querverweise von Symbol-Bezeichnern mit zugehörigen Offset-Adressen und mit zugehörigen Codeabschnitt-Bezeichnern im Speicher her. So wird, wenn das System das "X"-Symbol in der Symbolbibliothek eins ausführen möchte, die Symboloffset-Adresstabelle328 konsultiert, um die exakte Adresse des Symbols in Bezug auf den Codeabschnitt zu lokalisieren, in welchem es angeordnet ist. - Zurückkehrend zu
3 weisen die erste Mehrzahl von Symbolbibliotheken typischerweise alle Lese-Schreib-Daten auf, die bei der Ausführung dieser Symbolbibliotheken konsultiert oder eingestellt werden müssen. Zum Beispiel kann eine Symbolbibliothek eine Operation enthalten, die von einem bedingten Befehl abhängt. Der Lese-Schreib-Datenbereich wird konsultiert, um den Zustand zu bestimmen, der erforderlich ist, um den bedingten Befehl auszuführen. Die vorliegende Erfindung gruppiert die Lese-Schreib-Daten von allen Symbolbibliotheken in einen gemeinsamen Lese-Schreib- Abschnitt. In einigen Aspekten der Erfindung sind die Lese-Schreib-Daten330 in dem Patchmanager-Codeabschnitt308 angeordnet. Alternativ (nicht gezeigt) können die Lese-Schreib-Daten in einem anderen Codeabschnitt, zum Beispiel Codeabschnitt n (306 ), angeordnet sein. - Die erste Mehrzahl von Symbolbibliotheken weist auch einen Symbol-Zugriffscode auf, der in einem Codeabschnitt angeordnet ist, um die Adresse eines gesuchten Symbols zu berechnen. Der Symbol-Zugriffscode kann an einer Adresse in einem separaten Codeabschnitt, zum Beispiel Codeabschnitt zwei (
304 ), angeordnet und gespeichert sein. Jedoch ist, wie gezeigt, der Symbol-Zugriffscode332 an einer Adresse in dem Patchmanager-Codeabschnitt308 angeordnet und gespeichert. Das System300 weist ferner eine erste Speicherstelle zur Speicherung der Symbol-Zugriffscodeadresse auf. Die erste Speicherstelle kann ein Codeabschnitt in dem Codespeicherabschnitt112 oder in einem separaten Speicherabschnitt der drahtlosen Vorrichtung (nicht gezeigt) sein. Die erste Speicherstelle kann auch in dem selben Codeabschnitt wie die Lese-Schreib-Daten angeordnet sein. Wie gezeigt, ist die erste Speicherstelle334 in dem Patchmanager-Codeabschnitt308 mit den Lese-Schreib-Daten330 , der Symboloffset-Adresstabelle328 , der Codeabschnitt-Adresstabelle326 und dem Symbol-Zugriffscode332 und der Patch-Bibliothek (Patch-Symbolbibliothek)336 gespeichert. - Der Symbol-Zugriffscode greift auf die Codeabschnitt-Adresstabelle und die Symboloffset-Adresstabelle zu, um die Adresse eines gesuchten Symbols im Speicher zu berechnen oder zu finden. Das heißt, der Symbol-Zugriffscode berechnet die Adresse des gesuchten Symbols unter Verwendung eines zugehörigen Symbol-Bezeichners und eines zugehörigen Codeabschnitt-Bezeichners. Wenn beispielsweise das "X"-Symbol in der Symbolbibliothek eins gesucht wird, wird der Symbol-Zugriffscode aufgerufen, um den Symbol-Bezeichner (Symbol-ID) "X_1" entsprechend dem "X"-Symbol zu suchen (siehe
7 ). Der Symbol-Zugriffscode konsultiert die Symboloffset-Adresstabelle, um zu bestimmen, dass der "X_1"-Symbol-Bezeichner einen Adressabstand von (03) von dem Anfang des Codeabschnitts eins hat (siehe6 ). Der Symbol-Zugriffscode wird aufgerufen, um den Codeabschnittsbezeichner "CS_1" entsprechend dem Codeabschnitt eins zu suchen. Der Symbol-Zugriffscode konsultiert die Codeabschnitt-Adresstabelle, um die Startadresse zu bestimmen, die dem Codeabschnittsbezeichner (Codeabschnitt-ID) "CS_1" zugeordnet ist. Auf diese Weise bestimmt der Symbol-Zugriffscode, dass der Symbol-Bezeichner "X_1" einen Adressabstand von (03) von der Adresse (00100) hat, oder dass er sich an der Adresse (00103) befindet. - Das Symbol "X" ist ein reservierter Name, da er ein Teil des eigentlichen Codes ist. Mit anderen Worten, er hat absolute Daten, die mit ihm verknüpft sind. Die Daten können eine Adresse oder ein Wert sein. Der Symbol-Bezeichner ist ein alias, der erzeugt wurde, um das Symbol aufzuspüren. Sowohl die Symboloffset-Adresstabelle als auch die Codeabschnitt-Adresstabelle arbeiten mit Bezeichnern, um eine Verwechslung mit reservierten Symbol- und Codeabschnittsnamen zu vermeiden. Es ist auch möglich, das der gleiche Symbolname über viele Symbolbibliotheken hinweg verwendet wird. Die Verwendung von Bezeichnern verhindert eine Verwechslung zwischen diesen Symbolen.
- Zurückkehrend zu
1 weist das System300 ferner einen flüchtigen Lese-Schreib-Speicher114 auf, typischerweise einen Direktzugriffsspeicher (RAM). Die Lese-Schreib-Daten330 , die Codeabschnitt-Adresstabelle326 , die Symboloffset-Adresstabelle328 , der Symbol-Zugriffscode332 und die Symbol-Zugriffscodeadresse334 werden von dem Patchmanager-Codeabschnitt in den flüchtigen Lese-Schreib-Speicher114 für den Zugriff während der Ausführung der Systemsoftware geladen. Wie bekannt, ist die Zugriffszeit für im RAM gespeicherten Code signifikant geringer als der Zugriff auf einen nichtflüchtigen Speicher, wie zum Beispiel einen Flash. - Zurückkehrend zu
3 kann man bemerken, dass die Symbolbibliotheken die Codeabschnitte, in welchen sie angeordnet sind, nicht notwendigerweise ausfüllen müssen, obwohl die Speicherblöcke dimensioniert sind, um die entsprechenden, darin gespeicherten Codeabschnitte genau aufzunehmen. Anders gesagt, jeder von der zweiten Mehrzahl von Codeabschnitten hat eine Größe in Byte, die die angeordneten Symbolbibliotheken aufnimmt, und jeder der angrenzend andressierten Speicherblöcke hat eine Größe in Byte, die entsprechende Codeabschnitte aufnimmt. Zum Beispiel kann Codeabschnitt eins (302 ) ein 100-Byte-Abschnitt sein, um eine Symbolbibliothek aufzunehmen, die eine Länge von 100 Byte hat. Der erste Speicherblock würde 100 Byte haben, damit er zu der Byte-Größe von Codeabschnitt eins passt. Jedoch kann die in Codeabschnitt 1 geladene Symbolbibliothek kleiner als 100 Byte sein. Wie in3 gezeigt, hat der Codeabschnitt eins (302 ) einen ungenutzten Abschnitt340 , da die Symbolbibliothek eins (310 ) kleiner als 100 Byte ist. Somit kann jeder der zweiten Mehrzahl von Codeabschnitten eine Größe haben, die größer ist als die Größe, die benötigt wird, um die angeordneten Symbolbibliotheken aufzunehmen. Durch "Überdimensionieren" der Codeabschnitte können größere aktualisierte Symbolbibliotheken aufgenommen werden. - Angrenzend adressierte Speicherblöcke beziehen sich auf das Partitionieren des physischen Speicherplatzes in logische Blöcke variabler Größe. Codeabschnitte und Speicherblöcke sind Begriffe, die im Wesentlichen austauschbar sind, wenn der Codeabschnitt im Speicher gespeichert wird. Das Konzept eines Codeabschnitts wird verwendet, um einen Abschnitt von Code, der vielleicht größer als die Symbolbibliothek ist, oder die Sammlung von Symbolbibliotheken in dem Codeabschnitt zu identifizieren, wenn er bewegt und verarbeitet wird.
- Wie in
3 zu sehen, weist das System300 eine Patch-Symbolbibliothek auf, welche hier als Patchbibliothek336 bezeichnet wird, um neue Codeabschnitte in dem Codespeicherabschnitt mit den aktuellen Codeabschnitten anzuordnen. Die Anordnung von neuen Codeabschnitten mit aktuellen Codeabschnitten in dem Codespeicherabschnitt bildet eine aktualisierte, ausführbare Systemsoftware. Der Patchmanager336 ordnet nicht nur neue Codeabschnitte mit den aktuellen Codeabschnitten an, er ersetzt auch Codeabschnitte durch aktualisierte Codeabschnitte. - Zurückkehrend zu
4 empfängt der Dateisystemabschnitt110 des Speichers108 neue Codeabschnitte, wie zum Beispiel den neuen Codeabschnitt450 und einen aktualisierten Patchmanager-Codeabschnitt452 . Der Dateisystemabschnitt empfängt auch einen ersten Patchmanger-Laufzeitbefehl (PMRTI)454 einschließlich Anweisungen zum Anordnen der neuen Codeabschnitte mit den aktuellen Codeabschnitten. Wie in1 zu sehen, empfängt eine Luftverbindungsschnittstelle150 neue oder aktualisierte Codeabschnitte sowie den ersten PMRTI. Obwohl die Luftverbindungsschnittstelle150 durch eine Antenne dargestellt ist, versteht es sich, dass die Luftverbindungsschnittstelle auch einen RF-Transceiver, eine Basisband-Schaltung und eine Demodulationsschaltung (nicht gezeigt) umfassen würde. Der Dateisystemabschnitt110 speichert die neuen Codeabschnitte, die über die Luftverbindungsschnittstelle150 empfangen wurden. Die Patchbibliothek336 , die von dem flüchtigen Lese-Schreib-Speicher114 ausgeführt wird, ersetzt einen ersten Codeabschnitt in dem Codespeicherabschnitt, zum Beispiel Codeabschnitt n (306 ), durch den neuen oder aktualisierten Codeabschnitt450 in Antwort auf den ersten PMRTI454 . Typischerweise wird der Patchmanager-Codeabschnitt308 durch den aktualisierten Patchmanager-Codeabschnitt452 ersetzt. Wenn Codeabschnitte ersetzt werden, überschreibt die Patchbibliothek336 den ersten Codeabschnitt, zum Beispiel Codeabschnitt n (306 ), in dem Codespeicherabschnitt112 mit dem aktualisierten Codeabschnitt, zum Beispiel Codeabschnitt450 , in dem Datensystemabschnitt110 . Im Extremfall werden alle Codeabschnitte in dem Codespeicherabschnitt112 durch aktualisierte Codeabschnitte ersetzt. Das heißt, der FSS110 empfängt eine zweite Mehrzahl von aktualisierten Codeabschnitten (nicht gezeigt), und die Patchbibliothek336 ersetzt die zweite Mehrzahl von Codeabschnitten in dem Codespeicherabschnitt112 durch die zweite Mehrzahl von aktualisierten Codeabschnitten. Natürlich muss der FSS110 groß genug sein, um die zweite Mehrzahl von aktualisierten Codeabschnitten aufzunehmen, die über die Luftverbindungsschnittstelle empfangen wurden. - Wie oben erwähnt, können die aktualisierten Codeabschnitte, die empfangen werden, Lese-Schreib-Daten-Codeabschnitte, Codeabschnitt-Adresstabelle-Codeabschnitte, Symbolbibliotheken, Symboloffset-Adresstabelle-Codeabschnitte, Symbol-Zugriffscode-Abschnitte oder einen Codeabschnitt mit einer neuen Patchbibliothek aufweisen. Alle diese Codeabschnitte mit ihren zugehörigen Symbolbibliotheken und Symbolen können als eindeutige und unabhängige Codeabschnitte gespeichert werden. Dann würde jeder dieser Codeabschnitte durch einen unikalen aktualisierten Codeabschnitt ersetzt werden. Das heißt, ein aktualisierter Lese-Schreib-Codeabschnitt würde empfangen werden und würde den Lese-Schreib-Codeabschnitt in dem Codespeicherabschnitt ersetzen. Ein aktualisierter Codeabschnitt-Adresstabelle-Codeabschnitt würde empfangen werden und würde den Codeabschnitt- Adresstabelle-Codeabschnitt in dem Codespeicherabschnitt ersetzen. Ein aktualisierter Symboloffset-Adresstabelle-Codeabschnitt würde empfangen werden und würde den Symboloffset-Adresstabelle-Codeabschnitt in dem Codespeicherabschnitt ersetzen. Ein aktualisierter Symbol-Zugriffscode-Abschnitt würde empfangen werden und würde den Symbol-Zugriffscode-Abschnitt in dem Codespeicherabschnitt ersetzen. Gleichermaßen würde ein aktualisierter Patchmanager-Codeabschnitt (mit einer Patchbibliothek) empfangen werden und würde den Patchmanager-Codeabschnitt in dem Codespeicherabschnitt ersetzen.
- Jedoch sind die oben erwähnten Codeabschnitte typischerweise zusammen in dem Patchmanager-Codeabschnitt gebündelt. Daher wird der Lese-Schreib-Codeabschnitt in dem Codespeicherabschnitt durch den aktualisierten Lese-Schreib-Codeabschnitt aus dem Dateisystemabschnitt
110 ersetzt, wenn der Patchmanager-Codeabschnitt308 durch den aktualisierten Patchmanager-Codeabschnitt450 ersetzt wird. Gleichermaßen werden die Codeabschnitt-Adresstabelle, die Symboloffset-Adresstabelle, der Symbol-Zugriffscode-Abschnitt sowie die Patchbibliothek ersetzt, wenn der aktualisierte Patchmanager-Codeabschnitt450 installiert wird. Die Anordnung der neuen Lese-Schreib-Daten, der neuen Codeabschnitt-Adresstabelle, der neuen Symboloffset-Adresstabelle, des neuen Symbol-Zugriffscodes und der neuen Patchbibliothek als der aktualisierte Patchmanager-Codeabschnitt450 bildet zusammen mit den aktuellen Codeabschnitten in dem Codespeicherabschnitt eine aktualisierte, ausführbare Systemsoftware. - Wenn der Dateisystemabschnitt
110 eine aktualisierte Symbol-Zugriffscodeadresse empfängt, ersetzt der Patchmanager die Symbol-Zugriffscodeadresse an der ersten Stelle im Speicher durch eine aktualisierte Symbol-Zugriffscodeadresse. Wie oben erwähnt, ist die erste Stelle im Speicher334 typischerweise in dem Patchmanager-Codeabschnitt (siehe3 ). - Wie in
3 zu sehen, weist die Patchbibliothek308 auch einen Kompaktierer oder eine Kompaktierer-Symbolbibliothek342 auf. Der Kompaktierer342 kann auch als ein eindeutiger und unabhängiger Codeabschnitt ermöglicht werden, jedoch ist es, wie oben erwähnt, nützlich und effizient, die Funktionen, die mit Systemsoftware-Upgrades zusammenhängen, in einem einzigen Patchmanager-Codeabschnitt zu bündeln. Im allgemeinen kann gesagt werden, dass der Kompaktierer342 Codeabschnitte in der Größe anpasst, so dass neue Abschnitte mit aktuellen Codeabschnitten in dem Codespeicherbereich112 angeordnet werden können. - Mit den Organisations-, Herunterlade- und Kompaktierungsaspekten der nun eingerichteten Erfindung konzentriert sich die folgende Diskussion auf das Dynamische-Befehlssatz-Ausführungssystem
300 der drahtlosen Kommunikationsvorrichtung. Das System300 weist ausführbare Systemsoftware und Systemdaten auf, die in Codeabschnitte aufgeteilt sind, wie es oben sehr ausführlich erörtert wurde. Ferner weist das System300 dynamische Befehlssätze zum Arbeiten an den Systemdaten und der Systemsoftware und zum Steuern der Ausführung der Systemsoftware auf. Wie in4 zu sehen, ist ein dynamischer Befehlssatz470 in dem ersten PMRTI454 organisiert. Wie in3 zu sehen, weist das System auch eine Laufzeitmaschine zum Verarbeiten der dynamischen Befehlssätze auf, die als Laufzeitbibliothek370 ermöglicht werden. Wie die oben erwähnte Kompaktiererbibliothek342 und die Patchbibliothek336 ist die Laufzeitbibliothek370 typischerweise in dem Patchmanager-Codeabschnitt308 angeordnet. Jedoch könnte die Laufzeitbibliothek370 alternativ in einem anderen Codeabschnitt, zum Beispiel dem ersten Codeabschnitt304 , angeordnet sein. - Die dynamischen Befehlssätze sind einzelne oder multiple Sätze von Anweisungen, die bedingten Operationscode und im allgemeinen Datenelemente aufweisen. Die Laufzeitmaschine liest den Operationscode und bestimmt, welche Operationen ausgeführt werden müssen. Operationscode kann bedingt, mathematisch, verfahrenstechnisch oder logisch sein. Die Laufzeitmaschine oder die Laufzeitbibliothek
370 verarbeitet die dynamischen Befehlssätze, um Operationen, wie zum Beispiel mathematische oder logische Operationen auszuführen. Das heißt, die Laufzeitmaschine liest den dynamischen Befehlssatz470 und führt eine Folge von Operationen in Antwort auf den Operationscode aus. Obwohl die dynamischen Befehlssätze nicht auf irgendeine bestimmte Sprache beschränkt sind, ist der Operationscode typischerweise eine Form von Maschinencode, da der Speicher der drahtlosen Vorrichtung begrenzt ist und die Ausführungsgeschwindigkeit wichtig ist. Der Operationscode wird dahingehend als bedingt betrachtet, dass er ein Datenelement analysiert und als Ergebnis der Analyse eine Entscheidung trifft. Die Laufzeitmaschine kann auch bestimmen, dass eine Operation an den Daten ausgeführt wird, bevor sie analysiert werden. - Zum Beispiel kann der Operationscode spezifizieren, dass ein Datenelement von einem Speicher der drahtlosen Vorrichtung mit einem vorbestimmten Wert verglichen wird. Wenn das Datenelement kleiner als der vorbestimmte Wert ist, wird das Datenelement belassen, und wenn das Datenelement größer als der vorbestimmte Wert ist, wird es durch den vorbestimmten Wert ersetzt. Alternativ kann der Operationscode einen zweiten vorbestimmten Wert zu einem Datenelement aus dem Speicher der drahtlosen Vorrichtung hinzufügen, bevor die oben erwähnte Vergleichsoperation ausgeführt wird.
- Wie oben erwähnt, empfängt der Dateisystemabschnitt
110 des nichtflüchtigen Speichers die dynamischen Befehlssätze durch eine Schnittstelle, wie zum Beispiel die Luftverbindung150 . Wie in1 gezeigt, kann die Schnittstelle auch eine Radiofrequenz (RF)-Standleitung160 sein. Dann kann der PMRTI durch den FSS110 empfangen werden, ohne dass die Systemsoftware in Betrieb ist, wie zum Beispiel in einer Werkskalibrierungs-Umgebung. Der PMRTI kann auch über eine logische Portschnittstelle162 oder ein installierbares Speichermodul164 empfangen werden. Das Speichermodul164 kann bei der Anfangskalibrierung in der drahtlosen Vorrichtung104 installiert werden, im Außendienst installiert werden oder während einer Werksneukalibrierung installiert werden. Obwohl nicht speziell gezeigt, kann der PMRTI über eine Infrarot- oder Bluetooth-Schnittstelle empfangen werden. -
8 ist eine Darstellung von Befehlen, auf die durch die Laufzeitmaschine370 zugegriffen wird. Es sind ein erster Befehl800 , ein zweiter Befehl802 und ein j-ter Befehl804 gezeigt, jedoch ist der dynamische Befehlssatz nicht auf irgendeine bestimmte Anzahl von Befehlen beschränkt. Die Länge des Operationscodes in jedem Befehl ist festgelegt. Die Laufzeitmaschine370 erfasst die Länge des Befehls als ein Größenwert von Bytes oder Bits, der bestimmt, ob der Befehl Datenelemente enthält. Die verbleibende Länge des Befehls, nachdem der Operationscode abgezogen wurde, enthält die Datenelemente. Die Laufzeitmaschine extrahiert die Datenelemente aus dem Befehl. Wie gezeigt, wird die Länge806 des ersten Befehls800 gemessen und die Datenelemente808 werden extrahiert. Es ist zu beachten, dass nicht notwendig alle Befehle zu extrahierende Datenelemente enthalten. Die Laufzeitmaschine370 verwendet die extrahierten Daten 808 beim Ausführen der Folge von Operationen in Antwort auf den Operationscode810 in dem Befehl800 . -
9 ist eine ausführlichere Darstellung des ersten Befehls800 von8 . Unter Verwendung des ersten Befehls800 als ein Beispiel weist der Befehl Operationscode810 und Daten808 auf. Der Befehl, und spezieller der Datenelementabschnitt808 , weist Symbol-Bezeichner auf, die als eine Verbindung zu Symbolen in den Codeabschnitten der drahtlosen Vorrichtung fungieren. Wie oben ausführlich erklärt, werden die Symbol-Bezeichner mit der Codeabschnitt-Adresstabelle326 (siehe5 ) und der Symboloffset-Adresstabelle328 (siehe7 ) verwendet, um das Symbol entsprechend dem Symbol-Bezeichner zu lokalisieren. Wie gezeigt, ist ein Symbolbezeichner "X_1" in dem ersten Befehl800 gezeigt. Die Symboloffset-Adresstabelle328 lokalisiert das zugehörige Symbol in einem Codeabschnitt mit dem Bezeichner "CS_1" und einem Adressabstand von "3". Die Codeabschnitt-Adresstabelle326 liefert die Startadresse von Codeabschnitt eins (302 ). Auf diese Weise wird das Symbol "X" gefunden (siehe6 ). - Nachdem die Laufzeitmaschine die Symbole entsprechend den empfangenen Symbol-Bezeichnern unter Verwendung der Codeabschnitt-Adresstabelle und der Symboloffset-Adresstabelle lokalisiert hat, extrahiert sie Daten, wenn die lokalisierten Symbole Datenelemente sind. Wenn zum Beispiel das Symbol "X" ein Datenelement in der Symbolbibliothek eins (
310 ) ist, extrahiert es die Laufzeitmaschine. Alternativ kann das "X"-Symbol Operationscode sein, und die Laufzeitmaschine führt das Symbol "X" aus, wenn es lokalisiert wird. - PMRTI kann verwendet werden, um Systemdaten oder Systemdatenelemente zu aktualisieren. In einigen Aspekten der Erfindung werden Systemdaten in einem Codeabschnitt in dem Dateisystemabschnitt
110 , zum Beispiel Codeabschnitt472 , gespeichert, siehe4 . Die Laufzeitmaschine greift auf die Systemdaten von Codeabschnitt472 zu und analysiert die Systemdaten. Die Laufzeitmaschine verarbeitet den Operationscode der dynamischen Befehlssätze, um an Datenelementen mathematische oder logische Operationen auszuführen, wie es oben beschrieben ist. Nach der Operation verarbeitet die Laufzeitmaschine die Befehle, um aktualisierte Systemdaten zu erzeugen. Es ist zu beachten, dass die aktualisierten Systemdaten unter manchen Umständen unveränderte Datenelemente aufweisen können. Die Systemdaten in dem zweiten Codeabschnitt472 werden durch die aktualisierten Systemdaten in Antwort auf den Operationscode ersetzt. Somit wird die Systemsoftware durch das Verarbeiten von Befehlen durch die Laufzeitmaschine gesteuert, damit sie unter Verwendung der aktualisierten Systemdaten im Codeabschnitt472 ausgeführt wird. Auf diese Weise können spezifisch abgezielte Symbole in der Systemsoftware aktualisiert werden, ohne dass ganze Codeabschnitte ersetzt werden. Durch den gleichen Vorgang können die Systemdaten in einem Codeabschnitt in dem Codespeicherabschnitt112 ersetzt werden. Zum Beispiel können die Systemdaten in dem dritten Codeabschnitt344 gespeichert sein, und die Laufzeitmaschine kann die Systemdaten in dem dritten Codeabschnitt durch aktualisierte Systemdaten in Antwort auf den Operationscode ersetzen. - PMRTI kann auch verwendet werden, um Datenelemente in dem flüchtigen Speicher
114 zu aktualisieren. Als ein Beispiel empfängt der flüchtige Speicher114 Lese-Schreib-Daten330 , siehe1 . Die Lese-Schreib-Daten können aus einem oder aus einer Mehrzahl von Codeabschnitten in dem Codespeicherabschnitt112 und/oder dem FSS110 sein. Die Laufzeitmaschine greift auf die Lese-Schreib-Daten zu, analysiert die Lese-Schreib-Daten330 , erzeugt aktualisierte Lese-Schreib-Daten und ersetzt die Lese-Schreib-Daten330 in dem flüchtigen Speicher114 durch die aktualisierten Lese- Schreib-Daten in Antwort auf den Operationscode. Dann wird die Systemsoftware gesteuert, damit sie unter Verwendung der aktualisierten Lese-Schreib-Daten in dem flüchtigen Speicher114 ausgeführt wird. - In einigen Aspekten der Erfindung überwacht die Laufzeitmaschine die Ausführung der Systemsoftware. Ausführungsüberwachung ist weit definiert, um eine große Anzahl von Aktivitäten der drahtlosen Vorrichtung zu umfassen. Zum Beispiel können Daten wie zum Beispiel Kanalparameter, Kanalcharakteristika, System-Stapelspeicher, Fehlerbedingungen oder eine Aufzeichnung von Datenelementen im RAM durch eine Folge von Operationen, die zu einem spezifischen Fehlerzustand oder zu einem Zustand reduzierter Leistung führen, gesammelt werden. Es ist auch möglich, dynamische Befehlssätze zu verwenden, um gesammelte Ausführungsdaten zu analysieren, aktualisierte Datenvarianten bereitzustellen und Daten wiederzuerlangen, um mögliche Lösungen für das Problem zu studieren. Temporäre Fehlerbehebungen können unter Verwendung von PMRTI-Prozessen auch bereitgestellt werden.
- Insbesondere sammelt die Laufzeitmaschine Ausführungsdaten und speichert die Ausführungsdaten in dem Dateisystemabschnitt in Antwort auf den Operationscode. Dann wird die Systemsoftware gesteuert, damit sie durch Sammeln der Ausführungsdaten für die Beurteilung der Systemsoftware ausgeführt wird. Die Beurteilung kann als eine Form der Analyse auftreten, die durch den Dynamischer-Befehlssatz-Operationscode ausgeführt wird, oder sie kann außerhalb der drahtlosen Vorrichtung ausgeführt werden. In einigen Aspekten der Erfindung greift die Laufzeitmaschine auf die Ausführungsdaten zu, die von dem Dateisystemabschnitt gesammelt wurden, und überträgt die Ausführungsdaten über eine Luftverbindungsschnittstelle in Antwort auf den Operationscode. Das Sammeln von Ausführungsdaten von auf dem Markt befindlichen drahtlosen Vorrichtungen erlaubt es einem Hersteller, Probleme, entweder lokal oder global, gründlich zu analysieren, ohne die Geräte zurückzurufen.
- In einigen Aspekten der Erfindung empfängt der Dateisystemabschnitt
110 einen Patchmananger-Laufzeitbefehl, der einen neuen Codeabschnitt aufweist. Zum Beispiel ist ein neuer Codeabschnitt474 in4 gezeigt. Alternativ kann der neue Codeabschnitt von dem PMRTI unabhängig sein, wie zum Beispiel der neue Codeabschnitt n (450 ). Beispielsweise kann der neue Codeabschnitt n (450 ) in einer früheren Luftverbindungskommunikation empfangen worden sein, oder er kann während der Werkskalibrierung installiert worden sein. Die Laufzeitmaschine fügt den neuen Codeabschnitt474 (450 ) dem Codespeicherabschnitt in Antwort auf den Operationscode hinzu. In einigen Aspekten der Erfindung wird der neue Codeabschnitt einem ungenutzten Block in dem Codespeicherabschnitt112 hinzugefügt. Alternativ ist ein Kompaktierungsvorgang erforderlich. Dann wird die Systemsoftware gesteuert, damit sie unter Verwendung des neuen Codeabschnitts474 (450 ) ausgeführt wird. In anderen Aspekten der Erfindung weist der PMRTI454 einen aktualisierten Codeabschnitt474 auf. Alternativ ist der neue Codeabschnitt450 ein aktualisierter Codeabschnitt unabhängig von dem PMRTI. Die Laufzeitmaschine ersetzt einen Codeabschnitt in dem Codespeicherabschnitt, zum Beispiel Codespeicherabschnitt zwei (304 ) durch den aktualisierten Codeabschnitt474 (450 ) in Antwort auf den Operationscode. Die Systemsoftware wird gesteuert, damit sie unter Verwendung des aktualisierten Codeabschnitts474 (450 ) ausgeführt wird. In einigen Aspekten der Erfindung ist ein Kompaktierungsvorgang erforderlich, um den aktualisierten Codeabschnitt unterzubringen. Alternativ wird der aktualisierte Codeabschnitt einem ungenutzten oder freien Abschnitt des Codespeicherabschnitts hinzugefügt. - Wie oben erläutert, erfordert die Hinzufügung eines neuen Codeabschnitts oder das Aktualisieren eines Codeabschnitts typischerweise der Erzeugung einer neuen Codeabschnitt-Adresstabelle, da dieser Vorgang entweder neue und/oder geänderte Codeabschnitt-Startadressen nach sich zieht. Ferner erfordert auch ein Kompaktierungsvorgang eine neue Codeabschnitt-Adresstabelle. Die Kompaktierungsvorgänge können ein Ergebnis des Betriebes des oben erläuterten Kompaktierers
342 oder das Ergebnis von PMRTI-Befehlen sein, die Details liefern, wie die Kompaktierung zu erfolgen hat. Wenn der PMRTI Herunterlade- und Kompaktierungsbefehle aufweist, weist der PMRTI typischerweise auch eine neue Codeabschnitt-Adresstabelle auf, die gültig wird, nachdem der Herunterlade- und der Kompaktierungsvorgang abgeschlossen worden sind. - Die
10a und10b sind Flussdiagramme, die das Verfahren der vorliegenden Erfindung zum Ausführen dynamischer Befehlssätze in einer drahtlosen Kommunikationsvorrichtung darstellen. Obwohl es der Klarheit wegen als eine Folge von nummerierten Schritten beschrieben wird, sollte aus der Nummerierung (und der Nummerierung in den im Folgenden dargestellten Verfahren) keine Reihenfolge abgeleitet werden, es sei denn, es wird explizit erklärt. Das Verfahren beginnt bei Schritt1000 . Schritt1001a formt die Systemsoftware in Symbolbibliotheken, wobei jede Symbolbibliothek Symbole aufweist, die eine zugehörige Funktionalität haben. Schritt1001b ordnet die Symbolbibliotheken in Codeabschnitte an. Schritt1002 führt die Systemsoftware aus. Schritt1003 empfängt die dynamischen Befehlssätze. Das Empfangen der dynamischen Befehlssätze in Schritt1003 weist das Empfangen der dynamischen Befehlssätze durch eine Schnittstelle auf, die aus der Gruppe gewählt wird, die eine Luftverbindung, eine Radiofrequenz (RF)-Standleitung, ein installierbares Speichermodul, Infrarot und Logik-Portschnittstellen aufweist. In einigen Aspekten der Erfindung weist das Empfangen des dynamischen Befehlssatzes in Schritt1003 das Empfangen eines Patchmanager-Laufzeitbefehls (PMRTI) in einem Dateisystemabschnitt des nichtflüchtigen Speichers auf. - Schritt
1004 startet eine Laufzeitmaschine. Typischerweise weist das Starten einer Laufzeitmaschine das Aufrufen einer Laufzeitbibliothek von einem ersten Codeabschnitt auf. Die Laufzeitmaschine kann entweder von einem flüchtigen oder einem nichtflüchtigen Speicher gestartet werden. Schritt1006 verarbeitet die dynamischen Befehlssätze. Das Verarbeiten der dynamischen Befehlssätze weist das Verarbeiten von Befehlen in Antwort auf mathematische und logische Operationen auf. In einigen Aspekten der Erfindung löscht Schritt1007 (nicht gezeigt) im Anschluss an das Verarbeiten der dynamischen Befehlssätze die dynamischen Befehlssätze. Schritt1008 arbeitet an Systemdaten und Systemsoftware. Schritt1010 steuert in Antwort auf das Arbeiten an den Systemdaten und der Systemsoftware die Ausführung der Systemsoftware. - Typischerweise weist das Empfangen der Patchmanager-Laufzeitbefehle in Schritt
1003 das Empfangen von bedingtem Operationscode und Datenelementen auf. Dann weist das Verarbeiten der dynamischen Befehlssätze in Schritt1006 Unterschritte auf. Schritt1006a1 verwendet die Laufzeitmaschine, um den Patchmanager-Laufzeitbefehl-Operationscode zu lesen. Schritt1006b führt eine Folge von Operationen in Antwort auf den Operationscode aus. - In einigen Aspekten weist das Anordnen der Symbolbibliotheken in Codeabschnitte in Schritt
1001b das Starten von Symbolbibliotheken am Anfang von Codeabschnitten und das Anordnen von Symbolen auf, damit sie von ihren jeweiligen Codeabschnitt-Startadressen versetzt sind. Dann weist das Verfahren weitere Schritte auf. Schritt1001c speichert den Anfang von Codeabschnitten an zugehörigen Startadressen. Schritt1001d hält eine Codeabschnitt-Adresstabelle (CSAT) aufrecht, die Querverbindungen von Codeabschnitt-Bezeichnern mit zugehörigen Startadressen herstellt. Schritt1001e hält eine Symboloffset-Adresstabelle (SOAT) aufrecht, die Querverbindungen von Symbol-Bezeichnern mit zugehörigen Offsetadressen und zugehörigen Codeabschnitt-Bezeichnern herstellt. - In einigen Aspekten der Erfindung weist das Empfangen des Patchmanager-Laufzeitbefehls in Schritt
1003 das Empfangen von Symbol-Bezeichnern auf. Dann weist das Verfahren einen weiteren Schritt auf. Schritt1006a2 lokalisiert Symbole entsprechend der empfangenen Symbol-Bezeichner unter Verwendung der Codeabschnitt-Adresstabelle und der Symboloffset-Adresstabelle. Das Ausführen einer Folge von Operationen in Antwort auf den Operationscode in Schritt1006b weist Unterschritte auf. Schritt1006b1 extrahiert die Daten, wenn die lokalisierten Symbole Datenelemente sind. Schritt1006b2 führt die Symbole aus, wenn die lokalisierten Symbole Anweisungen sind. - In einigen Aspekten der Erfindung weist das Verarbeiten dynamischer Befehlssätze in Schritt
1006b1 zusätzliche Unterschritte auf. Schritt1006b1a verwendet die Laufzeitmaschine, um die Länge des Patchmanager-Laufzeitbefehls zu erhalten. Schritt1006b1b extrahiert die Datenelemente aus dem Patchmanager-Laufzeitbefehl in Antwort auf den Operationscode. Schritt1006b1c verwendet die extrahierten Daten beim Ausführen der Folge von Operationen in Antwort auf den Operationscode. -
11 ist ein Flussdiagramm, dass eine beispielhafte Dynamischer-Befehlssatz-Operation darstellt. Verschiedene der Schritte in11 sind die gleichen wie in10 und werden hier im Interesse der Kürze nicht wiederholt. Das Verarbeiten dynamischer Befehlssätze in Schritt1106 weist Unterschritte auf. Schritt1106a greift auf Systemdaten zu, die in einem zweiten Codeabschnitt in dem Dateisystemabschnitt gespeichert sind. Schritt1106b analysiert die Systemdaten. Schritt1106c erzeugt aktualisierte Systemdaten. Dann weist das Arbeiten an Systemdaten und Systemsoftware in Schritt1108 das Ersetzen der Systemdaten in dem zweiten Abschnitt durch die aktualisierten Systemdaten auf, und das Steuern der Ausführung der Systemsoftware in Schritt1010 weist das Verwenden der aktualisierten Systemdaten bei der Ausführung der Systemsoftware auf. -
12 ist ein Flussdiagramm, das eine weitere beispielhafte Dynamischer-Befehlssatz-Operation darstellt. Verschiedene der Schritte in12 sind die gleichen wie in10 und werden hier im Interesse der Kürze nicht wiederholt. Schritt1201c speichert eine Mehrzahl von Codeabschnitten in einem Codespeicherabschnitt des nichtflüchtigen Speichers. Das Verarbeiten dynamischer Befehlssätze in Schritt1206 weist Unterschritte auf. Schritt1206a greift auf Systemdaten zu, die in einem dritten Codeabschnitt in dem Codespeicherabschnitt (CSS) gespeichert sind. Schritt1206b analysiert die Systemdaten. Schritt1206c erzeugt aktualisierte Systemdaten. Das Arbeiten an den Systemdaten und der Systemsoftware in Schritt1208 weist das Ersetzen der Systemdaten in dem dritten Codeabschnitt durch die aktualisierten Systemdaten auf. Das Steuern der Ausführung der Systemsoftware in Schritt1210 weist das Verwenden der aktualisierten Systemdaten bei der Ausführung der Systemsoftware auf. -
13 ist ein Flussdiagramm, das eine dritte beispielhafte Dynamischer-Befehlssatz-Operation darstellt. Verschiedene der Schritte in13 sind die gleichen wie in10 und werden hier im Interesse der Kürze nicht wiederholt. Schritt1301c speichert eine Mehrzahl von Codeabschnitten in einem Codespeicherabschnitt des nichtflüchtigen Speichers. Schritt1301d lädt Lese-Schreib-Daten in den flüchtigen Speicher. Das Verarbeiten dynamischer Befehlssätze in Schritt1306 weist Unterschritte auf. Schritt1306a greift auf die Lese-Schreib-Daten in dem flüchtigen Speicher zu. Schritt1306b analysiert die Lese-Schreib-Daten. Schritt1306c erzeugt aktualisierte Lese-Schreib-Daten. Das Arbeiten an den Systemdaten und der Systemsoftware in Schritt1308 weist das Ersetzen der Lese-Schreib-Daten in dem flüchtigen Speicher durch die aktualisierten Lese-Schreib-Daten auf. Das Steuern der Ausführung der Systemsoftware weist das Verwenden der aktualisierten Lese-Schreib-Daten bei der Ausführung der Systemsoftware auf. -
14 ist ein Flussdiagramm, das eine vierte beispielhafte Dynamischer-Befehlssatz-Operation darstellt. Verschiedene der Schritte in14 sind die gleichen wie in10 und werden hier im Interesse der Kürze nicht wiederholt. Das Verarbeiten dynamischer Befehlssätze weist Unterschritte auf. Schritt1406a überwacht in Antwort auf den Operationscode die Ausführung der Systemsoftware. Schritt1406b sammelt Ausführungsdaten. Schritt1406c speichert die Ausführungsdaten. Schritt1406d sendet die gespeicherten Daten über eine Luftverbindungsschnittstelle. Das Arbeiten an den Systemdaten und der Systemsoftware in Schritt1408 weist das Verwenden der Ausführungsdaten bei der Beurteilung der Systemsoftware auf. -
15 ist ein Flussdiagramm, das eine fünfte beispielhafte Dynamischer-Befehlssatz-Operation darstellt. Verschiedene der Schritte in15 sind die gleichen wie in10 und werden hier im Interesse der Kürze nicht wiederholt. Schritt1501c speichert eine Mehrzahl von Codeabschnitten in einem Codespeicherabschnitt des nichtflüchtigen Speichers. Das Empfangen von Patchmanager- Laufzeitbefehlen in Schritt1503 weist das Empfangen eines neuen Codeabschnitts auf. Das Arbeiten an den Systemdaten und der Systemsoftware in Schritt1508 weist das Hinzufügen des neuen Codeabschnitts zu dem Codespeicherabschnitt auf, und das Steuern der Ausführung der Systemsoftware in Schritt1510 weist das Verwenden des neuen Codeabschnitts bei der Ausführung der Systemsoftware auf. - Alternativ weist das Empfangen eines neuen Codeabschnitts in Schritt
1503 das Empfangen eines aktualisierten Codeabschnitts auf. Dann weist das Arbeiten an den Systemdaten und der Systemsoftware in Schritt1508 das Ersetzen eines vierten Codeabschnitts in dem Codespeicherabschnitt durch den aktualisierten Codeabschnitt auf. - Ein System und ein Verfahren zum Ausführen dynamischer Befehlssätze in einer drahtlosen Kommunikationsvorrichtung wurden bereitgestellt, um bei dem Vorgang des Aktualisierens der Software und des Überwachens der Ausführung der Software zu helfen. Das System ist wegen der Anordnung von Symbolbibliotheken in Codeabschnitten leicht aktualisierbar, mit Tabellen, um auf die Startadressen der Codeabschnitte im Speicher und die Offsetadressen der Symbole in den Symbolbibliotheken zuzugreifen. Die Verwendung von dynamischen Befehlssätzen gestattet, dass kundenspezifische Modifikationen an jeder drahtlosen Vorrichtung, basierend auf spezifischen Charakteristika dieser Vorrichtung, ausgeführt werden. Ein paar allgemeine Beispiele wurden gegeben, die mögliche Verwendungen für die dynamischen Befehlssätze darstellen. Jedoch ist die vorliegende Erfindung nicht auf genau diese Beispiele beschränkt. Andere Variationen und Ausführungsformen der Erfindung werden dem Fachmann einfallen.
-
16 ist ein Schaubild eines Netzwerks auf hoher Ebene, das ein Beispiel eines drahtlosen Kommunikationsnetzes gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Das dargestellte drahtlose Kommunikationsnetzwerk weist eine Mehrzahl von drahtlosen Kommunikationsvorrichtungen10 ,12 und14 ; eine Mehrzahl von Basisstationen20 und22 ; einen PMRTI-Server30 und einen Sicherheitsserver35 auf, von denen jeder über ein Netz40 mit den drahtlosen Kommunikationsvorrichtungen10 ,12 und14 verbunden ist. - In der dargestellten Ausführungsform ist auch eine Umprogrammierungsvorrichtung
45 gezeigt, die mittels einer direkten Verbindung47 mit dem Mobilteil14 verbunden ist. Die direkte Verbindung47 ist eine festverdrahtete, physische Verbindung zwischen dem Mobilteil14 und der Umprogrammierungsvorrichtung45 , zum Beispiel ein serielles Kabel oder eine drahtgebundene Netzwerkverbindung. Die Umprogrammierungsvorrichtung45 kann auch mit einem Netzwerk, wie zum Beispiel dem Internet42 , verbunden sein, das die Umprogrammierungsvorrichtung45 durch Zugriff auf das Netz40 bereitstellen kann. Außerdem kann die Umprogrammierungsvorrichtung45 eine Fähigkeit zur drahtlosen Kommunikation haben, die es erlaubt, sie mit dem Netz40 über eine Basisstation, wie zum Beispiel die Basisstation22 , zu verbinden. - Die drahtlose Kommunikationsvorrichtung
10 kann jede Art von Vorrichtung mit der Fähigkeit sein, innerhalb des drahtlosen Kommunikationsnetzes zu kommunizieren. Zum Beispiel kann die drahtlose Kommunikationsvorrichtung10 ein Mobiltelefon, ein Minicomputer ("PDA"), ein Laptop-Computer, eine Armbanduhr oder jede andere Vorrichtung sein, die für drahtlose Kommunikation konfiguriert ist. Drahtlose Kommunikationsvorrichtungen können hier auch als "Mobilteile" oder "Mobiltelefone" oder "mobile Geräte" bezeichnet sein. - Die Basisstation
20 ist vorzugsweise konfiguriert, um über die Luft mit einer Mehrzahl von drahtlosen Kommunikationsvorrichtungen zu kommunizieren und weist einen Transceiver (nicht gezeigt) auf, der die Über-die-Luft-Kommunikation in eine drahtgebundene Kommunikation umwandelt, die über das Netz40 läuft. Vorzugsweise ist das Netz40 ein privates Netz, das von dem Drahtlos-Netzbetreiber betrieben wird. Das Netz40 stellt vorzugsweise die Infrastruktur für das Weiterreichen zwischen Basisstationen, wie zum Beispiel den Basisstationen20 und22 , bereit. Außerdem stellt das Netz40 vorzugsweise die Kommunikationsverbindung zwischen verschiedenen Anwendungen, Diensten und anderen computerbasierten Servern, wie zum Beispiel dem PMRTI-Server30 und dem Sicherheitsserver35 , bereit. - Das Netz
40 kann auch als Kanal für Verbindungen zu anderen Netzen (nicht gezeigt) dienen, wie zum Beispiel einem dienstintegrierten Digitalnetz ("ISDN"), einem öffentlichen analogen Telefonnetz ("PSTN"), einem öffentlichen landgestützten Mobilnetz ("PLMN"), einem öffentlichen, paketvermittelten Datennetz ("PSPDN") und dem Internet, nur um einige zu nennen. - Der PMRTI-Server
30 kann als ein einzelner Computer oder als eine Mehrzahl von logisch angeordneten Servern implementiert sein, um dynamische Befehlssätze an mobile Vorrichtungen zu liefern und um dynamische Befehlssätze auszuführen, die von mobilen Vorrichtungen empfangen werden. In gleicher Weise kann der Sicherheitsserver35 unter Verwendung eines Mehrzweckcomputers mit einem oder mehreren Mikroprozessoren implementiert sein, wie es in der Technik wohlverstanden wird. Insbesondere können der Sicherheitsserver35 und der PMRTI-Server30 zusammen in einer einzigen physischen Servermaschine eingebaut sein, wo sie Hardware- und Systemressourcen teilen. Der Sicherheitsserver35 und der PMRTI-Server30 können auch Datenfiles teilen und durch Interprozesskommunikationstechniken oder physische oder drahtlose Verbindungen durch das Netz40 kommunikativ gekoppelt sein. -
17A ist ein Blockdiagramm, das ein Beispiel einer drahtlosen Kommunikationsvorrichtung10 gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Die allgemeinen Merkmale der drahtlosen Kommunikationsvorrichtung10 , die erlauben, dass sie als solche funktioniert, sind in der Technik gut bekannt und werden deshalb hier nicht dargestellt oder beschrieben. - In einer Ausführungsform weist das Mobilteil
10 einen Zugriffscode55 auf. Der Zugriffscode55 ist in dem persistenten Speicher im Mobilteil10 gespeichert, wo er nicht modifiziert oder gelöscht werden kann. Der Zugriffscode55 kann eine alphanumerische Zeichenkette, eine Hexadezimalzahl, eine Binärzahl oder Ähnliches sein. Vorzugsweise ist der Zugriffscode55 eine große Zahl oder Zeichenkette, die zufällig und sehr schwer durch illegale Umprogrammierungs-Dienstprogramme oder -Werkzeuge zu erlangen ist. In einer alternativen Ausführungsform weist das Mobilteil10 den Zugriffscode55 nicht auf. Wenn kein Zugriffscode im Mobilteil10 verfügbar ist, sind die Umprogrammierungs-Dienstprogramme überhaupt nicht in der Lage, in solch einer Weise Zugriff auf das Mobilteil zu erlangen, die ein Umprogrammieren erlauben würde. Zweckmäßigerweise kann nur der Netzbetreiber das Umprogrammieren autorisieren, wenn kein Zugriffscode im Mobilteil10 vorhanden ist. Solch eine Ausführungsform erhöht signifikant die Umprogrammierungssicherheit in dem Mobilteil. - In einer Ausführungsform kann der Zugriffscode
55 ein Flag enthalten, das das Mobilteil anweist, den Netzbetreiber nach der Autorisierung zu fragen, es umzuprogrammieren. Auf diese Weise kann der Netzbetreiber das in dem Zugriffscode55 enthaltene Flag aktualisieren, so dass die Umprogrammierungssicherheit ausgeschaltet werden kann, für eine lokale Bestimmung eingestellt werden kann (zum Beispiel, wenn der richtige Zugriffscode bereitgestellt wird) oder für eine Netzbetreiber-Autorisierung eingestellt werden kann. Zweckmäßigerweise erlaubt das dem Netzbetreiber, die Umprogrammierungssicherheit auf einem individuellen Mobilteil-Detailtiefe-Pegel flexibel zu steuern. - Das Mobilteil
10 weist auch die Laufzeitmaschine50 , die Entfernter-Operationscode ("Opcode")-Bibliothek60 , die Server-Opcode-Bibliothek70 und den Entfernte-Laufzeitbefehle-Codeabschnitt80 auf. Die Laufzeitmaschine50 ist vorzugsweise konfiguriert, um dynamische Befehlssätze zu verarbeiten. Ein Beispiel eines dynamischen Befehlssatzes ist ein PMRTI-Befehlssatz. Ein anderes Beispiel eines dynamischen Befehlssatzes ist ein RPMRTI-Befehlssatz. Der Unterschied zwischen diesen beiden Befehlssätzen ist, dass der PMRTI-Satz jene Funktionen aufweist, die durch die drahtlose Vorrichtung ausgeführt werden können, während der RPMRTI-Befehlssatz jene Funktionen aufweist, die durch den PMRTI-Server30 ausgeführt werden können, der sich in dem Netz40 befindet. - Das Verarbeiten von dynamischen Befehlssätzen weist die Ausführung von PMRTI-Sätzen, die von dem PMRTI-Server
30 empfangen werden, und die Kompilierung von RPMRTI-Sätzen und entsprechenden Daten zur Lieferung an den PMRTI-Server30 auf. Vorzugsweise kann die Laufzeitmaschine50 , wenn erforderlich, durch die drahtlose Kommunikationsvorrichtung10 gestartet werden, so dass sie nur läuft, wenn es notwendig ist und einen minimalen Umfang an Systemressourcen (z.B. Speicher, CPU-Zyklen etc.) in der Vorrichtung10 verbraucht. - Die Entfernter-Opcode-Bibliothek
60 weist vorzugsweise die Gesamtheit der Operationscodes auf, die jede PMRTI-Funktion oder jedes ausführbare Codesegment repräsentieren. Zweckmäßigerweise weist die Entfernter-Opcode-Bibliothek60 die Operationscodes auf, die als Platzhalter für die tatsächlich ausführbaren Maschinencodefunktionen oder Codesegmente dienen. Als solche enthält die Entfernter-Opcode-Bibliothek60 eine Liste von allen verfügbaren Operationscodes, die jeder PMRTI-Funktion entsprechen, die durch die drahtlose Kommunikationsvorrichtung10 ausgeführt werden kann. - In gleicher Weise weist die Server-Opcode-Bibliothek
70 vorzugsweise die Gesamtheit der Operationscodes auf, die jede RPMRTI-Funktion oder jedes ausführbare Codesegment repräsentieren. Zweckmäßigerweise weist die Server-Opcode-Bibliothek70 nur die Operationscodes für die tatsächlich ausführbaren Maschinencodefunktionen oder Codesegmente auf, die sich nicht in der drahtlosen Kommunikationsvorrichtung10 befinden. Als solche enthält die Server-Opcode-Bibliothek70 eine Liste von all den Operationscodes für jede verfügbare RPMRTI-Funktion, die durch den PMRTI-Server30 im Auftrag der drahtlosen Kommunikationsvorrichtung10 ausgeführt werden kann. - In der bevorzugten Ausführungsform kann die Anzahl der verfügbaren RPMRTI-Funktionen gut die Anzahl der verfügbaren PMRTI-Funktionen übersteigen, weil der PMRTI-Server
30 nicht an den minimalen Ressourcen leidet, die man typischerweise in mobilen Vorrichtungen, wie zum Beispiel Mobiltelefonen und Minicomputern, findet. - Außerdem weist die drahtlose Kommunikationsvorrichtung
10 den Entfernter-Laufzeit-Befehlscode-Abschnitt80 auf. Der Codeabschnitt80 ist dort, wo sich der tatsächliche Maschinencode oder ausführbare Befehle in dem persistenten Speicher in der Vorrichtung10 befinden. Diese ausführbaren Befehle oder Codesegmente entsprechen vorzugsweise in einer Eins-zu-Eins-Beziehung den Opcodes, die in der Entfernter-Opcode-Bibliothek60 enthalten sind.17B ist ein Blockdiagramm, das einen Beispiel- Codeabschnitt80 gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Wie gezeigt, kann jede Anzahl von PMRTI-Funktionen in dem Codeabschnitt80 enthalten sein, von Befehl 01 bis Befehl n. Optimalerweise sind eine große Anzahl von Funktionen in dem Codeabschnitt80 verfügbar und verbrauchen dennoch sehr wenig Ressourcen (d.h. persistenten Speicher) der Vorrichtung10 . - Zweckmäßigerweise können die Server-Opcode-Bibliothek
70 , die Entfernter-Opcode-Bibliothek60 und der entsprechende Codeabschnitt80 in dem persistenten Speicher in der drahtlosen Kommunikationsvorrichtung10 während der Herstellung der Vorrichtung10 und vor ihrem Einsatz auf dem Markt (d.h. bevor sie an den Kunden verkauft wird) installiert werden. Spätere Updates zu dem Satz von Opcodes, der in beiden Bibliotheken enthalten ist, oder zu dem Satz von ausführbaren Befehlen in dem Codeabschnitt80 können durch den PMRTI-Server30 , der den später mit Bezug auf22 beschriebenen Vorgang implementiert, bereitgestellt werden. - Schließlich weist in der dargestellten Ausführungsform die drahtlose Kommunikationsvorrichtung eine Über-die-Luft-Kommunikationsverbindung
90 auf. Die Implementierung der Kommunikationsverbindung90 ist in der Technik gut bekannt und versieht die drahtlose Kommunikationsvorrichtung10 mit der Fähigkeit, innerhalb des drahtlosen Kommunikationsnetzes100 über eine Radio- oder eine andere Über-die-Luft-Verbindung zu kommunizieren. Zweckmäßigerweise kann die Über-die-Luft-Kommunikationsverbindung90 die Mittel für den PMRTI-Server30 bereitstellen, um die Entfernter-Opcode-Bibliothek60 , die Server-Opcode-Bibliothek70 und den Entfernte-Laufzeitbefehle-Codeabschnitt80 zu aktualisieren. -
18A ist ein Blockdiagramm, das ein Beispiel eines PMRTI-Servers30 gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Die Merkmale eines Mehrzweck-Computers, der den PMRTI-Server implementieren kann, werden später mit Bezug auf23 beschrieben. - In der dargestellten Ausführungsform weist der PMRTI-Server
30 ein Steuermodul95 , eine Entfernter-Opcode-Bibliothek60 , eine Server-Opcode-Bibliothek70 und einen Server-Laufzeitbefehle-Codeabschnitt82 auf. Die Entfernter-Opcode-Bibliothek60 und die Server-Opcode-Bibliothek70 enthalten vorzugsweise die gleiche Liste von Opcodes wie die Bibliotheken, die in der drahtlosen Kommunikationsvorrichtung10 vorhanden sind. Das Steuermodul95 ist vorzugsweise konfiguriert, dynamische Befehlssätze zu verarbeiten und ein Netz von PMRTI-Kommunikationen zwischen dem PMRTI-Server30 und einer Mehrzahl von drahtlosen Kommunikationsvorrichtungen zu managen, die über das drahtlose Kommunikationsnetz verfügbar sind. - Zum Beispiel kann das Steuermodul
95 verschiedene dynamische PMRTI-Sätze kompilieren und jene Befehlssätze zu einer Vielzahl von einzelnen drahtlosen Kommunikationsvorrichtungen senden. In gleicher Weise kann das Steuermodul95 auch eine Mehrzahl von dynamischen RPMRTI-Sätzen empfangen und solche Befehlssätze im Auftrag der sendenden drahtlosen Kommunikationsvorrichtung ausführen. - Die Entfernter-Opcode-Bibliothek
60 weist vorzugsweise die Gesamtheit der Operationscodes auf, die jeder verfügbaren PMRTI-Funktion oder jedem ausführbaren Codesegment entsprechen. Zweckmäßigerweise weist die Entfernter-Opcode-Bibliothek60 eine Liste der Operationscodes auf, die als Platzhalter für die tatsächlich ausführbaren Maschninencodefunktionen oder Codesegmente in dem Entfernte-Laufzeitbefehle-Codeabschnitt80 (in der drahtlosen Kommunikationsvorrichtung) dienen. Als solche enthält die Entfernter-Opcode-Bibliothek60 eine Liste von allen verfügbaren Opcodes für alle verfügbaren PMRTI-Funktionen, die durch eine drahtlose Kommunikationsvorrichtung ausgeführt werden können. - In gleicher Weise weist die Server-Opcode-Bibliothek
70 vorzugsweise die Gesamtheit der Operationscodes auf, die jeder RPMRTI-Funktion oder jedem ausführbaren Codesegment entsprechen. Zweckmäßigerweise weist die Server-Opcode-Bibliothek70 nur die Operationscodes für die tatsächlich ausführbaren Maschinencodefunktionen oder Codesegmente auf, die durch den PMRTI-Server30 ausgeführt werden können. In der bevorzugten Ausführungsform kann die Anzahl der verfügbaren RPMRTI-Funktionen gut die Anzahl der verfügbaren PMRTI-Funktionen übersteigen, weil der PMRTI-Server30 nicht an den minimalen Ressourcen leidet, die man typischerweise in mobilen Vorrichtungen, wie zum Beispiel Mobiltelefonen oder Minicomputern, findet. - Außerdem weist der PMRTI-Server
30 den Server-Laufzeitbefehle-Codeabschnitt82 auf. Der Codeabschnitt82 ist dort, wo sich der tatsächliche Maschinencode oder die ausführbaren Befehle in dem persistenten Speicher in dem Server30 befinden. Diese ausführbaren Befehle oder Codesegmente entsprechen vorzugsweise in einer Eins-zu-Eins-Beziehung den Operationscodes, die in der Server-Opcode-Bibliothek70 enthalten sind, die sich sowohl in dem Server30 also auch in der drahtlosen Kommunikationsvorrichtung10 befindet.18B ist ein Blockdiagramm, das ein Beispiel eines Server-Laufzeitbefehle-Codeabschnitts gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. -
19 ist ein Flussdiagramm, das einen Beispielvorgang zum Ausführen dynamischer Befehlssätze in einer drahtlosen Kommunikationsvorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Zunächst empfängt die drahtlose Vorrichtung in Schritt500 einen Satz von entfernten Opcodes. Der Satz von entfernten Opcodes kann über eine Über-die-Luft-Kommunikationsverbindung, zum Beispiel eine Verbindung mit einem drahtlosen Kommunikationsnetz, empfangen werden. Vorzugsweise werden die Opcodes optimiert, um die Menge an Daten zu minimieren, die über die Luft gesendet werden. Außerdem können mit dem Satz von Opcodes, der durch die drahtlose Vorrichtung empfangen wird, Nutzdaten enthalten sein. - Im Schritt
502 startet die drahtlose Vorrichtung ihre Laufzeitmaschine, um den entfernten Opcode-Satz zu verarbeiten. Wie in Schritt504 dargestellt, analysiert die Laufzeitmaschine den entfernten Opcode-Satz und extrahiert dann in Schritt506 die Nutzdaten. Wenn keine Daten-Nutzinformation existiert, dann kann dieser Schritt übersprungen werden. Wenn Nutzdaten existieren, dann können die resultierenden Daten in einem verfügbaren Abschnitt des flüchtigen Speichers für die spätere Verwendung gespeichert werden. Als nächstes erhält die Laufzeitmaschine die ausführbaren Befehle, die den Opcodes in dem entfernten Opcode-Satz entsprechen, wie in Schritt508 gezeigt. Diese Befehle können von dem Entfernte-Laufzeitbefehle-Codeabschnitt der drahtlosen Vorrichtung erhalten werden. - Sobald die ausführbaren Befehle entsprechend den Opcodes in dem entfernten Opcode-Satz erhalten worden sind, führt die Laufzeitmaschine die Befehle aus, wie in Schritt
510 dargestellt. Wenn die Befehle ausgeführt werden, können alle notwendigen Daten, an denen zu arbeiten ist, aus dem flüchtigen Speicher erhalten werden, wo die Daten-Nutzinformation gespeichert ist. Alternativ oder zusätzlich können alle notwendigen Daten, an denen zu arbeiten ist, als das Ergebnis eines ausgeführten Befehls erhalten werden. - Zum Beispiel kann die Daten-Nutzinformation ein aktualisiertes Softwaremodul für die drahtlose Vorrichtung aufweisen. Außerdem kann einer der Opcodes in dem entfernten Opcode-Satz einem ausführbaren Befehl zum Ersetzen eines Abschnitts des persistenten Speichers durch einen Abschnitt der Daten-Nutzinformation entsprechen. In diesem Beispiel ist der Abschnitt des persistenten Speichers, der ersetzt wird, das veraltete Softwaremodul, und als Ergebnis wird das aktualisierte Softwaremodul durch den Befehl in den persistenten Speicher geladen. Somit operieren der entfernte Opcode-Satz und die Daten-Nutzinformation in der drahtlosen Vorrichtung, um ein Softwaremodul zu aktualisieren.
- Sobald der Befehlssatz in seiner Gesamtheit durch die Laufzeitmaschine ausgeführt wurde, kann die Laufzeitmaschine beendet werden, wie in Schritt
512 gezeigt. Zweckmäßigerweise kann die Laufzeitmaschine so gestartet und beendet werden, dass sie nur läuft, wenn es notwendig ist. Das spart Systemressourcen in der drahtlosen Vorrichtung, es können zum Beispiel flüchtiger Speicherplatz und CPU-Zyklen gespart werden. -
20 ist ein Flussdiagramm, das einen Beispielvorgang für das Kompilieren dynamischer Befehlssätze in einer drahtlosen Kommunikationsvorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Zunächst wird die Laufzeitmaschine gestartet, wie in Schritt520 dargestellt. Sobald die Laufzeitmaschine läuft, kann die Maschine einen Satz von Server-Opcodes kompilieren, wie in Schritt522 gezeigt. Der Satz von Server-Opcodes kann von einem Hintergrundprozess erhalten werden, der in der drahtlosen Vorrichtung läuft. Alternativ kann der Server-Opcode-Satz von einem Prozess erhalten werden, der in der drahtlosen Vorrichtung unter Leitung eines Benutzers läuft. - Zum Beispiel kann die drahtlose Vorrichtung einen Satz von Routinen aufweisen, die durch das Betriebssystem periodisch und automatisch laufen gelassen werden, um die Systemwartung oder andere wünschenswerte Funktionen auszuführen. Diese Prozeduren können im Ergebnis ihrer Ausführung bewirken, dass ein Server-Opcode-Satz durch die Laufzeitmaschine erzeugt wird. Alternativ kann ein Benutzer einen bestimmen Satz von Routinen auslösen, der nur ausgeführt wird, wenn er durch einen Benutzer angefordert wird. Dieser Satz von Routinen kann auch bewirken, dass ein Server-Opcode-Satz durch die Laufzeitmaschine erzeugt wird. In beiden Fällen ist das Ergebnis ein durch die Laufzeitmaschine erzeugter Server-Opcode-Satz, wie in Schritt
522 gezeigt. - Sobald der Server-Opcode-Satz erzeugt wurde, bestimmt die Laufzeitmaschine in Schritt
524 , ob Nutzdaten den Server-Opcode-Satz begleiten sollten. Wenn es Daten gibt, die zusammen mit dem Server-Opcode-Satz gehen müssen, holt die Laufzeitmaschine in Schritt526 die Daten von dem persistenten oder dem flüchtigen Speicher oder führt einen Befehl aus, der die benötigten Daten zurückgibt. Sobald die Daten erhalten wurden, fügt die Laufzeitmaschine als nächstes die Daten in den Server-Opcode-Satz ein, wie in Schritt528 dargestellt. Ein einfacher Weg, das zu erreichen, ist, die Nutzdaten an den Server-Opcode-Satz in einem einzigen Datenpacket anzuhängen. - Sobald die Nutzdaten mit dem Server-Opcode-Satz verbunden wurden, oder wenn keine Nutzdaten erforderlich sind, dann sendet die Laufzeitmaschine den Server-Opcode-Satz (mit oder ohne Nutzdaten) an den Server, wie in Schritt
530 gezeigt. Nachdem der Server-Opcode-Satz gesendet wurde, kann die Laufzeitmaschine beendet werden, um Ressourcen in der drahtlosen Vorrichtung freizusetzen, wie in Schritt532 gezeigt. -
21 ist ein Flussdiagramm, das einen Beispielvorgang zum Ausführen dynamischer Befehlssätze auf einem PMRTI-Server gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Zunächst empfängt der Server in Schritt540 den Server-Opcode-Satz. Der Opcode-Satz ist vorzugsweise eine Liste von Phantasienamen, die eine Reihe von ausführbaren Befehlen repräsentieren, wobei jeder Opcode einen diskret ausführbaren Befehl oder einen diskreten Satz von ausführbaren Befehlen repräsentiert. Sobald der Satz von Server-Opcodes empfangen wurde, parst der Server dann in Schritt542 den Server-Opcode-Satz und extrahiert jegliche Nutzdaten, die mit dem Server-Opcode-Satz enthalten sind, wie in Schritt544 dargestellt. Wenn die Nutzdaten extrahiert sind, können sie temporär in dem flüchtigen Speicher auf dem Server für eine spätere Verwendung gespeichert werden. - Als nächstes erhält der Server den entsprechenden Befehlssatz, wie in Schritt
546 gezeigt. Vorzugsweise ist der entsprechende Befehlssatz in einem Server-Laufzeitbefehle-Codeabschnitt gespeichert, der sich in dem persistenten Speicher auf der PMRTI-Servermaschine befindet. Sobald der Befehlssatz erhalten wurde, führt der Server dann den Befehlssatz aus, wie in Schritt548 zu sehen. Wenn der Befehlssatz ausgeführt wird, können die Ausführungsroutinen die Nutzdaten verwenden, die mit dem Server-Opcode-Satz gekommen sind. Vorzugsweise werden die Nutzdaten zu diesen Zweck im Speicher auf dem Server gespeichert. Alternativ können die Ausführungsroutinen Befehle aufweisen, die die Daten erzeugen, die für den Befehlssatz notwendig sind, seine Funktion auszuführen. -
22 ist ein Flussdiagramm, dass einen Beispielvorgang zur Netzbetreiber-Autorisierung der Mobilteil-Umprogrammierung darstellt. Zunächst empfängt in Schritt580 das Mobilteil eine Umprogrammierungsanforderung von einer Umprogrammierungsvorrichtung. Die Vorrichtung kann mit dem Mobilteil über ein direktes serielles Kabel oder eine lokale physische Netzwerkverbindung verbunden sein. Die Vorrichtung kann auch an eine Mehrzahl von Mobilteilen über eine lokale Netzwerkverbindung oder eine serielle One-to-many-Kabelverbindung angeschlossen sein, die es erlaubt, dass die Umprogrammierungsvorrichtung mit mehreren Mobilteilen arbeitet. - Sobald das Mobilteil die Umprogrammierungsanforderung, einen Umprogrammierungsversuch oder einen Versuch empfängt, den Zugriffscode des Mobilteils zu bestimmen, sendet das Mobilteil eine Anfrage zu dem Netzbetreiber über ein drahtloses Kommunikationsmittel, wie in Schritt
582 gezeigt. Diese Anfrage wird gesendet, um zu bestimmen, ob die Umprogrammierung des Mobilteils durch den Netzbetreiber autorisiert ist. Wenn das Mobilteil eine Antwort von dem Netzbetreiber über das selbe drahtlose Kommunikationsmittel erhält, bestimmt das Mobilteil, ob die Umprogrammierung autorisiert ist, wie in Schritt584 gezeigt. Wenn die Umprogrammierung autorisiert ist, erlaubt das Mobilteil in Schritt586 die Umprogrammierung, zum Beispiel indem der Umprogrammierungsvorrichtung der Zugriffscode, falls einer existiert, geliefert wird. - Falls die Umprogrammierung nicht autorisiert ist, verweigert das Mobilteil die Umprogrammierungsanforderung, wie in Schritt
588 dargestellt. Zweckmäßigerweise kann der Netzbetreiber die Anforderung protokollieren. Außerdem kann der Netzbetreiber das Mobilteil nach Standortinformationen, wie zum Beispiel GPS, abfragen, um den Standort zu bestimmen, an dem der Umprogrammierungsversuch unternommen wurde. Diese Informationen können hilfreich sein, falls der Umprogrammierungsversuch unbefugt war. -
23 ist ein Flussdiagramm, das einen Öffentlicher-und-Privater-Schlüssel-Beispielvorgang zur Netzbetreiber-Autorisierung der Mobilteil-Umprogrammierung darstellt. Zunächst empfängt das Mobilteil in Schritt590 eine Umprogrammierungsanforderung. Als nächstes erhält das Mobilteil so viel wie möglich Informationen über die Umprogrammierungsvorrichtung. Zum Beispiel kann das Mobilteil die IP-Adresse oder die MIN der Umprogrammierungsvorrichtung erhalten, falls die Vorrichtung drahtlos aktiviert ist. Es können auch zusätzliche Informationen erhalten werden. - In Schritt
594 erhält das Mobilteil seine eigenen Informationen, wie zum Beispiel seine MIN und seine ESN und andere Informationen, die von dem Netzbetreiber zur Identifikation des Mobilteils benötigt werden. Sobald die Informationen erhalten wurden, sendet das Mobilteil die Informationen an den Netzbetreiber, wie in Schritt596 dargestellt. Diese Informationen können zu dem Sicherheitsserver in dem drahtlosen Netzwerk zur Verarbeitung geliefert werden. Nach dem Senden der Informationen empfängt das Mobilteil einen privaten Schlüssel von dem Netzbetreiber, wie in Schritt598 gezeigt. Das Mobilteil konvertiert dann in Schritt600 den privaten Schlüssel unter Verwendung seines eigenen öffentlichen Schlüssels und empfängt dann in Schritt602 einen Schlüssel von der Umprogrammierungsvorrichtung. Das Mobilteil fährt dann fort, den konvertierten Schlüssel mit dem Schlüssel von der Umprogrammierungsvorrichtung zu vergleichen, um zu sehen, ob sie übereinstimmen, wie in Schritt604 dargestellt. Wenn die Schlüssel übereinstimmen, dann wird eine Autorisierung für eine Umprogrammierung bereitgestellt, wie in Schritt608 gezeigt. Wenn die Schlüssel jedoch nicht übereinstimmen, dann verweigert das Mobilteil in Schritt606 die Umprogrammierungsanforderung. - Bei dem oben beschriebenen Vorgang (vom Standpunkt des Mobilteils aus) ist es wichtig zu betonen, dass der Netzbetreiber die Informationen der Umprogrammierungsvorrichtung verwendet, um die Umprogrammierungsvorrichtung zu kontaktieren und den privaten Schlüssel des Netzbetreibers zu der Umprogrammierungsvorrichtung zu senden, ähnlich wie der Netzbetreiber in Schritt
598 seinen privaten Schlüssel an das Mobilteil sendet. Der private Schlüssel ist der Ursprung einer jeden Schlüsselkonvertierung durch die Umprogrammierungsvorrichtung, und deshalb muss die Umprogrammierungsvorrichtung den privaten Schlüssel erhalten, so dass er konvertiert und an das Mobilteil zum Vergleich gesendet werden kann. Wenn die Umprogrammierungsvorrichtung nicht in der Lage ist, den privaten Schlüssel zu empfangen und ihn zu konvertieren und den konvertierten Schlüssel an das Mobilteil zu senden, kann das Mobilteil konfiguriert sein, dass es ein Timeout realisiert und die Umprogrammierungsanforderung verweigert. -
24 ist ein Flussdiagramm, das einen Beispielvorgang zum Bilden eines Fensters einer autorisierungsfreien Umprogrammierung an einem Mobilteil darstellt. In einer Ausführungsform, in der ein Netzbetreiber einen großen Bestand an Telefonen hat, die umprogrammiert werden müssen, kann sich der Netzbetreiber entscheiden, die Umprogrammierungs-Sicherheitsprozeduren für ein vorbestimmtes Zeitintervall auszuschalten. Zum Beispiel kann ein Fenster von 6 Stunden festgelegt werden, um es einem Dienstanbieter zu ermöglichen, einen Block von Mobilteilen umzuprogrammieren. - Zunächst sendet der Netzbetreiber einen Befehl an eine Gruppe von Mobilteilen oder alternativ an ein einzelnes Mobilteil aus. Solch ein Befehl kann durch den PMRTI-Server unter Verwendung des vorher beschriebenen Entfernter-Opcode-Satzes geliefert werden. In Schritt
620 empfängt das Mobilteil diesen Befehl von dem Netzbetreiber. Der Befehl teilt dem Mobilteil mit, die Umprogrammierungs-Sicherheitsprozeduren während eines bestimmten Zeitfensters auszuschalten. Der Befehl kann dem Mobilteil auch mitteilen, die Umprogrammierungs-Sicherheitsprozeduren auf unbestimmte Zeit auszuschalten. Alternativ kann der Befehl dem Mobilteil mitteilen, die Sicherheitsprozeduren einzuschalten. In diesem Fall teilt der Befehl dem Mobilteil mit, die Sicherheitsprozeduren für ein Fenster von 6 Stunden, das sofort beginnt, auszuschalten. - In Schritt
622 schaltet das Mobilteil die Umprogrammierungs-Sicherheitsmerkmale aus. Das Mobilteil prüft dann periodisch, um zu sehen, ob das Ende der vorbestimmten Periode erreicht ist, wie in Schritt624 dargestellt. Wenn die Periode noch in Kraft ist, wartet das Mobilteil weiter, wie in Schritt626 gezeigt. Die Warteperiode zwischen jeder Prüfung kann in einem kleinen Intervall, einem großen Intervall oder einem variablen Intervall, welches dadurch bestimmt wird, wie nahe das Wiedereinschalten der Umprogrammierungs-Sicherheitsmerkmale liegt, eingestellt werden. -
25 ist ein Flussdiagramm, dass einen beispielhaften PMRTI-Vorgang zur Netzbetreiber-Autorisierung der Mobilteil-Umprogrammierung darstellt. Zunächst empfängt das Mobilteil eine Umprogrammierungsanforderung, wie in Schritt640 zu sehen. Auf das Empfangen solch einer Anforderung hin erhält das Mobilteil Informationen von der Umprogrammierungsvorrichtung, wie in Schritt642 gezeigt. Diese Informationen können eine Software-Identifikationsnummer (um das Umprogrammierungs-Dienstprogramm zu validieren), eine MIN oder andere unikale Identifizierungsmerkmale für die Umprogrammierungsvorrichtung oder das Software-Dienstprogramm oder das Werkzeug aufweisen, das durch die Umprogrammierungsvorrichtung verwendet wird. - In Schritt
644 erhält das Mobilteil seine eigenen Identifikationsinformationen wie zum Beispiel seine MIN, seine ESN oder andere nützliche oder hilfreiche Informationen, wie zum Beispiel seinen Standort. Sobald die Informationen des Mobilteils und der Umprogrammierungsvorrichtung erhalten wurden, erzeugt das Mobilteil in Schritt646 Nutzdaten, die diese Informationen enthalten. Es können auch zusätzliche Informationen bereitgestellt werden. Als nächstes kompiliert das Mobilteil in Schritt648 einen Server-Opcode-Satz, der die Nutzdaten und einen Server-Opcode enthält, der einen Befehl für den Server repräsentiert, die Umprogrammierung zu autorisieren. Dieser Server-Opcode-Satz wird dann in Schritt650 an den Netzbetreiber gesendet, wo er zuerst an den PMRTI-Server und dann an den Sicherheitsserver geliefert wird. Diese beiden Server können in der selben Maschine untergebracht sein und sogar als eine einzige kombinierte Software-Anwendung laufen. - Nachdem der Server-Opcode-Satz durch den Netzbetreiber verarbeitet ist, empfängt das Mobilteil einen Entfernter-Opcode-Satz von dem Netzbetreiber, wie in Schritt
652 zu sehen. Auf den Empfang des Entfernter-Opcode-Satzes hin extrahiert das Mobilteil in Schritt654 die Nutzdaten und übersetzt dann die entfernten Opcodes in dem Satz in ausführbare Befehle, wie in Schritt656 dargestellt. Das Mobilteil führt dann in Schritt658 diese Befehle aus, um zu bestimmen, ob eine Autorisierung durch den Netzbetreiber bereitgestellt wurde. Die Autorisierung oder die Verweigerung von dem Netzbetreiber kann in den Nutzdaten enthalten sein, mit einem Befehl, der die Antwort aus den Nutzdaten entpackt und die Antwort zu dem Betriebssystem oder dem Dienstprogramm des Mobilteils liefert, das in Kommunikation mit der Umprogrammierungsvorrichtung steht. Sobald das Mobilteil seine Autorisierung oder Verweigerung von dem Netzbetreiber hat, antwortet das Mobilteil der Umprogrammierungsvorrichtung entsprechend in einer bestätigenden oder negativen Art und Weise. - Auf der Serverseite protokolliert der Netzbetreiber vorzugsweise jede Umprogrammierungsanforderung von einem Mobilteil. Außerdem kann der Netzbetreiber eine Statistik über erfolgreiche und erfolglose Umprogrammierungsversuche führen. Ferner kann der Netzbetreiber die Umprogrammierung basierend auf den bereitgestellten Informationen autorisieren, die die Umprogrammierungsvorrichtung betreffen. Der Netzbetreiber kann auch eine teilweise Umprogrammierung des Mobilteils autorisieren. Zum Beispiel kann dies vorteilhaft sein, wenn ältere Mobilteile an Schutz- oder andere Organisationen gespendet werden. Diese Mobilteile können für bestimmte Arten des Netzwerkzugangs umprogrammiert werden, während die originale MIN des Mobilteils behalten wird.
-
26 ist ein Blockdiagramm, dass ein beispielhaftes Computersystem550 darstellt, das in Verbindung mit den verschiedenen, hierin beschriebenen Beispielen verwendet werden kann. Zum Beispiel kann das Computersystem550 als der PMRTI-Server oder der Sicherheitsserver verwendet werden, der sich innerhalb des drahtlosen Kommunikationsnetzes befindet. Das Computersystem550 kann auch als eines der verschiedenen anderen Allgemeinzweck- oder Spezialzweck-Computersysteme verwendet werden, die das drahtlose Kommunikationsnetz und seine konstituierenden Komponenten umfassen. Es können jedoch andere Computersysteme und Architekturen verwendet werden, wie dem Fachmann klar sein wird. - Das Computersystem
550 weist vorzugsweise einen oder mehrere Prozessoren auf, wie zum Beispiel den Prozessor552 . Zusätzliche Prozessoren können vorgesehen sein, wie zum Beispiel ein zusätzlicher Prozessor, um die Eingabe und Ausgabe zu managen, ein zusätzlicher Prozessor, um mathematische Fließkommaoperationen auszuführen, ein Spezial-Mikroprozessor mit einer Architektur, die für eine schnelle Ausführung von Signalverarbeitungsalgorithmen (zum Beispiel ein digitaler Signalprozessor) geeignet ist, ein Slave- Prozessor, der dem Hauptprozessorsystem untergeordnet ist (zum Beispiel ein nachgestellter Prozessor), ein zusätzlicher Mikroprozessor oder -controller für Dual- oder Multiprozessorsysteme, oder ein Koprozessor. Solche zusätzlichen Prozessoren können diskrete Prozessoren sein oder können mit dem Prozessor552 integriert sein. - Der Prozessor
552 ist vorzugsweise an einen Kommunikationsbus554 angeschlossen. Der Kommunikationsbus554 kann einen Datenkanal zum Ermöglichen des Informationstransfers zwischen Speicher- und anderen Peripheriekomponenten des Computersystems550 aufweisen. Der Kommunikationsbus554 kann ferner einen Satz von Signalen bereitstellen, die für die Kommunikation mit dem Prozessor552 verwendet werden, einschließlich eines Datenbusses, eines Adressbusses und eines Steuerbusses (nicht gezeigt). Der Kommunikationsbus554 kann jede standardisierte oder nicht standardisierte Busarchitektur aufweisen, zum Beispiel Busarchitekturen, die mit der Industry Standard Architecture ("ISA"), der Extended Industry Standard Architecture ("EISA"), der Micro Channel Architecture ("MCA"), dem Peripheral-Component-Interconnect ("PCI")-Lokalbus oder Standards konform sind, die durch das Institute of Electrical and Electronics Engineers ("IEEE") veröffentlicht wurden, einschließlich des IEEE-488-General-Purpose-Interface-Bus ("GPIB"), IEEE 696/S-100 und ähnliche. - Das Computersystem
550 weist vorzugsweise einen Hauptspeicher556 auf und kann auch einen sekundären Speicher558 aufweisen. Der Hauptspeicher556 stellt einen Speicher von Befehlen und Daten für Programme bereit, die in dem Prozessor552 ausgeführt werden. Der Hauptspeicher556 ist typischerweise ein halbleiterbasierter Speicher wie zum Beispiel ein dynamischer Schreib-Lese-Speicher ("DRAM") und/oder ein statischer Schreib-Lese-Speicher ("SRAM"). Andere halbleiterbasierte Speicherarten weisen beispielsweise einen Synchronous Dynamic Random Access Memory ("SDRAM"), Rambus Dynamic Random Access Memory ("RDRAM"), Ferroelectric Random Access Memory ("FRAM") und ähnliche auf, einschließlich einen Festwertspeicher ("ROM"). - Der sekundäre Speicher
558 kann optional ein Festplattenlaufwerk560 und/oder eine Wechselspeicherlaufwerk562 , zum Beispiel ein Diskettenlaufwerk, ein Magnetbandlaufwerk, eine Kompaktdisk ("CD")-Laufwerk, ein Digital-Versatile-Disc ("DVD")-Laufwerk u.s.w. aufweisen. Das Wechselspeicherlaufwerk562 liest von und/oder schreibt auf einem/ein Wechselspeichermedium564 in einer bekannten Weise. Das Wechselspeichermedium564 kann zum Beispiel eine Diskette, ein Magnetband, eine CD, eine DVD u.s.w. sein. - Das Wechselspeichermedium
564 ist vorzugsweise ein computerlesbares Medium mit darauf gespeichertem computerausführbaren Code (das heißt Software) und/oder Daten. Die auf dem Wechselspeichermedium564 gespeicherte Computersoftware oder die auf dem Wechselspeichermedium564 gespeicherten Daten werden in das Computersystem550 als elektrische Kommunikationssignale578 eingelesen. - In alternativen Ausführungsformen kann der sekundäre Speicher
558 andere ähnliche Mittel aufweisen, die es ermöglichen, dass Computerprogramme oder andere Daten oder Befehle in das Computersystem550 geladen werden. Solche Mittel können zum Beispiel ein externes Speichermedium572 und eine Schnittstelle570 aufweisen. Beispiele des externen Speichermediums572 können ein externes Festplattenlaufwerk oder ein externes optisches Laufwerk oder ein externes magnetooptisches Laufwerk aufweisen. - Andere Beispiele des sekundären Speichers
558 können halbleiterbasierte Speicher, wie zum Beispiel einen programmierbaren Festwertspeicher ("PROM"), einen löschbaren programmierbaren Festwertspeicher ("EPROM"), einen elektrisch löschbaren Festwertspeicher ("EEPROM") oder einen Flashspeicher (block-orientierter Speicher ähnlich dem EEPROM) aufweisen. Es sind auch beliebige andere Wechselspeichereinheiten572 und Schnittstellen570 umfasst, die es ermöglichen, dass Software und Daten von der Wechselspeichereinheit572 zu dem Computersystem550 übertragen werden. - Das Computersystem
550 kann auch eine Kommunikationsschnittstelle574 aufweisen. Die Kommunikationsschnittstelle574 ermöglicht es, dass Software und Daten zwischen dem Computersystem550 und externen Geräten (zum Beispiel Druckern), Netzwerken oder Informationsquellen übertragen werden. Zum Beispiel kann Computersoftware oder ausführbarer Code von einem Netzwerkserver über die Kommunikationsschnittstelle574 zu dem Computersystem550 übertragen werden. Beispiele der Kommunikationsschnittstelle574 weisen ein Modem, eine Netzwerk-Schnittstellenkarte ("NIC"), einen Kommunikationsanschluss, einen PCMCIA-Steckplatz und eine PCMCIA-Karte, eine Infrarot-Schnittstelle, und IEEE 1394 Fire Wire auf, um nur ein paar zu nennen. - Die Kommunikationsschnittstelle
574 implementiert vorzugsweise von der Industrie veröffentlichte Protokollstandards wie zum Beispiel die IEEE-802-Ethernet-Standards, Glasfaserkanal, Digital Subscriber Line ("DSL"), Asynchronous Digital Subscriber Line ("ADSL"), Frame Relay, Asynchronous Transfer Mode ("ATM"), Integrated Digital Services Network ("ISDN"), Personal Communications Services ("PCS"), Transmission Control Protocol/Internet Protocol ("TCP/IP"), Serial Line Internet Protocol/Point to Point Protocol ("SLIP/PPP") und so weiter, kann aber ebenso auch kundenspezifische oder nicht standardisierte Schnittstellenprotokolle implementieren. - Software und Daten, die über die Kommunikationsschnittstelle
574 übertragen werden, sind im Allgemeinen in der Form von elektrischen Kommunikationssignalen578 . Diese Signale578 werden der Kommunikationsschnittstelle574 vorzugsweise über einen Kommunikationskanal576 geliefert. Der Kommunikationskanal576 transportiert Signale578 und kann unter Verwendung einer Vielfalt von Kommunikationsmitteln einschließlich Draht oder Kabel, Faseroptik, der herkömmlichen Telefonleitung, einer Mobilfunkverbindung, einer Hochfrequenz (RF)-Verbindung oder einer Infrarotverbindung, nur um ein paar zu nennen, implementiert werden. - Computerausführbarer Code (das heißt Computerprogramme oder Software) wird in dem Hauptspeicher
556 und/oder dem sekundären Speicher558 gespeichert. Computerprogramme können auch über die Kommunikationsschnittstelle574 empfangen und in dem Hauptspeicher556 und/oder dem sekundären Speicher558 gespeichert werden. Solche Computerprogramme ermöglichen, wenn sie ausgeführt werden, dass das Computersystem550 die wie vorher beschriebenen, verschiedenen Funktionen ausführt. - In dieser Beschreibung wird der Begriff "computerlesbares Medium" verwendet, um jedes Medium zu bezeichnen, das verwendet wird, um dem Computersystem
550 computerausführbaren Code (das heißt Software und Computerprogramme) bereitzustellen. Beispiele dieser Medien weisen den Hauptspeicher556 , den sekundären Speicher558 (einschließlich Festplattenlaufwerk560 , Wechselspeichermedium564 und externes Speichermedium572 ) und jedes periphere Gerät auf, das kommunikativ mit der Kommunikationsschnittstelle574 (einschließlich eines Netzinformationsservers oder eines anderen Netzwerkgerätes) gekoppelt ist. Diese computerlesbaren Medien sind Mittel zum Bereitstellen eines ausführbaren Codes, von Programmbefehlen und Software an das Computersystem550 . - In einer Ausführungsform, die unter Verwendung von Software implementiert ist, kann die Software auf einem computerlesbaren Medium gespeichert sein und mittels des Wechselspeicherlaufwerks
562 , der Schnittstelle570 oder der Kommunikationsschnittstelle574 in das Computersystem550 geladen werden. In solch einer Ausführungsform wird die Software in das Computersystem550 in der Form von elektrischen Kommunikationssignalen578 geladen. Die Software, wenn sie durch den Prozessor552 ausgeführt wird, bewirkt vorzugsweise, dass der Prozessor552 die hierin vorher beschriebenen erfinderischen Merkmale und Funktionen ausführt. - Viele Beispiele können auch primär in Hardware, zum Beispiel unter Verwendung von Komponenten wie zum Beispiel anwendungsspezifischer Schaltkreise ("ASIC's") oder Field Programmable Gate Arrays ("FPGA's") implementiert werden. Die Implementierung einer Hardwaremaschine, die in der Lage ist, die hier beschriebenen Funktionen auszuführen, wird dem einschlägigen Fachmann auch offenbar sein. Viele Beispiele können auch unter Verwendung einer Kombination von sowohl Hardware als auch Software implementiert werden.
- Obwohl die einzelnen Systeme und Verfahren, die hierin gezeigt und ausführlich beschrieben sind, vollauf in der Lage sind, die oben beschriebenen Ziele dieser Erfindung zu erreichen, versteht es sich, dass die Beschreibung und die hierin präsentierten Zeichnungen stellvertretend für den Gegenstand sind, der durch die vorliegende Erfindung breit betrachtet wird. Es versteht sich ferner, dass der Bereich der vorliegenden Erfindung vollauf andere Ausführungsformen umfasst, die dem Fachmann offenbar werden können, und dass der Bereich der vorliegenden Erfindung dementsprechend durch nichts anderes als die beigefügten Ansprüche begrenzt wird.
Claims (21)
- Verfahren für verbesserte Sicherheit bei der Umprogrammierung drahtloser Kommunikationsvorrichtungen (
10 ,12 ,14 ), wobei das Verfahren die Schritte aufweist: Empfangen einer Autorisierungsanforderung von einer umprogrammierbaren, drahtlosen Kommunikationsvorrichtung (10 ,12 ,14 ) in Kommunikation mit einer Umprogrammierungsvorrichtung (45 ), wobei die Autorisierungsanforderung eine unikale Kennung (55 ) für die nachfragende umprogrammierbare, drahtlose Kommunikationsvorrichtung (10 ,12 ,14 ) hat; Konsultieren eines Datenspeicherbereichs für Umprogrammierungsinformationen, die zu der umprogrammierbaren, drahtlosen Kommunikationsvorrichtung (10 ,12 ,14 ) gehören; Bestimmen des aktuellen Programmierstatus der umprogrammierbaren, drahtlosen Kommunikationsvorrichtung (10 ,12 ,14 ); und Senden einer Autorisierungsantwort an die umprogrammierbare, drahtlose Kommunikationsvorrichtung (10 ,12 ,14 ), basierend auf dem aktuellen Programmierstatus. - Verfahren nach Anspruch 1, wobei die Autorisierungsantwort die Umprogrammierung verweigert.
- Verfahren nach Anspruch 1, wobei die Autorisierungsantwort die Umprogrammierung erlaubt.
- Verfahren nach Anspruch 1, wobei die Autorisierungsantwort die Umprogrammierung teilweise erlaubt.
- Verfahren nach Anspruch 1, welches ferner die Schritte aufweist: Speichern der Autorisierungsanfrage und der Autorisierungsantwort in dem Datenspeicherbereich; und In-Verbindung-bringen der Autorisierungsanforderung und der Autorisierungsantwort mit der anfordernden umprogrammierbaren, drahtlosen Kommunikationsvorrichtung (
10 ,12 ,14 ). - Verfahren nach Anspruch 1, wobei die Autorisierungsanforderung Kontaktinformationen für die Umprogrammierungsvorrichtung aufweist, das ferner die Schritte aufweist: Senden eines privaten Schlüssels an die umprogrammierbare, drahtlose Kommunikationsvorrichtung (
10 ,12 ,14 ); und Senden des privaten Schlüssels an die Umprogrammierungsvorrichtung (45 ), wobei die privaten Schlüssel durch die jeweiligen Vorrichtungen (10 ,12 ,14 und45 ) konvertiert werden und verglichen werden, um die Umprogrammierungs-Autorisierungsantwort zu bestimmen. - Computerlesbares Medium, welches darauf eine oder mehrere Sequenzen von Anweisungen gespeichert hat, um zu bewirken, dass ein oder mehrere Mikroprozessoren die Schritte für die verbesserte Sicherheit bei der Umprogrammierung drahtloser Kommunikationsvorrichtungen (
10 ,12 ,14 ) ausführen, wobei die Schritte aufweisen: Empfangen einer Autorisierungsanforderung von einer umprogrammierbaren, drahtlosen Kommunikationsvorrichtung (10 ,12 ,14 ), wobei die Autorisierungsanforderung eine unikale Kennung (55 ) für die anfordernde umprogrammierbare, drahtlose Kommunikationsvorrichtung (10 ,12 ,14 ) hat; Konsultieren eines Datenspeicherbereichs für Umprogrammierungsinformationen, die zu der umprogrammierbaren, drahtlosen Kommunikationsvorrichtung (10 ,12 ,14 ) gehören; Bestimmen des aktuellen Programmierstatus der umprogrammierbaren, drahtlosen Kommunikationsvorrichtung (10 ,12 ,14 ); und Senden einer Autorisierungsantwort an die umprogrammierbare, drahtlose Kommunikationsvorrichtung (10 ,12 ,14 ), basierend auf dem aktuellen Programmierstatus. - Computerlesbares Medium nach Anspruch 7, wobei die Autorisierungsantwort die Umprogrammierung verweigert.
- Computerlesbares Medium nach Anspruch 7, wobei die Autorisierungsantwort die Umprogrammierung erlaubt.
- Computerlesbares Medium nach Anspruch 7, wobei die Autorisierungsantwort die Umprogrammierung teilweise erlaubt.
- Computerlesbares Medium nach Anspruch 7, das ferner Befehle zum Ausführen der Schritte aufweist des: Speicherns der Autorisierungsanforderung und der Autorisierungsantwort in dem Datenspeicherbereich; und In-Verbindung-bringens der Autorisierungsanforderung und der Autorisierungsantwort mit der anfordernden umprogrammierbaren, drahtlosen Kommunikationsvorrichtung (
10 ,12 ,14 ). - Computerlesbares Medium nach Anspruch 7, wobei die Autorisierungsanforderung Kontaktinformationen für die Umprogrammierungsvorrichtung aufweist, das ferner Befehle zum Ausführen der Schritte aufweist des Sendens eines privaten Schlüssels an die umprogrammierbare, drahtlose Kommunikationsvorrichtung (
10 ,12 ,14 ); und Sendens des privaten Schlüssels an die Umprogrammierungsvorrichtung (45 ), wobei die privaten Schlüssel durch die jeweiligen Vorrichtungen (10 ,12 ,14 und45 ) konvertiert werden und verglichen werden, um die Umprogrammierungs-Autorisierungsantwort zu bestimmen. - System für verbesserte Sicherheit bei der Umprogrammierung drahtloser Kommunikationsvorrichtungen (
10 ,12 ,14 ), wobei das System aufweist: eine umprogrammierbare, drahtlose Kommunikationsvorrichtung (10 ,12 ,14 ), die eine serielle Schnittstelle hat, die für eine Kommunikation mit einer Umprogrammierungsvorrichtung (45 ) verwendbar ist; und einen Sicherheitsserver (35 ), der mit der umprogrammierbaren, drahtlosen Kommunikationsvorrichtung (45 ) über ein drahtloses Kommunikationsnetzwerk kommunikativ gekoppelt ist, wobei die umprogrammierbare, drahtlose Kommunikationsvorrichtung (10 ,12 ,14 ), um umprogrammiert zu werden, den Sicherheitsserver (35 ) in Antwort auf eine Kommunikation von der Umprogrammierungsvorrichtung (45 ) für eine Autorisierung kontaktiert. - System gemäß Anspruch 13, das ferner einen Datenspeicherbereich aufweist, der mit dem Sicherheitsserver (
35 ) gekoppelt ist, wobei der Datenspeicherbereich konfiguriert ist, um Informationen in Bezug auf die Umprogrammierung der umprogrammierbaren, drahtlosen Kommunikationsvorrichtungen (10 ,12 ,14 ) zu speichern. - System gemäß Anspruch 13, wobei die umprogrammierbare, drahtlose Kommunikationsvorrichtung (
10 ,12 ,14 ) einen Zugriffscode (55 ) aufweist, wobei der Zugriffscode (55 ) eine Autorisierung bereitstellt, um die umprogrammierbare, drahtlose Kommunikationsvorrichtung (10 ,12 ,14 ) umzuprogrammieren. - System gemäß Anspruch 15, wobei die umprogrammierbare, drahtlose Kommunikationsvorrichtung (
10 ,12 ,14 ) konfiguriert ist, eine Umprogrammierung zu verweigern, wenn der Autorisierungscode bereitgestellt wird. - System gemäß Anspruch 13, wobei die umprogrammierbare, drahtlose Kommunikationsvorrichtung (
10 ,12 ,14 ) ferner ein Zugriffsflag aufweist, wobei das Zugriffsflag durch den Sicherheitsserver (35 ) modifizierbar ist. - System gemäß Anspruch 17, wobei das Zugriffsflag eingestellt ist, es der umprogrammierbaren, drahtlosen Kommunikationsvorrichtung (
10 ,12 ,14 ) zu erlauben, die Umprogrammierung zu autorisieren. - System gemäß Anspruch 17, wobei das Zugriffsflag eingestellt ist, dass der Sicherheitsserver (
35 ) benötigt wird, um die Umprogrammierung der umprogrammierbaren, drahtlosen Kommunikationsvorrichtung (10 ,12 ,14 ) zu autorisieren. - System gemäß Anspruch 17, wobei das Zugriffsflag eingestellt ist, die Umprogrammierung ohne Autorisierung zu erlauben.
- Verfahren für verbesserte Sicherheit bei der Umprogrammierung drahtloser Kommunikationsvorrichtungen (
10 ,12 ,14 ), wobei das Verfahren die Schritte aufweist: Empfangen einer Umprogrammierungsanforderung in einer umprogrammierbaren, drahtlosen Kommunikationsvorrichtung (10 ,12 ,14 ) von einer damit verbundenen Umprogrammierungsvorrichtung (45 ); Senden einer Anfrage von der umprogrammierbaren, drahtlosen Kommunikationsvorrichtung (10 ,12 ,14 ) über ein drahtloses Kommunikationsmittel (20 ,22 ) an einen Betreiber-Sicherheitsserver (35 ); Empfangen einer Antwort von dem Sicherheitsserver (35 ) über das drahtlose Kommunikationsmittel (20 ,22 ), wobei die Antwort die Umprogrammierungsanforderung autorisiert oder verweigert; und Antworten auf die Umprogrammierungsanforderung gemäß der Antwort.
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/917,026 US7328007B2 (en) | 2001-07-26 | 2001-07-26 | System and method for organizing wireless communication device system software |
US916900 | 2001-07-26 | ||
US916460 | 2001-07-26 | ||
US917026 | 2001-07-26 | ||
US09/916,900 US7027806B2 (en) | 2001-07-26 | 2001-07-26 | System and method for field downloading a wireless communications device software code section |
US09/916,460 US7159214B2 (en) | 2001-07-26 | 2001-07-26 | System and method for compacting field upgradeable wireless communication device software code sections |
US09/927,131 US7143407B2 (en) | 2001-07-26 | 2001-08-10 | System and method for executing wireless communications device dynamic instruction sets |
US927131 | 2001-08-10 | ||
US09/969,305 US7386846B2 (en) | 2001-07-26 | 2001-10-02 | System and method for the management of wireless communications device system software downloads in the field |
US969305 | 2001-10-02 | ||
PCT/IB2002/002906 WO2003010942A2 (en) | 2001-07-26 | 2002-07-25 | System and method for improved security in a handset reprovisioning and reprogramming |
Publications (2)
Publication Number | Publication Date |
---|---|
DE60206055D1 DE60206055D1 (de) | 2005-10-13 |
DE60206055T2 true DE60206055T2 (de) | 2006-06-29 |
Family
ID=27542295
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE60205755T Expired - Lifetime DE60205755T2 (de) | 2001-07-26 | 2002-07-23 | System und verfahren um einen softwarekodeabschnitt eines drahtlosen kommunikationsgerätes herunterzuladen |
DE60211704T Expired - Lifetime DE60211704T2 (de) | 2001-07-26 | 2002-07-23 | Felddiagnosesystem und verfahren einer systemsoftware in einem drahtlosen kommunikationsgerät |
DE60206389T Expired - Lifetime DE60206389T2 (de) | 2001-07-26 | 2002-07-23 | System und verfahren zum aktualisieren von persistenten daten in einem drahtlosen kommunikationsgerät |
DE60211719T Expired - Lifetime DE60211719T2 (de) | 2001-07-26 | 2002-07-25 | System und verfahren für gleichrangiges kommunikationshandgerät |
DE60219536T Expired - Lifetime DE60219536T2 (de) | 2001-07-26 | 2002-07-25 | System und Verfahren für verbesserte Sicherheit in Versorgung und Umprogrammierung von Handgeräten |
DE60207429T Expired - Lifetime DE60207429T2 (de) | 2001-07-26 | 2002-07-25 | Vorrichtung und verfahren zur bidirektionalen kommunikation und ausführung dynamischer befehlsätze |
DE60206055T Expired - Lifetime DE60206055T2 (de) | 2001-07-26 | 2002-07-25 | System und verfahren für verbesserte sicherheit bei der umprogrammierung eines handgerätes |
Family Applications Before (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE60205755T Expired - Lifetime DE60205755T2 (de) | 2001-07-26 | 2002-07-23 | System und verfahren um einen softwarekodeabschnitt eines drahtlosen kommunikationsgerätes herunterzuladen |
DE60211704T Expired - Lifetime DE60211704T2 (de) | 2001-07-26 | 2002-07-23 | Felddiagnosesystem und verfahren einer systemsoftware in einem drahtlosen kommunikationsgerät |
DE60206389T Expired - Lifetime DE60206389T2 (de) | 2001-07-26 | 2002-07-23 | System und verfahren zum aktualisieren von persistenten daten in einem drahtlosen kommunikationsgerät |
DE60211719T Expired - Lifetime DE60211719T2 (de) | 2001-07-26 | 2002-07-25 | System und verfahren für gleichrangiges kommunikationshandgerät |
DE60219536T Expired - Lifetime DE60219536T2 (de) | 2001-07-26 | 2002-07-25 | System und Verfahren für verbesserte Sicherheit in Versorgung und Umprogrammierung von Handgeräten |
DE60207429T Expired - Lifetime DE60207429T2 (de) | 2001-07-26 | 2002-07-25 | Vorrichtung und verfahren zur bidirektionalen kommunikation und ausführung dynamischer befehlsätze |
Country Status (9)
Country | Link |
---|---|
EP (12) | EP1410189B1 (de) |
JP (11) | JP2005505813A (de) |
KR (10) | KR100940178B1 (de) |
CN (10) | CN1275150C (de) |
AT (9) | ATE387658T1 (de) |
AU (9) | AU2002319569A1 (de) |
DE (7) | DE60205755T2 (de) |
ES (9) | ES2300454T3 (de) |
WO (10) | WO2003010663A2 (de) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7143407B2 (en) * | 2001-07-26 | 2006-11-28 | Kyocera Wireless Corp. | System and method for executing wireless communications device dynamic instruction sets |
JP4417123B2 (ja) | 2003-02-19 | 2010-02-17 | パナソニック株式会社 | ソフトウェア更新方法及び無線通信装置 |
EP1654640B1 (de) * | 2003-06-04 | 2018-08-01 | Qualcomm Incorporated | Netzwerk mit konfiguriebaren generatoren von software-aktualisierungen und mit mobilen elektronischen geräten, die ein konfigurierbares programm zum aktualisieren von software besitzen |
US7873956B2 (en) | 2003-09-25 | 2011-01-18 | Pantech & Curitel Communications, Inc. | Communication terminal and communication network for partially updating software, software update method, and software creation device and method therefor |
US7257583B2 (en) | 2004-01-09 | 2007-08-14 | Microsoft Corporation | System and method for updating an on-device application catalog in a mobile device receiving a push message from a catalog server indicating availability of an application for download |
KR100620729B1 (ko) * | 2004-03-31 | 2006-09-13 | 주식회사 팬택앤큐리텔 | 소프트웨어 이미지 생성 방법 |
EP1757132B1 (de) * | 2004-05-18 | 2013-07-17 | Kyocera Corporation | Modulare datenkomponenten für drahtlose kommunikationseinrichtungen |
GB2416876B (en) * | 2004-08-03 | 2007-01-10 | Nec Technologies | Export file processing within a mobile radio communications device |
US7512939B2 (en) * | 2004-10-05 | 2009-03-31 | Neopost Technologies | System and method of secure updating of remote device software |
EP1659810B1 (de) * | 2004-11-17 | 2013-04-10 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Aktualisierung der Konfigurationsparameter in einem mobilen Endgerät |
USRE48433E1 (en) | 2005-01-27 | 2021-02-09 | The Chamberlain Group, Inc. | Method and apparatus to facilitate transmission of an encrypted rolling code |
US8422667B2 (en) | 2005-01-27 | 2013-04-16 | The Chamberlain Group, Inc. | Method and apparatus to facilitate transmission of an encrypted rolling code |
US9148409B2 (en) | 2005-06-30 | 2015-09-29 | The Chamberlain Group, Inc. | Method and apparatus to facilitate message transmission and reception using different transmission characteristics |
CA2577244A1 (en) * | 2005-04-18 | 2006-10-26 | Research In Motion Limited | Method and system for controlling software version updates |
CN100442708C (zh) * | 2005-06-17 | 2008-12-10 | 上海华为技术有限公司 | 一种主备备份的方法及系统 |
CN100476728C (zh) * | 2005-08-19 | 2009-04-08 | 光宝科技股份有限公司 | 应用程序更新方法及使用上述方法的移动通讯装置 |
CN100410893C (zh) * | 2005-09-28 | 2008-08-13 | 联想(北京)有限公司 | 自行修复嵌入式设备的主控应用程序的方法及设备 |
CN1980447B (zh) * | 2005-12-06 | 2010-06-16 | 中兴通讯股份有限公司 | 一种通信系统软件版本的平滑升级方法 |
WO2007105274A1 (ja) * | 2006-03-10 | 2007-09-20 | Fujitsu Limited | 適用パッチ選別装置及び適用パッチ選別方法 |
EP2025095A2 (de) | 2006-06-08 | 2009-02-18 | Hewlett-Packard Development Company, L.P. | Geräteverwaltung in einem netzwerk |
EP2047420A4 (de) | 2006-07-27 | 2009-11-18 | Hewlett Packard Development Co | Benutzererfahrungs- und abhängigkeitsverwaltung bei einer mobilen vorrichtung |
CN100403263C (zh) * | 2006-08-16 | 2008-07-16 | 华为技术有限公司 | 按配置下载设备软件的方法 |
KR100924647B1 (ko) * | 2008-08-07 | 2009-11-02 | 주식회사 케이티 | 모바일 플랫폼 런타임 다이나믹 링킹 라이브러리 관리 방법및 시스템 |
EP2417202A2 (de) | 2009-04-07 | 2012-02-15 | Sensient Colors LLC | Selbstdispergierende teilchen und verfahren zu ihrer herstellung und verwendung |
CN101539885B (zh) * | 2009-04-23 | 2011-06-08 | 大唐微电子技术有限公司 | 一种无线通信模块软件自主空中升级的方法、装置及系统 |
US8402217B2 (en) * | 2009-09-15 | 2013-03-19 | Marvell International Ltd. | Implementing RAID in solid state memory |
CN102253847A (zh) * | 2010-05-19 | 2011-11-23 | 宏碁股份有限公司 | 制作系统软件的系统及系统软件的部署方法 |
US8756256B2 (en) * | 2010-05-26 | 2014-06-17 | Qualcomm Incorporated | Method and systems for the management of non volatile items and provisioning files for a communication device with multiple service accounts |
US9477585B2 (en) * | 2012-11-09 | 2016-10-25 | Coherent Logix, Incorporated | Real time analysis and control for a multiprocessor system |
US10064251B2 (en) * | 2013-03-15 | 2018-08-28 | Cree, Inc. | Updatable lighting fixtures and related components |
CN103345412B (zh) * | 2013-07-10 | 2016-08-24 | 华为技术有限公司 | 打补丁的方法及装置 |
US10652743B2 (en) | 2017-12-21 | 2020-05-12 | The Chamberlain Group, Inc. | Security system for a moveable barrier operator |
WO2019213672A1 (en) * | 2018-05-04 | 2019-11-07 | Herdx, Inc. | Food supply tracking, verification, and feedback system |
US11074773B1 (en) | 2018-06-27 | 2021-07-27 | The Chamberlain Group, Inc. | Network-based control of movable barrier operators for autonomous vehicles |
CA3107457A1 (en) | 2018-08-01 | 2020-02-06 | The Chamberlain Group, Inc. | Movable barrier operator and transmitter pairing over a network |
KR102176204B1 (ko) | 2018-10-15 | 2020-11-09 | 김용대 | 유명인 사용물품 기부 중개 서비스 방법 |
US10997810B2 (en) | 2019-05-16 | 2021-05-04 | The Chamberlain Group, Inc. | In-vehicle transmitter training |
JP7461755B2 (ja) * | 2020-02-21 | 2024-04-04 | 日立Astemo株式会社 | 情報処理装置、プログラム更新システム、及びプログラム更新方法 |
US11588924B2 (en) * | 2020-10-29 | 2023-02-21 | Hewlett Packard Enterprise Development Lp | Storage interface command packets over fibre channel with transport and network headers as payloads |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB8901932D0 (en) * | 1989-01-28 | 1989-03-15 | Int Computers Ltd | Data processing system |
FR2662891A1 (fr) * | 1990-05-30 | 1991-12-06 | Cit Alcatel | Dispositif de telechargement de logiciel pour un terminal de telecommunication. |
US5193180A (en) * | 1991-06-21 | 1993-03-09 | Pure Software Inc. | System for modifying relocatable object code files to monitor accesses to dynamically allocated memory |
JPH07182178A (ja) * | 1993-02-19 | 1995-07-21 | Nec Corp | プリロードモジュール修正システム |
US5488648A (en) * | 1993-08-17 | 1996-01-30 | Telefonaktiebolaget L M Ericsson | Behavior monitoring and analyzing system for stored program controlled switching system |
US5845090A (en) * | 1994-02-14 | 1998-12-01 | Platinium Technology, Inc. | System for software distribution in a digital computer network |
JP3140906B2 (ja) * | 1994-04-12 | 2001-03-05 | 株式会社エヌ・ティ・ティ・データ | システムファイルの更新及び復元方法 |
US5734904A (en) * | 1994-11-14 | 1998-03-31 | Microsoft Corporation | Method and system for calling one of a set of routines designed for direct invocation by programs of a second type when invoked by a program of the first type |
JPH08166877A (ja) * | 1994-12-13 | 1996-06-25 | Olympus Optical Co Ltd | 修正プログラムの実行可能なワンチップマイクロコンピュータ及びrom修正可能なマイクロコンピュータ |
DE19502728A1 (de) * | 1995-01-28 | 1996-08-01 | Philips Patentverwaltung | Telekommunikationsvorrichtung |
US5673317A (en) * | 1995-03-22 | 1997-09-30 | Ora Electronics, Inc. | System and method for preventing unauthorized programming of wireless network access devices |
US5699275A (en) * | 1995-04-12 | 1997-12-16 | Highwaymaster Communications, Inc. | System and method for remote patching of operating code located in a mobile unit |
DE19527808C2 (de) * | 1995-07-28 | 1999-04-01 | Siemens Ag | Verfahren zum Modifizieren der Softwareprozeduren eines Kommunikationssystems |
DE19543843C2 (de) * | 1995-11-24 | 2001-02-08 | Acer Peripherals Inc | Verfahren zur Aktualisierung der Software in einem mikrocomputergestützten Telefon |
JP2002515999A (ja) * | 1996-08-28 | 2002-05-28 | ウィンド リヴァー システムズ インコーポレイテッド | 複数プロセッサーで分割されるソフトウエア診断のためのツール |
US6247065B1 (en) * | 1996-12-26 | 2001-06-12 | At&T Corp. | Messaging platform process |
US6023620A (en) * | 1997-02-26 | 2000-02-08 | Telefonaktiebolaget Lm Ecrisson | Method for downloading control software to a cellular telephone |
US5938766A (en) * | 1997-03-21 | 1999-08-17 | Apple Computer, Inc. | System for extending functionality of a digital ROM using RAM/ROM jump tables and patch manager for updating the tables |
SE512110C2 (sv) * | 1997-06-17 | 2000-01-24 | Ericsson Telefon Ab L M | System och förfarande för att kundanpassa trådlösa kommunikationsenheter |
JPH1115689A (ja) * | 1997-06-19 | 1999-01-22 | Nec Corp | ソフトウェアのデバッグ方法及びデバッグ・プログラムを記録した記録媒体 |
US5974312A (en) * | 1997-07-10 | 1999-10-26 | Ericsson Inc. | System and method for updating a memory in an electronic device via wireless data transfer |
US6496979B1 (en) * | 1997-10-24 | 2002-12-17 | Microsoft Corporation | System and method for managing application installation for a mobile device |
JPH11141394A (ja) * | 1997-11-07 | 1999-05-25 | Nissan Motor Co Ltd | 車両制御用メモリ書き換え装置 |
JPH11146011A (ja) * | 1997-11-11 | 1999-05-28 | Nec Corp | 電子メールシステム及び電子メールサーバ及び通信端末 |
JP3337062B2 (ja) * | 1997-11-21 | 2002-10-21 | 日本電気株式会社 | 無線データ転送方法及びそのシステム |
US6275694B1 (en) * | 1997-12-19 | 2001-08-14 | Vlsi Technology, Inc. | Method for remotely updating software code for personal handy phone system equipment |
US6438711B2 (en) * | 1998-07-15 | 2002-08-20 | Intel Corporation | Method and apparatus for performing field diagnostics on a computer system |
US20020073398A1 (en) * | 1998-12-14 | 2002-06-13 | Jeffrey L. Tinker | Method and system for modifying executable code to add additional functionality |
GB2349485B (en) * | 1999-04-23 | 2003-12-10 | Ibm | Application management |
SE516806C2 (sv) * | 1999-05-26 | 2002-03-05 | Ericsson Telefon Ab L M | Sätt för inladdning av programvara i en radioterminal, såsom en mobiltelefon, och tillhörande radioterminal |
US6282647B1 (en) * | 1999-06-02 | 2001-08-28 | Adaptec, Inc. | Method for flashing a read only memory (ROM) chip of a host adapter with updated option ROM bios code |
FR2800963B1 (fr) * | 1999-11-09 | 2001-12-07 | Wavecom Sa | Procede de mise a jour d'un programme principal execute par un module de radiocommunication et/ou de donnees associees a ce programme principal, et module de radiocommunication correspondant |
US7264532B2 (en) * | 2004-12-27 | 2007-09-04 | Tsan-Yao Chen | Cup structure |
-
2002
- 2002-07-22 AU AU2002319569A patent/AU2002319569A1/en not_active Abandoned
- 2002-07-22 CN CNB028148339A patent/CN1275150C/zh not_active Expired - Fee Related
- 2002-07-22 AT AT02749158T patent/ATE387658T1/de not_active IP Right Cessation
- 2002-07-22 KR KR1020047000719A patent/KR100940178B1/ko not_active IP Right Cessation
- 2002-07-22 EP EP02749158A patent/EP1410189B1/de not_active Expired - Lifetime
- 2002-07-22 KR KR1020047000723A patent/KR100911604B1/ko not_active IP Right Cessation
- 2002-07-22 WO PCT/IB2002/002875 patent/WO2003010663A2/en not_active Application Discontinuation
- 2002-07-22 AU AU2002319572A patent/AU2002319572A1/en not_active Abandoned
- 2002-07-22 WO PCT/IB2002/002866 patent/WO2003010656A2/en active Application Filing
- 2002-07-22 JP JP2003515971A patent/JP2005505813A/ja not_active Withdrawn
- 2002-07-22 KR KR1020047000721A patent/KR100940180B1/ko not_active IP Right Cessation
- 2002-07-22 WO PCT/IB2002/002867 patent/WO2003010658A2/en active IP Right Grant
- 2002-07-22 ES ES02749158T patent/ES2300454T3/es not_active Expired - Lifetime
- 2002-07-22 EP EP02749161A patent/EP1410191A2/de not_active Withdrawn
- 2002-07-22 CN CNB028148312A patent/CN1275149C/zh not_active Expired - Fee Related
- 2002-07-22 AU AU2002319568A patent/AU2002319568A1/en not_active Abandoned
- 2002-07-22 EP EP02749157A patent/EP1410188A2/de not_active Withdrawn
- 2002-07-22 CN CNB028148320A patent/CN1288553C/zh not_active Expired - Fee Related
- 2002-07-22 JP JP2003515964A patent/JP2004537120A/ja not_active Withdrawn
- 2002-07-22 JP JP2003515966A patent/JP4104546B2/ja not_active Expired - Fee Related
- 2002-07-23 WO PCT/IB2002/002890 patent/WO2003010664A2/en active IP Right Grant
- 2002-07-23 EP EP02749166A patent/EP1410192B1/de not_active Expired - Lifetime
- 2002-07-23 AT AT02749163T patent/ATE327536T1/de not_active IP Right Cessation
- 2002-07-23 KR KR1020047000716A patent/KR100940179B1/ko not_active IP Right Cessation
- 2002-07-23 AU AU2002319570A patent/AU2002319570A1/en not_active Abandoned
- 2002-07-23 ES ES02749166T patent/ES2299587T3/es not_active Expired - Lifetime
- 2002-07-23 CN CNB02814838XA patent/CN1288554C/zh not_active Expired - Fee Related
- 2002-07-23 EP EP05021081A patent/EP1610222B1/de not_active Expired - Lifetime
- 2002-07-23 WO PCT/IB2002/002889 patent/WO2003012639A2/en active IP Right Grant
- 2002-07-23 EP EP02749159A patent/EP1410190B1/de not_active Expired - Lifetime
- 2002-07-23 ES ES02749167T patent/ES2249602T3/es not_active Expired - Lifetime
- 2002-07-23 WO PCT/IB2002/002869 patent/WO2003010662A2/en active IP Right Grant
- 2002-07-23 JP JP2003515970A patent/JP4073399B2/ja not_active Expired - Fee Related
- 2002-07-23 KR KR1020047000718A patent/KR100913658B1/ko not_active IP Right Cessation
- 2002-07-23 KR KR1020047000726A patent/KR100913659B1/ko not_active IP Right Cessation
- 2002-07-23 JP JP2003515976A patent/JP4176634B2/ja not_active Expired - Fee Related
- 2002-07-23 DE DE60205755T patent/DE60205755T2/de not_active Expired - Lifetime
- 2002-07-23 AU AU2002319577A patent/AU2002319577A1/en not_active Abandoned
- 2002-07-23 AT AT02749167T patent/ATE305632T1/de not_active IP Right Cessation
- 2002-07-23 JP JP2003515972A patent/JP4278513B2/ja not_active Expired - Fee Related
- 2002-07-23 ES ES02749159T patent/ES2247355T3/es not_active Expired - Lifetime
- 2002-07-23 AT AT02749159T patent/ATE302972T1/de not_active IP Right Cessation
- 2002-07-23 JP JP2003517749A patent/JP4310186B2/ja not_active Expired - Fee Related
- 2002-07-23 CN CNB028148371A patent/CN1279447C/zh not_active Expired - Fee Related
- 2002-07-23 EP EP02749167A patent/EP1410193B1/de not_active Expired - Lifetime
- 2002-07-23 EP EP02749163A patent/EP1410209B1/de not_active Expired - Lifetime
- 2002-07-23 DE DE60211704T patent/DE60211704T2/de not_active Expired - Lifetime
- 2002-07-23 ES ES02749163T patent/ES2263796T3/es not_active Expired - Lifetime
- 2002-07-23 AU AU2002319573A patent/AU2002319573A1/en not_active Abandoned
- 2002-07-23 WO PCT/IB2002/002877 patent/WO2003010668A2/en active IP Right Grant
- 2002-07-23 KR KR1020047000725A patent/KR100918162B1/ko not_active IP Right Cessation
- 2002-07-23 AT AT02749166T patent/ATE382159T1/de not_active IP Right Cessation
- 2002-07-23 AU AU2002319576A patent/AU2002319576A1/en not_active Abandoned
- 2002-07-23 DE DE60206389T patent/DE60206389T2/de not_active Expired - Lifetime
- 2002-07-23 CN CNB028148347A patent/CN1235137C/zh not_active Expired - Fee Related
- 2002-07-23 CN CNB028148355A patent/CN1235138C/zh not_active Expired - Fee Related
- 2002-07-25 AT AT05018919T patent/ATE359681T1/de not_active IP Right Cessation
- 2002-07-25 ES ES02762622T patent/ES2253553T3/es not_active Expired - Lifetime
- 2002-07-25 DE DE60211719T patent/DE60211719T2/de not_active Expired - Lifetime
- 2002-07-25 AT AT02762622T patent/ATE310354T1/de not_active IP Right Cessation
- 2002-07-25 DE DE60219536T patent/DE60219536T2/de not_active Expired - Lifetime
- 2002-07-25 EP EP02751472A patent/EP1423959B1/de not_active Expired - Lifetime
- 2002-07-25 WO PCT/IB2002/002905 patent/WO2003010932A2/en active IP Right Grant
- 2002-07-25 ES ES05018919T patent/ES2284112T3/es not_active Expired - Lifetime
- 2002-07-25 EP EP02762622A patent/EP1425894B1/de not_active Expired - Lifetime
- 2002-07-25 CN CNB02814841XA patent/CN1250035C/zh not_active Expired - Fee Related
- 2002-07-25 JP JP2003516189A patent/JP4077408B2/ja not_active Expired - Fee Related
- 2002-07-25 DE DE60207429T patent/DE60207429T2/de not_active Expired - Lifetime
- 2002-07-25 DE DE60206055T patent/DE60206055T2/de not_active Expired - Lifetime
- 2002-07-25 AT AT02741113T patent/ATE304272T1/de not_active IP Right Cessation
- 2002-07-25 ES ES02751472T patent/ES2263799T3/es not_active Expired - Lifetime
- 2002-07-25 EP EP05018919A patent/EP1601217B1/de not_active Expired - Lifetime
- 2002-07-25 AU AU2002328167A patent/AU2002328167A1/en not_active Abandoned
- 2002-07-25 EP EP02741113A patent/EP1410665B1/de not_active Expired - Lifetime
- 2002-07-25 JP JP2003516197A patent/JP4106020B2/ja not_active Expired - Fee Related
- 2002-07-25 WO PCT/IB2002/002906 patent/WO2003010942A2/en active IP Right Grant
- 2002-07-25 CN CNB028148401A patent/CN1310488C/zh not_active Expired - Fee Related
- 2002-07-25 KR KR1020047001087A patent/KR100932058B1/ko not_active IP Right Cessation
- 2002-07-25 JP JP2003518153A patent/JP4101752B2/ja not_active Expired - Fee Related
- 2002-07-25 AT AT02751472T patent/ATE327628T1/de not_active IP Right Cessation
- 2002-07-25 KR KR1020047001086A patent/KR100817387B1/ko not_active IP Right Cessation
- 2002-07-25 CN CNB028148398A patent/CN100378661C/zh not_active Expired - Fee Related
- 2002-07-25 KR KR1020047001088A patent/KR100984895B1/ko not_active IP Right Cessation
- 2002-07-25 ES ES02741113T patent/ES2248568T3/es not_active Expired - Lifetime
- 2002-07-25 AU AU2002355308A patent/AU2002355308A1/en not_active Abandoned
- 2002-07-25 WO PCT/IB2002/002912 patent/WO2003013103A2/en active IP Right Grant
-
2007
- 2007-11-22 JP JP2007303740A patent/JP2008108268A/ja active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60206055T2 (de) | System und verfahren für verbesserte sicherheit bei der umprogrammierung eines handgerätes | |
DE60224281T2 (de) | System und verfahren zur kompaktierung von im feld aktualisierbaren softwarekodeabschnitten eines drahtlosen kommunikationsgerätes | |
DE102016206488B4 (de) | Verwalten von inaktiven elektronischen Teilnehmeridentitätsmodulen | |
EP2910039B1 (de) | Verfahren zum einbringen von teilnehmeridentitätsdaten in ein teilnehmeridentitätsmodul | |
DE60205289T2 (de) | System und Verfahren zur gesicherte Funkübertragung von Konfigurationsdaten | |
DE602005005131T2 (de) | Nutzungsberechtigung für Dienste in einem drahtlosen Kommunikationsnetzwerk | |
DE60215990T2 (de) | Dynamisches Dienstmerkmal in einem mobilen Kommunikationsgerät oder einer SIM-Karte zum Empfang und zur Ausführung von dynamischen Dienstskripten in Form kurzer Textnachrichten, beispielsweise SMS | |
EP3939344B1 (de) | Verfahren zum bereitstellen von subskriptions-profilen, teilnehmeridentitätsmodul und subskriptions-server | |
EP2898714A1 (de) | Teilnehmeridentitätsmodul zum authentisieren eines teilnehmers an einem kommunikationsnetzwerk | |
EP3276518B1 (de) | Mobiles kommunikationsgerät mit mehrzahl über eine pin freischaltbarer anwendungen | |
DE102014005566A1 (de) | Verfahren und Vorrichtung zum Betreiben eines mobilen Endgeräts in einem Mobilfunknetzwerk | |
DE69321205T2 (de) | Anordnung zum Verbindungsaufbau von einem Endgerät zum Netz eines Funkkommunikationssystems mit mehreren Netzen | |
DE102019002050B3 (de) | Verfahren zum Aufbau einer Datenverbindung, Verfahren zum Bereitstellen von Verbindungsparametern, sowie Teilnehmeridentitätsmodul | |
DE102016105810A1 (de) | Herstellung einer lokalen Verbindung in einem Roaming-Standort | |
DE69712752T2 (de) | Verfahren zur konfiguration einer funkeinheit | |
EP0918425A2 (de) | Softwaregesteuertes Teilnehmerendgerät, Server zum Bereitstellen eines Steuerprogrammes und Verfahren zum Betrieb des Softwaregesteuerten Teilnehmerendgerätes | |
EP3452946A1 (de) | Verfahren zur erstmaligen inbetriebnahme eines nicht vollständig personalisierten sicheren elements | |
EP3664490A1 (de) | Imei speicherung | |
DE102006040086A1 (de) | Individualisierung von Mobilfunknehmer-Identifikations-Modulen | |
DE102021004912A1 (de) | Universal integrated chip card, uicc, zum verwalten von profilen, sowie verfahren | |
DE102023110415A1 (de) | Ein Verfahren zum Bereitstellen von Daten für ein Abonnementenprofil für ein Secure Element | |
DE102018000913A1 (de) | Etablierung verschiedener eUICC-Modi | |
EP4297458A1 (de) | Profil und teilnehmeridentitätsmodul mit profil | |
DE102021006083A1 (de) | Secure Element mit Zugriffsregel-Applikation ARA | |
DE102021000077A1 (de) | Integriertes Teilnehmeridentitätsmodul mit Anti-Rollback-Mechanismus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
R082 | Change of representative |
Ref document number: 1410665 Country of ref document: EP Representative=s name: VIERING, JENTSCHURA & PARTNER, DE |
|
R081 | Change of applicant/patentee |
Ref document number: 1410665 Country of ref document: EP Owner name: KYOCERA CORP., JP Free format text: FORMER OWNER: KYOCERA WIRELESS CORP., SAN DIEGO, US Effective date: 20120817 |
|
R082 | Change of representative |
Ref document number: 1410665 Country of ref document: EP Representative=s name: VIERING, JENTSCHURA & PARTNER, DE Effective date: 20120817 |