`(10) Patent N0.:
`US 6,832,373 B2
`O’Neill
`(45) Date of Patent:
`Dec. 14, 2004
`
`U8006832373B2
`
`(54)
`
`(75)
`
`SYSTEM AND METHOD FOR UPDATING
`AND DISTRIBUTING INFORMATION
`
`Inventor:
`
`Patrick J. O’Neill, Dana Point, CA
`(US)
`
`(73)
`
`Assignee:
`
`Bitfone Corporation, Laguna Nigel,
`CA (US)
`
`Notice:
`
`(*)
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21)
`
`(22)
`
`(65)
`
`App]. N0.: 10/404,601
`Filed:
`
`Apr. 1, 2003
`Prior Publication Data
`
`US 2004/0215755 A1 Oct. 28, 2004
`
`Related U.S. Application Data
`
`( 63)
`
`Continuation of application No. PCT/U801/44034, filed on
`Nov. 19, 2001.
`
`(51)
`(52)
`(58)
`
`(56)
`
`Int. Cl.7 .................................................. G06F 9/44
`U.S. Cl.
`.......................... 717/171; 714/807; 714/25
`Field of Search ................................. 717/171, 170;
`714/25, 807
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,084,816
`5,261,055
`5,442,771
`5,479,637
`5,579,522
`5.596,738
`5,598,534
`5,608,910
`5,623,604
`5,666,293
`5,752,039
`5,778,440
`
`5.790974>>>>>>>>>>>>>
`
`*
`
`’ 1’1992
`11/1993
`8/1995
`12/1995
`11/1996
`1/1997
`1/1997
`3/1997
`4/1997
`9/1997
`5/1998
`7/1998
`8/1998
`
`Boese et al.
`................... 714/4
`
`Moran et al.
`395/275
`Filepp et a1.
`......
`.. 395/650
`
`.. 395/430
`Lisimaque et al.
`.
`Christeson et a1.
`.. 395/652
`
`395/430
`Pope .............
`. 395/20009
`Haas .......
`Shimakura ..
`395/670
`Russell et a1.
`395/2001
`
`.
`.. 395/2005
`MetA et a].
`
`'l'animura
`395/712
`Yiu et a].
`711/154
`
`................. 701/204
`Tognazzini
`
`
`
`.5611
`
`sum
`
`3/1999 Bealkowski et al.
`........ 395/652
`5,878,256 A
`.
`707/203
`9/1999 Tainori et al.
`5,960,445 A
`
`5,968,182 A * 10/1999 Chen et a].
`714/5
`..
`711/103
`6,009,497 A
`12/1999 Wells et a1.
`
`3/2000 Brown, III et al.
`711/103
`6,038,636 A
`
`395/701
`6,064,814 A
`5/2000 Capriles et al.
`
`(List continued on next page.)
`FOREIGN PATENT DOCUMENTS
`
`CA
`JP
`KR
`KR
`
`3/2000
`2339923
`8/1996
`8202626
`5/2000
`2002-0034228
`11/2001
`2001-0100328
`OTHER PURI .ICATIONS
`
`Computer Dictionary Micrsoft Press Third Edition, pp. 88,
`190, 1997*
`“Focus on OpenView A guide to Hewlett—Packard’s Net-
`work and Systems Management Platform”, Nathan J. Muller
`pp. 1—291, published 1995*
`(List continued on next page.)
`Primary Examiner—Todd Ingberg
`(74) Attorney, Agent, or Firm—McAndrews, Held &
`Malloy, Ltd.
`
`(57)
`
`ABSTRACT
`
`The present invention discloses efficient devices, systems,
`and methods for updating digital information sequences that
`are comprised by software (110a), devices (104C), and data
`(110C). In addition, these digital information sequences may
`be stored and used in various forms,
`including but not
`limited to files, memory locations, and/or embedded storage
`locations. The disclosed invention is thus suitable for updat-
`ing many types of digital information sequences and in the
`context of updating software comprised of multiple files.
`Furthermore, the devices, systems, and methods described
`herein provide a developer skilled in the art with an
`improved ability to generate update information as needed
`and, additionally, allow users to proceed through a simpli-
`fied update path, which is not error-prone, and may be
`performed more quickly than through the use of existing
`technologies.
`
`55 Claims, 16 Drawing Sheets
`
`R] MD}
`/\_,15M
`
`sErWERE"! my.
`7: asewum 2r wens
`mm:
`ULCU‘AWFCHEDF
`
`mammx
`“9“"
`cunszu' aw
`
`\
`LAsr BANKw
`>
`/<mazmmx\
`mm: >ACKAGE1/
`\\ //
`V55
`
` cmw BANKo: Memom
`
`vEs
`//nuzscmz»>\
`< nmmcwrcu />—>z
`\prmri ”0665/
`cm /\ /
`NO
`cumwBAH/<18 szr
`
`1514
`
`saunas; 9mm
`
`Apple Ex. 1011, p. 1
`Apple Ex. 1011, p. 1
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`
`
`US 6,832,373 132
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`>>>>>>>>>>>
`
`6,073,206
`6,073,214
`6,088,759
`6,105,063
`6,112,024
`6,112,197
`6,126,327
`6.128,695
`6,138,249
`6,157,559
`6,163,274
`6,198,946
`6,279,1 53
`6,311,322
`6.438585
`6,668,336
`6,725,392
`2001/0029178
`2001/0047363
`2001/0048728
`2002/0078209
`
`6/2000
`6/2000
`7/2000
`8/2000
`8/2000
`8/2000
`1 0/2000
`1 0/2000
`1 0/2000
`1 2/2000
`1 2/2000
`3/200 1
`8/2()( l 1
`1 0/200 1
`8/2002
`1 2/2003
`4/2004
`1 0/200 1
`1 1/200 1
`1 2/200 1
`6/2002
`
`
`Piwonka et a1.
`..... 711/102
`
`Fawcett
`................... 711/133
`
`Hasbun ct a1.
`.
`..... 711/103
`.. 709/223
`Hayes, Jr.
`..
`
`Almond et al.
`..
`..... 395/703
`Chatterjee et al.
`............. 707/3
`Bi et al.
`........
`395/20051
`
`........ 711/103
`Estakhri et al.
`.......................... 714/25
`Nolet
`Yoo
`365/52
`
`Lindgren ............... 340/825.44
`
`..
`.. 455/561
`Shin el al.
`.717/11
`..
`Iii et al.
`
`Ikeda et al.
`.
`.. 717/1
`
`
`Mousseau et a .
`709/206
`.
`Lassei
`.......
`
`. 7 1 4/5
`. 71 4/6
`.
`Frey et a].
`.. 455/419
`Criss et a].
`
`707/104.1
`Peng
`
`.. 375/354
`Peng
`Pcng .......................... 709/227
`
`2002/0116261 A1
`705/14
`8/2002 Moskowitz ct a1.
`2002/0131404 A1
`
`9/2002 Mehta et al. .. 370/352
`.. 700/234
`2002/0152005 A1
`10/2002 Bagnordi
`.. 709/217
`
`2002/0156863 A1
`10/2002 I’eng
`
`10/2002 Anton, Jr.
`.....
`.. 717/178
`2002/0157090 A1
`2/2003 Rajaram et a].
`............ 717/173
`2003/0033599 A1
`2/2003 Ilannigan et a1,
`........... 707/500
`2003/0037075 A1
`3/2003 Nakatani
`.................... 709/245
`2003/0061384 A1
`OTHER PUBLICATIONS
`
`“Client Server computing in mobile environments", J. Jing
`et :11, ACM pp. 1177159, 1999.1
`“ESW4zcnhanccd scheme for WW computing in wireless
`communication environments”, S. IIadjesthmiades et al,
`
`ACM pp. 24—35, 1999*
`
`“Introducing Quality—Of—Service and tra
`
`‘ic classes into
`wireless modile n tworks”, J. Sevanto et a1, ACM, pp. 21—29,
`1998*
`“Any Network, Any Terminal, anywhere”, A. Fasbender et
`31, IEEE, pp. 22—30, Apr. 1999*
`* Cited by examiner
`
`Apple Ex. 1011, p. 2
`Apple Ex. 1011, p. 2
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`
`
`US. Patent
`
`1
`
`t
`
`2B373,238,6SU
`
`
`
`
`
`
`
`2:.43:527.W_2{14amS
`Iuefl.LflaofiscmE,..m.wv
`
`8sz.85
`
`w229D<_.u
`
`
`
`
`
`
`
`€25Bus—BE%22—0AmcgmuEzEEoo%83mmgums.codmhm>.BvoE.565)“BE
`:25£059.253pm3393328392:5pmmmflwzimam—93>._o«MEREmm35.5ch1ram:
`
`
`
`
`
`
`
`M303%9.92m:1linmonmfiuunfiTco_.m.m>ucoomw
`
`
`
`m1o:
`
`Apple Ex. 1011, p. 3
`Apple Ex. 1011, p. 3
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`
`
`
`U. S. Patent
`
`Dec. 14, 2004
`
`Sheet 2 0f 16
`
`US 6,832,373 B2
`
`A838
`
`A
`
`
`
`322:5$225,1.0EEEE
`
`
`
`82252:.£52
`
`Sung:
`
`
`
`
`
`29.0wcozmoEzEEoo3me
`
`
`
`congrats>552
`
`Fix:{3
`
`:
`
`
`
`
`
`Em=omcozmoEzEEoo..
`
`
`
`
`.Aucooow#8S2”.233..m.$:98mm53£033:Amub£85.#2.:6.52%.,F.our
`
`
`
`quUmScmE:mdv
`
`
`
`:o_m.m>.EuoE
`
`92:5
`
`
`
`mmmxomn.Baum:
`
`mo:
`
`-Now
`
`ENE:
`
`83550
`
`
`
`
`
`
`
`8:60flaw—2>92
`
`szo
`
`mo_>mo
`
`mcozmoEaEEoo
`
`.2me
`
`on:an:
`
`no:
`
`85552:.£52
`
`
`
`mmmxomaEmma:
`
`co:
`
`
`
`wmmxommSana:
`
`
`
`wmmxoma28a:
`
`Apple Ex. 1011, p. 4
`Apple Ex. 1011, p. 4
` Apple v. Fintiv
`Apple v. Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`40024a1ceD
`
`230
`
`2B373,238,6SU
`
`3teehS
`
`m
`
`0Em=0
`
`fmo_>mo
`
`220
`
`magma
`
`moSwQ
`
`
`
`mm:<BammEwan: 22m,
`
`mm—
`
`/‘_m2
`
`22:5
`
`EmEmmmcmE
`
`Emcanoo
`
`Emma:
`
`
`
`
`
`Fm?F
`
`.09
`
`29:3
`
`2mg:
`
`.Bfimcmo
`
`
`
`Apple Ex. 1011, p. 5
`Apple Ex. 1011, p. 5
` Apple v. Fintiv
`Apple v. Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`
`
`
`US. Patent
`
`Dec. 14, 2004
`
`Sheet 4 0f 16
`
`US 6,832,373 132
`
`
`
`
`
`
`
`
`
`
`:26HxrMj
` c21111]]a_oH23%/
`|K33,,
`
`
` as_MamT1L:26[a2%:/_,.,1,mII(x£2mJI,W.,ME:
`
`11\fl\$3a:WE38587m,
`1.1H,EoEmmmcmE,,N,
`:2632m23%
`«250I![17_
`3:60;,LIL,,
`:26WFow:W,
`3:8,lrN283W,
`
`m_.:L,38:3rlL‘3”an,3111,5323
`
`
`
`
`75.5114/111mll<mum—E:/_1J<\7/v?«I”11:;v9253
`E263411m1NE
`
`
`
`1R:m/mr\88mP132F13?m
` (mL\
`
`
` 1mm?>5252mmEgg:
`
`
`
`
`[41
`
`8:60
`
`
`
`
`
`:26
`
`8:60
`
`
`
`
`
`
`
`vu_>vn_#
`
`E25
`
`838
`
`
`
`
`
`
`
`magma
`LwEww
`
`
`
`
`
`
`
`
`n:mama
`
`Apple Ex. 1011, p. 6
`Apple Ex. 1011, p. 6
` Apple v. Fintiv
`Apple v. Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`
`
`US. Patent
`
`Dec. 14,2004
`
`Sheet 5 0f 16
`
`US 6,832,373 132
`
`Figure 2A
`
`200 \
`
`START
`
`V \ .
`
`
`
`ESTABLISH
`
`COMMUNICATION
`
`
`
`
`
`
`
`POLL SERVER
`MANIFEST
`(ag, retlieve metadata)
`
`
`
`
`COMPARE UPDATE
`SIGNATURE
`
`204
`
`208
`
`208
`
`212
`
`NO
`
`
`
`/’ \wo
`//{PDATE NEEDED?
`< (69., halt update based on
`\
`metadala?)
`
`
`
`WW7
`REQUEST UPDATE
`
`
`
`214
`
` 216
`
`
`
`Apple Ex. 1011, p. 7
`Apple Ex. 1011, p. 7
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`
`
`US. Patent
`
`Dec. 14, 2004
`
`Sheet 6 0f 16
`
`US 6,832,373 132
`
`Figure 28
`
`250 \
`
`ESTABLISH
`COMMUNICATION
`
`252
`
`(\st4
`
`RECEIVE AND PROCESS
`UPDATE INFORMATION
`
`
`
`
` |
`
`
`
`REQUEST UPDATE
`INFORMATION QUERY
`
`
`
`
`
`“\J 255
`
`”\T 258
`
`//'\(M 250
`VI/
`——-——.—-/UPDATE AVAILABR
`NO \ //
`\\
`\\/
`YES
`
`I L
`
`/
`
`Q
`
`/’ \/\ 252
`CLIENT
`
`ALLOCATE MEMORY ON
`
`CLIENT FOR UPDATE
`
`
`
`MEMORY
`
`/
`
`YES ;
`‘I___W
`I
`REQUEST UPDATE
`
`I v
`
`RECEIVE UPDATE
`
`INSTALL UPDATE
`
`I I
`
`/—L——J\
`END
`
`>{
`
`
`
`Y
`// \’\,272
`/// \
`M RY
`ALIIIISCSTED"
`
`’>
`
`/
`‘
`N01
`
`N 254
`<———<
`YES
`
`”\J 266
`
`1253
`
`280J
`
`Apple Ex. 1011, p. 8
`Apple Ex. 1011, p. 8
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`
`
`US. Patent
`
`Dec. 14, 2004
`
`Sheet 7 0f 16
`
`US 6,832,373 B2
`
`Figure 3
`
`OPEN EXISTING FILE
`
`BUILD DATABASE FROM
`3511MB VERSION
`
`PROCEED TO INSTRLKITION
`SET GENERATTON
`SEQUENCE
`
`ENCOOE COMPRESS.AND
`ENCRYPT nus
`
`306
`
`303
`
`310
`
`312
`
`314
`
`316
`
`SAVE I PUBLISHFILE
`
`Apple Ex. 1011, p. 9
`Apple Ex. 1011, p. 9
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`
`
`US. Patent
`
`Dec. 14, 2004
`
`Sheet 8 0f 16
`
`US 6,832,373 B2
`
`Figure 4
`
`wmwmmb
`
`“1o
`
`Apple Ex. 1011, p. 10
`Apple Ex. 1011, p. 10
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`
`
`US. Patent
`
`Dec. 14, 2004
`
`Sheet 9 0f 16
`
`US 6,832,373 B2
`
`Figure 5
`
`N07
`
`40° \
`
`{_
`
`sum
`
`)‘
`
`402
`
`. ,404
`
`lHITXALlZE POINTERTO
`START OF FILE
`
`406 I
`
`408
`
`
`
`
` 4‘18
`
`NO
`
`DEFAULT rmmucnorq
`
`' FUNCTION
`
`I
`
`410
`
`416
`
`POWER
`AT END OF
`FILE?
`
`YES
`
`414
`
`
`
`.
`
`Apple Ex. 1011, p. 11
`Apple Ex. 1011, p. 11
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`
`
`US. Patent
`
`Dec. 14, 2004
`
`Sheet 10 01'16
`
`US 6,832,373 B2
`
`Figure 6A
`
`Figure 68
`
`Flrlenrd Sequence
`
`f 500
`-----
`502 \T'MH-r«---7------‘ ----
`'ws W6
`"
`._....L__....
`.
`
`
`
`
`
`
`
`f 510
`'
`'
`'
`First Word Sequence
`......,......
`512
`-.'
`
`
`
`
`Second Word Sequence (N=4)
`Sacand Ward Sequence (NSE)
`—_*—
`_———-—
`
`
`I-Ill'lll
`m M II
`504
`.
`-
`506
`word sequance nol changcdl
`word sequenceconsaculiva smng/
`‘mn lengm encoding‘ inslmc‘jon for N word lenglh
`'exlsling sequenca‘ instruction [or N word length
`
`
`.4
`
`,
`
`514
`
`RLE
`500j
`
`g W1,N .
`506 j
`t 508
`
`EXS
`5103
`
`N
`C 515
`
`Figure 6C
`
`520 \
`Fixsl Word Sequence
`_-—_—— L
`—
`“I.-
`
`'r
`,__ L
`
`
`
`
`
`word acquancn pro-gist: elsewhere I
`"hash' instruction to? N word_ length
`
`HSH
`5
`b,N
`
`Figure SD
`
`First Word Sequence I
`
`
`
`word sequence not fauna elsewhere!
`default instruclion
`
`E W15, WIE.W17. W13. wws, W20
`:
`t535
`
`DEF
`530/
`
`Apple Ex. 1011, p. 12
`Apple Ex. 1011, p. 12
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`
`
`US. Patent
`
`Dec. 14, 2004
`
`Sheet 11 0f 16
`
`US 6,832,373 B2
`
`Figure 7
`
`55° \
`Word-wise Updat: Sequenca
`‘._—_-_--__-—-_—--
`fifinnnnnunnnunnnnnllllunni
`L_____r____| L__’_._J L__._.___ ..___.__
`.J
`|
`504
`_ 514
`524
`
`534
`
`552
`
`\ lnsh'ucliun Sal
`
`5(1) "\- RUE
`
`W1,8
`
`acquanfial applimuon or insuucnuns
`Lo generals dusirad Word sequenca
`
`510 ’V as
`520 w HSH
`530 N DEF
`
`4
`b 8
`W15, W16, W17, W18, W19, W20
`
`Apple Ex. 1011, p. 13
`Apple Ex. 1011, p. 13
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`
`
`US. Patent
`
`Dec. 14, 2004
`
`Sheet 12 0f 16
`
`US 6,832,373 B2
`
`Figure 8A
`
`1008 ”\
`
`1006 F\\_/
`
`1002 W
`<‘
`NON—VOLAT LE MEMORY
`OR STORAGE AREA
`
`i,
`
`" '
`
`.'
`
`7*
`
`‘fi
`
`"" BAIQK4
`BANK}
`m ,, ”Vi
`BAN53M2;
`BANK 1
`
`\
`(
`
`BANK o ,7,
`
`
`
`1000
`8
`
`1004
`
`VOLATILE MEMORY
`
`(KV
`11012
`ADDRESS
`
`OR STORAGE AREA
`/
`
`SZCK
`256K
`128K
`64K
`
`.
`
`0E
`0D
`00
`DB
`
`0A
`
`
`
`7
`
`/
`
`m,
`‘
`1010
`
`Figure 88
`
`1050
`
`,
`
`NON-VOLATILE
`M EMORY OR
`STORAGE AREA
`
`STATUS
`
`/\’/ TABLE
`(2.9., change
`"WWW,"
`indicator) 7 ,DATA
`
`1003 A SECTION
`
`
`1020 ”\V/ DOWNLOAD AGENT
`
`1025 ”V UPDATE AGENT
`
`SECTION
`b
`
`
`
`DOWNLOAD AGENT /\/ 1020
`
`@a
`
`UPDATE A
`AGENT V 1025
`
`Apple Ex. 1011, p. 14
`Apple Ex. 1011, p. 14
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`
`
`US. Patent
`
`Dec. 14, 2004
`
`Sheet 13 0f 16
`
`US 6,832,373 132
`
`11110
`
`"\J 1100
`
`RECEIVE
`UPDATE
`(set change indicator to “not idle’
`
`upon receipt)
`1
`
`{\Jms
`UPDATE
`TRANSFER
`
`
`Figure 9
`
`
`
`”’44’
`
`”0
`
`EDA
`
`L
`
`
`
`
`
`MEMORY
`ALLOCATION
`
`
`
`
`___._____
`
`______!
`BANK
`TRANSFER
`
`
`1
`APPLY UPDATE
`INSTRUCWONS
`
`V\\J1130
`
`l
`
`\4‘120
`
`”\J1125
`
`/
`
`V\\J1135
`
`UPDATED
`BANK
`BACKUP
`, ETEEEEEEA_E,.
`IEEEE,
`ED,
`UPDATED
`
`BANK
`STORAGE
`
`/
`
`\\
`//> ’\\J1123
`Interruption may
`occur; no saving
`of status
`information
`required
`
`1145
`
`
`
`
`INCREMENT
`BANK
`POINTER
`
`//'
`\
`
`
`,1
`////
`\\\<§Jn50
`FAULT
`\
`TOLERANT
`UPDATE
`\\\\\£fjWPLETE?
`\\
`YES
`
`RESET CHANGE 1NDICATOR
`(69., set to ‘idle")
`
`
`
`,1152
`
`Apple Ex. 1011, p. 15
`Apple Ex. 1011, p. 15
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`
`
`US. Patent
`
`Dec. 14, 2004
`
`Sheet 14 0f 16
`
`US 6,832,373 132
`
`1002
`
`
`
`UPDATE
`PACKAGE
`
`(including, 6.9 , CRC.
`(1191151 fingerplint,
`signature, message
`
`
`12502
`K
`APPLY UPDATE
`
`INSTRUCTIONS
`
`
`(#1222 new code)
`
`RECEIVE
`UPDATE
`
`
`
`Change indicato:
`set upon receipt
`of update
`package
`
`1242’]
`1025~
`
`(e.g,, generate
`
`1‘ 1220
`UPDATE
`TRANSFER
`
`
`
`’\\/1234
`
`1260 '1
`L
`UPDATED
`BANK
`BACKUP
`
`\
`“/1222
`
`1025
`
`RAM
`I
`
`1270,,I
`UPDATED
`BANK
`STORAGE
`1242
`
`1232
`/,\
`1222
`
`1230
`
`,
`( a1
`1120< IIII====
`[K
`
`E F
`
`LASH
`
`vff
`MEMORY
`ALLOCATION
`
`Apple Ex. 1011, p. 16
`Apple Ex. 1011, p. 16
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`1234
`1
`280_)
`L
`NCREMENT
`BANK
`POINTER
`
`\
`1222
`
`’1
`
`
`
`1025
`
`/
`
`”
`
`IN EBANK
`
`——
`
`EEEEIIIIIE
`1242fi §
`1025 a»E
`
`
`
`US. Patent
`
`Dec. 14, 2004
`
`Sheet 15 0f 16
`
`US 6,832,373 B2
`
` iNiTiALiZE
`
`CLIENT DEVICE
`
`1302
`
`Figure 11
`
`Detect state of change
`indicator during period after
`client device is reset and
`until client device begins
`operation for intended use
`by user
`
`1300”L
`
`
`
`
`I
`
`Detect state of change
`indicator during period afler
`after power is supplied and
`
`until client device begins
`
`operation for intended use
`by user
`
`.
`
`7
`
`\
`
`\‘
`U
`
`1304
`
`_
`
`NC
`
`PROCEEDTO
`
`NORMAL OPERATION
`
`1306
`
`\J
`
`T
`FDA E STATE
`/2ECOGNIZED?
`\ (eg, update package
`‘\available?/
`\\/
`YES |
`V
`
`PRE-UPDATE
`VALIDATION PASSED?
`EXIT SEQUENCE
`
`(9.9., update package
`
`
`
`YESV‘
`filer!
`DETERMINE NEXT
`BANK TO BE UPDATED
`
`
`/\_, ‘312
`
`
`
`
`PERFORM
`BANK U PDATE
`
`r\J 1 31 44__.¥
`
`/1\
`/ \C\\, 1316
`UPDATE
`\
`\ VALIDATION PASSED?
`\
`
`N0
`
`_\‘
`
`\
`YES 1
`
`,1
`
`”0
`
`/’
`UPDATE
`COMPLETE?
`
`N1 31 a
`
`1320
`RElNITlALIZE
`
`
`CLlENT DEVICE
`
`
`4,1310
`
`Apple Ex. 1011, p. 17
`Apple Ex. 1011, p. 17
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`
`
`U.S. Patent
`
`Dec. 14, 2004
`
`Sheet 16 0f 16
`
`US 6,832,373 132
`
`Figure 13
`
`15001
`
`/A
`
`(
`
`START
`
`\, 1502
`
`/\J 1505
`CALCULATE CRC OF
`CURRENT BANK OF MEMORY “‘ '
`
`”\J 1504
`
`
`
`
`1
`SET CURRENT BANK
`TO BEGINNING OF UPDATE
`PACKAGE
`
`
`_._J—.i
`
`
`
`BANK CRC MATCH
`
`CRC7/
`
`CURRENT BANK IS NEXT
`BANK TO BE UPDATED
`
`/,R\1508
`/DOES CURRENT
`UPDATE PACKAG/E
`\\N\ //
`
`
`
`'
`END
`
`1516
`J
`
`J 1512
`
`\
`
`— M
`
`AKE NEXT BANK
`CURRENT BANK
`
`<
`
`\21510
`
`LAST BANK IN
`
`ISCURRENTBANK/
`\UPDATE PACKA/GE7/
`YES
`
`1514
`
`7
`
`Apple Ex. 1011, p. 18
`Apple Ex. 1011, p. 18
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`
`
`US 6,832,373 BZ
`
`1
`SYSTEM AND METHOD FOR UPDATING
`AND DISTRIBUTING INFORMATION
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS/INCORPORATION BY
`REFERENCE
`
`This application is a Continuation Application of PCT
`application number PCT/USOl/44034, filed Nov. 19, 2001,
`which designates the United States, and which in turn claims
`priority to US. Provisional Application Ser. No. 60/249,606,
`filed Nov. 17, 2000. This application is also a Continuation
`Application of US. patent application Ser. No. 10/311,462,
`“SYSTEM AND METHOD FOR UPDATING AND DIS-
`TRIBUTING INFORMATION,” filed on Dec. 13, 2002,
`which is a national phase filing based on a PCT application
`number PCT/USOl/44034, filed Nov. 19, 2001, which in
`turn claims priority to US. Provisional Application Serial
`No. 601249,606 filed Nov. 17, 2000. Each of these appli-
`cations are incorporated herein by reference in their entirety.
`FEDERALLY SPONSORED RESEARCH OR
`DEVELOPMENT
`
`[Not Applicable]
`
`MICROFICHE/COPYRIGHT REFERENCE
`
`[Not Applicable]
`FIELD OF THE INVENTION
`
`invention generally relates to information
`The present
`updating systems, and more particularly,
`to a software
`system and method for updating information which reduces
`the size of an update and distributes the update in a platform
`independent manner.
`DESCRIPTION OF THE RELATED ART
`
`With the rapid and continuous advancement of software
`and hardware technology, maintenance of existing devices
`and software components presents an ever-increasing chal-
`lenge. Routine installation of information updates and
`patches has become a recognized necessity to insure that
`computers, devices, and software applications are kept fully
`functional over their operational lifetimes. Unfortunately,
`for many devices and applications, update management can
`be a cumbersome, time consuming, and error prone process.
`These problems are often exacerbated in portable electronic
`devices such as cellular phones and personal digital assis-
`tants due to memory constraints and bandwidth restrictions.
`Furthermore, portable electronic devices often lack the abil—
`ity to perform automated update operations in a convenient
`and reliable manner. As a result, there is an ongoing need for
`improved update processes that can be used in conjunction
`with both hardware and software systems. Furthermore,
`there is a need for an update methodology that reduces the
`size of the update package to help alleviate potential prob-
`lems that arise due to memory constraints and bandwidth
`limitations.
`
`Increased sophistication of updateable electronic devices
`and software often necessitates frequent maintenance Where
`updates are made available and desirably applied on weekly
`or monthly basis. During the update process, problems often
`arise when the update is improperly performed or inter-
`rupted and may result in data corruption, loss of program
`functionality, or hardware failure. This presents developers
`and consumers alike with significant obstacles to insure that
`available updates are installed in a timely and effective
`
`10
`
`15
`
`20
`
`tom
`
`30
`
`35
`
`40
`
`45
`
`50
`
`LAm
`
`60
`
`65
`
`2
`manner. Additionally, developers must dedicate a substantial
`amount of time and resources to insure their users are
`provided with necessary updates, patches, and new versions
`of existing software and/or hardware components.
`Some of the concerns which the developer must address
`include the substantial amount of resources required to store
`and provide updates to a large customer base,
`technical
`support issues related to helping customers properly apply
`the updates, and the methods by which the updates are
`distributed to the customers in a timely and efficient manner.
`A further problem exists Where a high degree of requisite of
`skill is needed to acquire and install an available update and
`may involve technical skills beyond that of the average
`customer. Even if a customer is able to retrieve the update,
`he is faced with the problem of insuring its proper installa-
`tion. Improper installation of an update package may result
`in software failure or render the device to which the update
`is applied inoperative and place a further burden on the
`developer in resolving customer-related update problems.
`With increased dependence on electronic devices having
`updateable components, there is a need for faster and more
`intuitive updating capabilities and smaller update file sizes
`to insure that updates can be readily retrieved and properly
`installed as necessary or desired. In many instances, the
`ease, reliability, and availability of an update package can
`significantly affect customer number and loyalty and is a
`distinguishing characteristic for a successful developer or
`merchant.
`
`Although the importance of a superior updating system is
`
`
`
`apparent, conventional updating solutions typically su ‘er
`from a number of drawbacks. These problems are particu-
`larly prevalent in portable electronics devices and arise from
`a number of factors related to creation, distribution, and
`installation of the update package. For example, electronic
`devices such as cellular phones are often limited with
`respect to the available memory or storage space available
`for update processing. The size of the update package must
`be kept to a minimum in order to accommodate the reduced
`availability of resources on these devices and, as a result, the
`ability to perform significant alterations or modifications of
`the embedded code in these devices may be limited.
`Furthermore, conventional update methods for portable
`electronic devices which are directed towards complete
`operating system replacement or maintenance require the
`device to be physically connected by a wired connection to
`a dedicated apparatus which applies the update. Updating in
`this manner requires specialized hardware and necessitates
`the device to be updated to be returned to the manufacturer
`or a suitable service location. This is inconvenient for the
`user and may not be practical when the number of devices
`to be updated is large.
`In devices that support Wireless acquisition and installa—
`tion of update packages, problems are frequently encoun—
`tered due to bandwidth limitations needed to distribute
`available update packages. Furthermore, acquisition of the
`update package by wireless methods may take long periods
`of time and be subject to interruption or data corruption.
`Even when the update package has been acquired,
`the
`installation of the update often requires significant technical
`expertise at the user end complicating the proper installation
`of the update package. During this time the user may be
`faced with problems associated with uninstalling a previous
`version of the code to be updated or applying the update in
`manner that will be successful. This can present a further
`problem as it discourages the user from performing update
`operations for long periods of time or in some cases alto-
`gether.
`
`Apple Ex. 1011, p. 19
`Apple Ex. 1011, p. 19
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`
`
`US 6,832,373 BZ
`
`3
`A further problem exists with update management sys-
`tems that rely on publicly accessible servers to provide
`updates to large number of users. These servers often
`become busy or crowded and reduce the efficiency by which
`the update can be acquired. Additional complexities result-
`ing from update requirements arise from shortened product
`version lifecycles. It is not uncommon for new software
`releases to be available every few months (or even weeks, in
`the case of ‘bug fixes’ and intra-version updates). This places
`increased demands on developer resources required to main-
`tain the update services and results in developers expending
`added resources for existing software maintenance poten-
`tially shifting their focus from developing new product
`capabilities to supporting and updating older versions. From
`a business perspective software updating is generally rec—
`ognized as a non-revenue producing activity and may eon-
`sume an inordinate percentage of developer resources.
`Therefore there is an ongoing need to reduce the time,
`resources, and personnel needed to service existing software
`while at the same time insuring the customers are presented
`with the most up-to-date software versions. Attempts to
`make updates faster and more intuitive have led to the
`development of internally—designed and supported update
`solutions. A number of problems are associated with these
`solutions which are typically expensive, proprietary, and
`platform-specific. Other methods for update creation use
`commercial software packages designed to create updates or
`to generate patches for software. Both of these methods have
`inherent problems with flexibility and file size. Commer—
`cially available software updaters can be expensive and
`typically create updates which have unnecessarily large file
`sizes. In some instances, the new version or update gener-
`ated by the updater is actually a fill version of the software
`rather than an actual patch. Because of the problems asso-
`ciated with large update file sizes, developers may be
`hesitant to release frequent patches and as a result, pursue
`longer software development cycles. This may be a disser—
`vice to the customer due to the limited number of updates,
`which may be released only when there are substantial
`enough changes and/or improvements to warrant the cre-
`ation and disbursement of large update files.
`From the foregoing, it can be appreciated that there is an
`ongoing need for a convenient and reliable update manage-
`ment system. To this end, there is a need for a system which
`generates and distributes updates that are of reduced size to
`allow for more rapid acquisition. Additionally there is a need
`for an automated process that provides a convenient trouble—
`free method for installing desired updates to both hardware
`and software systems alike.
`SUMMARY OF THE INVENTION
`
`'lhe present invention satisfies aforementioned needs for
`efficient updating of digital information sequences that C0111-
`prise software, devices, and data. Further,
`these digital
`information sequences may be stored and used in various
`forms, including but not limited to files, memory locations,
`or embedded storage locations. The system and methods
`described herein provide a developer with an improved
`ability to create update information as needed and addition-
`ally allow users to proceed through a simplified update path
`which is not error-prone and can be performed more quickly
`than through the use of existing technologies.
`In one embodiment the invention comprises a system for
`updating a plurality of distributed electronic devices with an
`updated operating code comprising a first plurality of digital
`information sequences wherein each of the plurality of
`electronic devices include a resident operating code com—
`
`LA
`
`10
`
`15
`
`20
`
`toIn
`
`3D
`
`35
`
`45
`
`50
`
`LAm
`
`60
`
`65
`
`4
`prising a second plurality of digital information sequences
`that are stored within the electronic device. The system
`further comprises an update generator that compares an
`image of the first plurality of digital information sequences
`comprising the updated operating code to an image of the
`second plurality of digital information sequences compris—
`ing the resident operating code and identifies differences
`between of the updated operating code and the resident
`operating code and thereafter generates an update package
`comprising an instruction set which specifies how to gen-
`erate the updated operating code utilizing at least a portion
`of the second plurality of digital information sequences of
`the resident operating code. The system further comprises a
`distribution system that distributes the update package to the
`electronic devices such that the update package is received
`by the electronic devices and stored therein. The system
`further comprises a plurality of client modules that are
`respectively resident on each of the plurality of electronic
`devices, wherein the plurality of client modules access the
`distribution system and receive the update package anc
`wherein the instruction set of the update package is executec
`by the client modules so as to generate the updated operating
`code by utilizing a least a portion of the second plurality 0
`digital information sequences from the resident operating
`code.
`
`
`
`
`
`In another aspect the invention comprises a system for
`updating an electronic device containing a first plurality 0
`data sequences comprising a first code version to a secon
`code version comprising a second plurality of data
`sequences using a update package comprising a plurality o ‘
`transformation instructions which transform the first code
`version into the second code version. The system further
`comprises an update generator that performs a version
`comparison between the first code version and the seconc
`code version to identify pattern differences between the firs
`plurality of data sequences and the second plurality of data
`secuences, wherein the identified pattern differences are
`encoded using the transformation instructions which iden-
`tify portions of the first plurality of data sequences that can
`be used in the construction of the identified pattern
`
`
`di erences, and thereafter forming the update package using
`the transformation instructions. The system further com-
`prises a distribution system that receives the update package
`from the update generator and distributes the update package
`to the electronic device. The system further comprises an
`update agent resident on the electronic device that executes
`the transformation instructions of the update package
`thereby transforming the first code version resident in the
`electronic device into the updated second code version.
`In yet another aspect the invention comprises a system for
`updating a plurality of distributed electronic devices with an
`updated operating code that comprises a plurality of data
`blocks wherein each of the plurality of distributed electronic
`devices include a resident operating code that is stored as
`plurality of data blocks. The system further comprises an
`update generator that compares the plurality of data blocks
`of the resident operating code with the plurality of data
`blocks of the updated operating code and thereby generates
`an update package comprising an instruction set which
`indicates how to generate the updated operating code uti—
`lizing at least in part the plurality of data blocks of the
`resident operating code. The system further comprises a
`distribution system that includes the update package and is
`accessible by each of the plurality of distributed electronic
`devices. The system further comprises a plurality of client
`modules that are respectively resident on each of the plu-
`rality of distributed electronic set, wherein the plurality of
`
`Apple Ex. 1011, p. 20
`Apple Ex. 1011, p. 20
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`
`
`US 6,832,373 B2
`
`5
`client modules accesses the distribution system so as to be
`able to receive the update package, wherein the instruction
`set provides instructions to the client modules such that the
`client modules generates at least a portion of the plurality of
`data blocks comprising the updating operating code by
`utilizing the plurality of data blocks comprising the resident
`operating code.
`In still another aspect the invention comprises a system
`for updating a plurality of distributed electronic devices with
`an updated operating code that comprises a plurality of data
`blocks wherein each of the plurality of distributed electronic
`devices include a resident operating code that is stored as
`plurality of data blocks. The system further comprises an
`update generator that compares the plurality of data blocks
`of the resident operating code with the plurality of data
`
`
`blocks of the updated operating code and thereby identifies
`
`
`update data blocks that are di erent between the update
`operating code and the resident operating code wherein the
`update generator generates an update package comprising an
`instruction set which indicates how to transform the resident
`operating code into the updated operating code and how to
`generate the update data blocks utilizing at least in part the
`plurality of data blocks of the resident operating code. The
`system further comprises a distribution system that includes
`the update package and is accessible by each of the plurality
`of distributed electronic devices. The system further corn-
`prises a plurality of client modules that are respectively
`resident on each of the plurality of distributed electronic set,
`wherein the plurality of client modules accesses the distri—
`bution system so as to be able to receive the update package,
`wherein the instruction set provides instructions to the client
`modules such that the client modules modifies the resident
`operating code into the updated operating code and wherein
`the client modules generates at least a portion of the update
`data blocks by utilizing the received instruction set
`to
`perform operations on the data blocks of the resident oper—
`ating code to generate the update data blocks.
`In a further embodiment
`the invention comprises a
`method of updating a resident operating code stored in a first
`storage section of an electronic device into an updated
`operating code. The method further comprises the step of
`developing an update package comprising a plurality of
`transformation operations to transform the resident operat-
`ing code into the updated operating code. The method
`further comprises the step of transferring the update package
`to the electrical device. The method further comprises t