`
`
`
`§<::£:a9mm\
`
`
`
`
`
`
`
`
`
`
`
`fisfiawfi i §¥€S$§$2§§
`
`
`
`
`.. a.“ x:
`\
`i \
`-\.\\\-\\‘~
`
`
` if} \x 7-1:: £2 ,3;- §.
`a
`-
`.
`‘
`‘
`.
`‘
`‘.
`'
`“v.
`\x NNK‘ :91}: EN? :‘a‘se'fihm _
`fi\)\fi\nfi\_\\y\\y_\_\_\i_\\_\_\i_v\)1_\\_\\:I_\\_\\_I_\\\\:I_\\_\\:Ij|\_\\p\_\\_\:|\‘\V'n‘\wh‘\V'n‘\w'n‘\V'n‘\V'n‘\V'n‘N\\\\\\N\\\\‘\\\\\‘\\\\\N\\\\N\\\\N\\\\‘\\\\‘h‘\\\\‘h‘\\\\\‘\\\\\‘\\\\\‘\\\\\‘\\\\\N\\\\‘\\\\\‘\\\\\N\\\\‘\\\\\‘\\\\\‘\\\v\\‘\\\\\‘\\\\‘h‘\\\\\\\\\\\\\\\\\\\\\\\\\k“
`
`\w.«w.«WWW“a“m‘m‘vhanvwlnvhmmkuaems-aVIN“«\mxnwmwxnuxnu“\“an\wmwmwmvmvxxx‘rnxww ,
`wu-W'
`c fl
`v»- .vuu .-.\(
`>.'“<§-\¢~.w\\._
`\\“ a
`“\'\".\<‘-\< M
`\
`
`~ {haw-u:
`% Gov.
`mm‘ \w. 1mm
`S
`“affirm
`i‘o‘wx-‘E:
`-
`
`
`Fk‘mk‘mkwmkm‘hmwnun.n‘hwn‘hwmkm\\m\u\mihfimi\HMi\HMi‘1.“i\HMi‘1.“i‘1.“i\wv“\wv“var“\wv“\‘uM\wv“\H.“\Q-L\Xh\KW\KW\\“\\\\k\\\\k\\\“\\\“\\\‘3“Uh)“Sh)“\\\k\\\x\k\\Hw\‘hh\\\“\Uh»Nah»\‘hh\\\%\\“\\\“\\\“\\\“\\Hfi
`§\x\
`§
`.nun“.u.y“nu...-..u.“u“...u...-.“u...“..-..\.“u“u“u...u“...u..-...u...-...m.-.uu.-.m\
`‘\‘.V‘\
`
`:.
`
`
`
`
`11
`
`
`
`
`
`’{IJIl/(Jtrlnn”nununuunuw,
`
`’2”?
`
`
`\.
`.
`
`
`
`
` ~ xwg-gxw _\\
`
`
`
`
`
`
`
`
`
`
`\r\o\-‘uV-“\'.r‘t- ..-c
`\o'hp: q :
`‘
`M‘-
`i
`.\ YA
`{a
`\
`‘ \‘
`V .L
`
`
`
`
`
`
`arr/”nfff/IIJ('1"ff/ffIJIIIIIIJIIIIJIII/
`
` ..““.““.““qw
`
`
`a“:
` .
`u *-
`‘
`
`““"W‘
`n >‘\‘}'\ ‘ a}.
`“hm. “unfinfinhfiuyv
`
`
`
`
`
`
`
`ra:-
`
` “y‘“xu.1.,1“aH“xu.wmumumknukw
`
`
`
`J
`"..,‘my‘my‘my‘my‘m.‘“x““xH~\.H.‘.»N..,m.wu..mm‘.\\H“w.v.H.1.H.1.H.1.H.uHw“u.Hu.“u.“u.“«nu—“NH“.M
`
`
`
` Ac:- .‘ \
`
`:3“;\:k:s.&.=
`:
`~.\upxv.a“x\u“x\a““a“x\u“x\u“x\u“x\1'“x\““m“m“wn\wu“wm~wn“wm‘wm‘v-m‘v-m‘v-mxvs«\Vx«\Vx\\\N\\\\“xv“xxx“iv“ivv'xxv“\wm““x““x““\wxv.“xxx“xxx“xxxmxvmxvmxwmxvmxwmxvmx““mmxvmxwmxvv‘xx
`
`.y.my..."m,my.m,mm..."a},mmm,.m,...,,,..,,,...,,..,,,..,,,..,,,..mm.
`
`{lMMn‘thaz/Javr/Mrr'r'n‘d/r'rttrwyf‘trr;fin-1137’!!!
`
`
`
`lnwm-nnn”.nu.»
`
`.ww
`4w
`
`a.”“by.nu"mam”.u”"alum...”...A_4...,_l_/..,_,_u
`
`
`
`
`
`\“1
`
` .
`
`3 cuw.
`‘vaz
`\
`‘ Emu».
`{
`
` ‘
`
`
`
`mu“
`
`‘ ~
`
`
`w»,w,
`
`
`
`
`
`%'-\\' "‘“'i\"‘« "A '
`
`-. xrxiq n..- \
`
`
`W W\%\\m\m m\\m\mmmmm\mxwmmw.wwmwmv N‘ \\\\ \\\\\v\\\ I\\\'\i\\\'Ip“'h\i\\'h\\\\\'|i\\a'I\\\'n\\\'n\\\m\\\n\\\'n\\\'n\\\'n\\\v“\‘\'I'I\\\1‘\\\m\\\'n\\\'n\\\'n\\\'n\\\'n\\\'n\\\“\\\“\\\“\\\“\\\“\\\“\
` Mm- humanity”.
`fix‘m
`mmgfiwmMy,“N,wwwwmMy,My,M1,M~,M“M“M~mmM““N“NMHMH“.M.“mum“.“mm“.“mm“.“mum...m.m.m.“mm“.m.“mm“.m.m.m.m.m.m.m“
`llmlw any”...
` ,u\MW‘“““\\\m§“ww\“wmy““mafiwmxx”w“\“x‘m‘uwmw‘._._\,._.M3.“Emma“?M~,M~‘M~‘M~.m~.,.m..m.m“m“n“...m“nmm~.,m“m“m~mmmum“m“m“mm“?mumunmmxmmmx
`
`
`“
`‘
`.
`.
`-
`“
`.
`xii-1:13;
`‘. {mm
`. Wm
`
`. “h \n‘"
`a r :3:‘ 3:1“? 3*:
` 9W .\
`
`
`a. "i‘ ‘t .21:
`
`
`
`APPLE EXHIBIT 1102, Page 1 of 1048
`
`APPLE EXHIBIT 1102, Page 1 of 1048
`
`
`
`“ww\
`
`“MM\\A|A
`
`“mu-nu.
`
`aw.
`
`mmuWw.‘.“
`
`uxvu‘ulnv.‘
`
`“m“.
`
`w .
`uvu (nu
`unv-unv-unv-~\\\\\\\\nunv-unv-hk\\h\\\w\mk\m\\\nkmk\wk‘ng“.5,w“,w“...
`\.
`
`5Iwe“we“.v-e-ev-MIL-A\w\w\m\m\\v€\\\\‘h\\v\\x\\
`
`xmumnxA.H.ummmmmwm“.s‘
`
`--\\w\\wuwuwuwu-m‘.‘.“.\“\.\Mu,A.“.‘.M\\.Mu.uu.u.1.“.1.“.1.H.1..,,.““.u.,,.“mu,a
`
`\uxu\\.
`
`\\.
`
`\u\\.
`
`\\.
`
`\\.
`
`u
`
`
`
`.\2.3‘....Rx..uAxxx\§§\§§x§tx\.§tx\§t\\$§$$¥d
`
`Wm‘m\m“w.“w.“w.\mxmmw‘m\xmmxxmmmmmmmmmmwMmmmiwahx\\x\m\x\x\w“no.“om-m‘o-Mh\\.\x\\k\x\\k\x\\m\\\\\\\w\\H‘XVv-ha\\W\W\W\H\W\M\%\\\m\\%\‘
`~
`
`
`
`
`
`
`imyw1\i_\\_\_\\“h\ix\_\_\ix\_\_\h_\\\-\i_\\\-_\i\-\\-_\\x\)1_\\m\-_\\_\\I_\\\-\)1_\\_\'\:I_\\\\\\\_\\I\\_\\_\_\\_\\_\_\\\\\\\_\\\\\_\\1_\i_\\\_\\\\\\um»
`>mwmn>>
`xx»
`>mm»
`,\\\\
`mm
`.‘NK\\‘N\\‘
`
`“a“
`
`wipxm\fi1\\jnp\\““\y\“ ,
`
`3h1‘\\‘1‘\\kw\\xkw\\\kw\\\_w\u.h\\\--h.u.-.n\\\-.n\\\-hw\\\h\\v.nah\-.nah\\r“\\bx\\\r“\\bx\\-\bx\\-\bx\\-\bx\\\bx\\\bx\\\bx\\-\bx\\-\bx\\-\bx\\-\5\\\-\h'\\\-\r\\\\r\v\\-\r\\\-\ryvtryv-xr‘v-xh‘v-xh“\\h\\\\h»\\\hyifi~hy‘\xh»\\\hy\\~.h\\\\h\\\fii\\\fii\\\fii\\\fii\\\fii\\\fii\\\
`
`
`
`Ania-5...!lit-{fl
`
`\~.\4-un.‘-.uu-u--.-uivmuvmuv.\«qvmu‘~.\«-\~M-vmuvH-nHn‘H-nH-‘H'wvunn'w mmm -.
`
`«\N.)
`
`
`
`u:1.“K“...
`
`
`R“.u$3
` H.mm.ixxu125;V.a
`
`
`
`
`
`wv um N\‘.\'\\‘~ .4 “w .‘-\«q“n.“n.“n.“n.“n.“n.n.“n.“n.“n.“n.“n.“n.“\-..“\-..““.“““u
`
`\‘}t\}t\:t\:=l.
`
`{\Stsktxxxxaxxxx..\\\\\\\\\\\§\M\\\\M\\\\\\§i\\\
`
`
`ixxs‘txktx‘xxt‘xicx\.(««L\\\kw.xx\x\\\\\\\\\\\\\\\\\\\x}r.KEEN}!
`
`1“A
`2»
`
`wmw..V‘\-u.\\\-u.\\\-u.\\\-n.\\\xh\\\-u.\\\-u.\\“a
`
`ox“.IH\\1-H\\~u-nxu-nt-A'ut-J'u
`
`.w w
`
`'i\\I.“\\I.\.\\\I.u\\I.\\\\I.\.\\\In.\\\~n.\\\~n\\\~n.\\vw
`
`w
`
`bktmrat:
`
`=.“. m3“
`
`.~
`:\~ Ext-m“. \-
`
`APPLE EXHIBIT 1102, Page 2 of 1048
`
`APPLE EXHIBIT 1102, Page 2 of 1048
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`e ‘
`e\w\\\\‘\\\\‘\‘\‘-“\‘\\‘-“"'\“5\'\\\'|\\“Hi\\\i'K‘V-'K‘WK‘W\\\-\“"9“an“N“-\““““i.\‘PM)-\-PM)-.\-PM)-.‘-.‘h\H\\\\H\\\\\\\\\\\\\\\\‘w\\\\‘w\\‘\‘\‘w\\‘\\\\\'\\\\n\\\v\\\\\\\\\v'n‘\n\\\n\\\~n\\\“\\\1\\\\\1i\\\\pvqb‘yilsxypm»;h“\\\w\\m\W\m“\\\“\\gwm
`.0‘9
`
`a.
`»s
`\\w\\w\v~hflux-uu.v“u.v““up.“up.\M-‘wku-wwn“1““1“w.“v9“\m-..u'e&u.\&rc\wxuwunvwnwu.“
`,ixh\‘<h\'k\\i\‘H\\\fi-h\\\\‘\\\-“\\\\N‘\\l“\\l\'i\\‘x‘u“xv.«w.\Inu«w.«w.mawxWu.“w.“ww.mmm“ya-xwmmxmmmwmwmwfl
`%H\\¥\H\\\x~h\i\\\hw(«w«Nix\\\\\\\\\H\\\.\\“\\\u‘\\ '\' \-
`u“\\nuuw.“w.“w.«nu-x“mun.“n.“-\‘\M\‘\M‘-‘\MWMWM)-‘M>.‘.V‘.-m‘v.-mxxmmxmxxxxxsxxx“\\\\\\\\\\w«\\\\“x“\“vm~n“~n“wu“wui\\'h\‘i\‘\'h\i“a,‘i.\\\\mmmxumxumxwxxw
`
`
`
`\xuxxt‘i2.3.
`
`i‘
`
`
`
`Vtxxxxxxxxtxxxtxxxtaxtxxx‘k‘stxxsxxx\x.tx\x‘\x\xx\a~s\\a~\\V\\\\V\\\\va\\x\\x\\\a\\\r\\\\\h:u\u...r{R-x¥wvxiwvvvxw§i~vr¥§§§>§~
`
`,.
`
`‘..
`
`u
`
`um\ny\“\“x“
`
`
`\.
`
`1
`
`u
`
`u
`
`n.
`
`u
`
`\uw\u\u“
`
`w\
`
`wxN
`
`
`
`
`
`
`
`nm..{0“n_...n.fin?nx5ya
`
`y._..
`
`EwMwmu:m:
`
`\‘.‘
`
`3“.
`
`-\\s\\s\s\\s\\\\r\\\-\h\\\\h\\\\h\\\\h\\\xhy\\..y\i-u“i~~n~\‘|‘n\\“iI no...
`
`~wMw_.xmm_.wm_.w“~~
`
`\.m.n
`
`“
`
`~
`
`
`
`
`
`.:\:xx}.:§§2§§§2§\2‘3..~\\..~x\\..~x\\..~\\‘1‘\\\\.\\\\xx\\\x\\\\\\\\\\\\\v1§xw§vav$vs§s~.sv§s~¥<s~¥<s§x§§x§~¥<t\.
`
`\\%\\%\\Hfi~~w~“‘n\“M\“V\\“V\\\‘\M\\‘-““-‘-‘~"‘-W\‘D-.‘-".\‘!‘-.‘-".".‘!‘-.‘-‘5'!I‘-HRUN-hKEV-h'<(\"'\\‘€(\"'\\“\H)\\\K\\\\K\\\\K\\\\\\\\V\h\\\\h\\\\\\\\\\\\\\\\\\\fl “w.“‘5‘ bags. IK‘LhiiikhI‘mMI‘\’1.I‘\.\M\.\.w_\_\w_\_\mumm‘w‘““\\w\m\\“\“\\\m\\\““w‘\\\“\"“\““\
`
`APPLE EXHIBIT 1102, Page 3 of 1048
`
`APPLE EXHIBIT 1102, Page 3 of 1048
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`\S5~kS
`
`5
`g
`\
`anwumum“Kan-5"PF“”EN-h‘<~‘.\"-\\'<~‘.\"-\\‘(VN-h\\.\"-\\\\\K\\\\\.\_\\\‘§.\_\\_N\h\\\\h\\\\.\\\\\.\\\\\\\\\\\“w..“$9_-.\_u_\_-.\_“_‘_-..._“W_“_\,.._‘_.,,.WMW, _ _ Q”N_‘A““w““m“m““\“\vm\““\\w“\““Wm‘“m“\“““\““\““‘ wwwx\m~~~‘°
`
`\wxm\“a\“a\n\u\ua\\u
`
`_“.v_“.v_uu\v\“\m.n\“g\
`
`“
`
`m.u..uw..yw..yw..;
`
`u
`
`u
`
`“ ununuuufiuuvn
`
`\“Hxx-w.mwmwmufiw‘“.-m.
`
`leaxlixiix
`
`1u1wu.1;
`
`U
`
`.
`
`n.
`
`‘.
`
`\3:‘3:~\\\\\!-\\\\\\\\\\\\\
`\§\\\x\\\xx\\\\\\\
`\..\.
`
`w»“wanna-x“m“m“\\\m\v-\v-\\\\~u\\\m\\\m“\vmw-m~wmwn“\“““
`\\\I\“\\\“\\\\)\\\\7-\\\an»>m\\m\m\m\m\m\\wxxwm“\“xx“x““\““ww.w““Nun-Lw\\M\\.M-n~%\\\Wr\.\wu.\wm.\wm.
`(v
`k
`3.
`:3.
`Q“
`Mk
`
`\\\\1w\3\x~\SxN~\SxN~\SxN~§~§x§~§x-¥<§~¥<§§x§i§m‘innkxxtxxxuxxxxaxxx\\\\\\\\\\\n\\§\\§\\\§\xb‘§\k
`‘‘‘‘..‘
`
`
`
`\\\\~n\‘.\~'\\
`a\\\\
`' \'~.\“\\~.\
`'\\'~u.-.«If?
`:c: . ax
`
`-.-\\\.\\‘\h\\\\h\\\\h\\\\-1H\\hy‘\\‘--\.H\\¥\.i~\\v‘a\\v‘a\\vn..yn..ym....‘..
`
`um\nn\n“\nL
`
`‘
`
`.:::.::..\..
`
`
`
`mmmu.“nmu.u.1.w.no.\m.n.‘mnm..m...
`
`APPLE EXHIBIT 1102, Page 4 of 1048
`
`APPLE EXHIBIT 1102, Page 4 of 1048
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`REMOTE UPDATE OF COMPUTERS BASED ON PHYSICAL DEVICE
`
`RECOGNITION
`
`[0001]
`
`This application claims priority to US. Provisional Application No. 61/220,092 which
`
`was filed June 24, 2009 and which is fully incorporated herein by reference.
`
`Field of the Invention
`
`BACKGROUND
`
`[0002]
`
`The present invention relates to computers and, in particular, to methods, apparatus
`
`and systems
`
`for maintaining appropriate
`
`configuration updates
`
`to
`
`software/hardware
`
`configuration through the use of physical device recognition to tailor configuration updates.
`
`Description of the Related Art
`
`[0003] Monitoring changes and updates to the plurality of computer programs resident on a
`
`client device is a difficult task for the typical user to consistently perform.
`
`In addition, the latest
`
`update from a vendor may not be appropriate consideiing the hardware,
`
`software or
`
`physical/geo—location of the client device. Thus, there is a need in the art for a tool that will
`
`automate the program configuration update process and optimize the suggested updated program
`
`configuration to match the environment of the client device.
`
`[0004] The present invention is directed toward a system, method and apparatus for remote
`
`updating of the configuration of a computer. One embodiment of the invention is system for
`
`remote updating a computer configuration, comprising: a client device configured to load a
`
`computer program to perform a remote update; a processor, at the client device, configured to
`
`perform physical device recognition on the client device to detemtine machine parameters,
`
`wherein unique device identifiers are generated for the client device, at least in part, based on the
`
`determined machine parameters; a transceiver configured to send the unique device identifiers to
`
`at least one of an auditing sewer and an update sewer via lntemet; an update server configured
`
`to collect the unique device identifiers from at least one client device; a processor, at the update
`
`server, configured to analyzed the unique identifiers at the update server, wherein the analyzed
`
`unique identifiers determine an updated program configuration; and a transceiver, at the update
`
`server, configured to deliver the updated program configuration to the client device via lnternet.
`
`APPLE EXHIBIT 1102, Page 5 of 1048
`
`APPLE EXHIBIT 1102, Page 5 of 1048
`
`
`
`[0005]
`
`In accordance with one aspect of the embodiments described herein, there is provided
`
`an apparatus for remote update of a program, comprising: means for loading a client device with
`
`a computer program configured to perform a remote update; means for performing physical
`
`device recognition on the client device to determine machine parameters; means for generating
`
`unique device identifier based at least in part on the determined machine parameters; means for
`
`sending the unique device identifier to at least one of an auditing server and an update server;
`
`and means for receiving an updated program configuration from the update server.
`
`[0006]
`
`In accordance with another aspect of the embodiments described herein,
`
`there is
`
`provided a method for remote update of a program, comprising: collecting unique identifiers
`
`from at least one of an audit sewer and client device at an update server; analyzing the unique
`
`identifiers; determining an updated program configuration for the client device from the
`
`analyzed unique identifiers; and delivering the updated program configuration to the client.
`
`[0007]
`
`In accordance with another aspect of the embodiments described herein,
`
`there is
`
`provided a tangible computer readable medium having stored thereon, computer—executable
`
`instructions that, if executed by a computing device, cause the computing device to perform a
`
`method comprising:
`
`loading a client device with a computer program configured to perform a
`
`remote update; performing physical device recognition on the client device to determine
`
`machine parameters; generating unique device identifier based at least in part on the determined
`
`machine parameters; sending the unique device identifier to at least one of an auditing server and
`
`an update server; and receiving an updated program configuration from the update server.
`
`[0008]
`
`In accordance with another aspect of the embodiments described herein,
`
`there is
`
`provided an apparatus for remote updating of a program, comprising: means for collecting
`
`unique identifiers from at least one of an audit server and client device; means for analyzing the
`
`unique identifiers; means for determining an updated program configuration for the client device
`
`from the analyzed unique identifiers; and means
`
`for delivering the updated program
`
`configuration to the client.
`
`[0009]
`
`In accordance with another asPect of the embodiments described herein,
`
`there is
`
`provided a tangible computer readable medium having stored thereon, computer-executable
`
`instructions that, if executed by a computing device, cause the computing device to perform a
`
`method comprising: collecting unique identifiers from at least one of an audit sewer and client
`
`APPLE EXHIBIT 1102, Page 6 of 1048
`
`APPLE EXHIBIT 1102, Page 6 of 1048
`
`
`
`device; analyzing the unique identifiers; determining an updated program configuration for the
`
`client device from the analyzed unique identifiers; and delivering the updated program
`
`configuration to the client.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0010]
`
`FIG. I is a schematic diagram of a system for remote updating of a client device by an
`
`update server in accordance with an embodiment of the invention.
`
`[0011]
`
`FIG. 2 is a flow diagram of a method for remote updating of a client device in
`
`accordance with an embodiment of the invention implemented on the client device.
`
`[0012]
`
`FIG. 3 is a block diagram of an apparatus according to the invention that may be
`
`configured as a client device, or as a processor or similar device for use within a client device.
`
`[0013]
`
`FIG. 4 is a flow diagram of a method for remote updating of a client device in
`
`accordance with an embodiment of the invention implemented on the update server.
`
`[0014]
`
`FIG. 5 is a block diagram of an apparatus according to the invention that may be
`
`configured as an update server, or as a processor or similar device for use within an update
`
`SBI'VEI'.
`
`[0015]
`
`FIG. 6 is a block diagram of memory allocation for a unique device identifier used in
`
`the various exemplary embodiments of the invention.
`
`DETAILED DESCRIPTION
`
`[0016]
`
`In accordance with the present technology, there is provided a system, method and
`
`apparatus for the remote update of computer software licenses through the use of physical device
`
`recognition.
`
`In particular, FIG.
`
`1 shows an exemplary schematic diagram for a system for
`
`remote updating of at least one client device 100 by an update server l20 in accordance with an
`
`exemplary embodiment of the invention.
`
`In particular, FIG. I, shows an exemplary system
`
`having at least one computing/network client device 100 that is in operative communication via
`
`the Internet 102 with an audit server 110 and an update server 120. While only one client device
`
`100 is illustrated in FIG. 1, it will be understood that a given system may comprise any number
`
`of client devices and use any number of apparatuses and methods of the invention as described
`
`herein. Further details regarding the system of FIG. 1 are provided below.
`
`Ls.)
`
`APPLE EXHIBIT 1102, Page 7 of 1048
`
`APPLE EXHIBIT 1102, Page 7 of 1048
`
`
`
`[0017]
`
`FIG. 2 provides an exemplary flow diagram of a method for remotely updating a client
`
`device.
`
`In particular,
`
`in step 2l0 of FIG. 2, the loading of at least one client device with a
`
`computer program for remote updating is peiformed. Physical device recognition of at least one
`
`of a software, hardware and geo-location environment of the client device is performed to
`
`determine machine parameters in step 220.
`
`Step 230 involves generating unique device
`
`identifiers, at
`
`least
`
`in part, from the determined machine parameters.
`
`The unique device
`
`identifiers are sent to at least one of an audit server 110 and an update server 120, as shown in
`
`FIG. 1, in step 240.
`
`In step 250, the client device 100 receives an updated program configuration
`
`from the update server 120, as shown in FIG. 1.
`
`[0018]
`
`FIG. 3 illustrates an exemplary apparatus that may be configured as a client device,
`
`comprising: a transceiver 304, a processor 306 and a memory 308; or as a processor 306; or as a
`
`similar device for use within a client device 100, as shown in FIG. 1, which provides the means
`
`for implementing the method, as disclosed in FIG. 2, on the client device 100.
`
`In particular,
`
`apparatus 300 may comprise means for loading 320 a client device with a computer program for
`
`perfonning a remote update.
`
`In addition, the apparatus 300 may comprise means for performing
`
`320 physical device recognition of one or more machine parameters of the client device. The
`
`machine parameters may comprise a combination of at least one user-configurable parameter and
`
`at least one non—user—configurable parameter of the client device. Further, the apparatus 300 may
`
`comprise a means for generating 340 a device identifier for the device based at least in part on
`
`the collected one or more machine parameters. Furthermore, apparatus 300 may comprise means
`
`for sending unique identifiers to at least one of an audit server and an update server. Moreover,
`
`apparatus 300 may comprise means for receiving 360 an updated program configuration from the
`
`update server.
`
`[0019]
`
`In addition, apparatus 300 may further comprise a means for determining the geo—
`
`location code for the device and for associating the geo-location code with a unique device
`
`identifier; and a software identifier to generate an audit number. The geo—location code may
`
`comprise, but is not limited to an Internet protocol (IP) address.
`
`[0020]
`
`The apparatus 300 may further comprise a means for generating a device identifier by
`
`implementing or executing at
`
`least one irreversible transformation such that
`
`the machine
`
`APPLE EXHIBIT 1102, Page 8 of 1048
`
`APPLE EXHIBIT 1102, Page 8 of 1048
`
`
`
`parameters cannot be derived from the device identifier. Additionally, at
`
`least one of the
`
`irreversible transformations may comprise, but is not limited to a cryptographic hash function.
`
`[0021]
`
`It is noted that apparatus 300 may Optionally include a processor module 306 having at
`
`least one processor, in the case of apparatus 300 configured as computing device, rather than as a
`
`processor. Processor module 306, in such case, may be in operative communication with means
`
`for determining the geo—location code; means for generating a device identifier by implementing
`
`or executing at least one irreversible transformation and components thereof, via a bus 302 or
`
`similar communication coupling. Processor 306 may effect initiation and scheduling of the
`
`processes or functions performed by means for generating a device identifier by implementing or
`
`executing at least one irreversible transformation, and components thereof.
`
`[0022]
`
`In related aSpects, apparatus 300 may include a
`
`transceiver module 304 for
`
`communicating with means for generating a device identifier by implementing or executing at
`
`least one irreversible transformation, and components thereof. A stand alone receiver and/or
`
`stand alone transmitter may be used in lieu of or in conjunction with the transceiver 304.
`
`[0023]
`
`In addition, apparatus 300 may optionally include a means for storing information, such
`
`as, for example, a computer readable medium or memory device/module 308. Further,
`
`the
`
`memory device/module 308 may be operatively coupled to the other components of apparatus
`
`300 via bus 302 or the like. The computer readable medium or memory device 308 may be
`
`adapted to store computer readable instructions and data for effecting the methods of FIG. 2;
`
`and, as shown in FIG. 3, the processes and behavior of means 320—360; means for determining
`
`the geo-location code; means for generating a device identifier by implementing or executing at
`
`least one irreversible, and components thereof; or processor 306 (in the case of apparatus 300
`
`being configured as a computing device) or the methods disclosed herein.
`
`[0024]
`
`In yet further related aspects,
`
`the memory module 308 may optionally include
`
`executable code for the processor module 304 configured to: (a) determine machine parameters
`
`of a client
`
`device, the machine parameters comprising a combination of at least one user—
`
`configurable parameter and at
`
`least one non-user-configurable parameter of the device; (b)
`
`generate a device identifier for the device based, at least in part, on the machine parameters; and
`
`(c) determine whether an Internet connection is available for the client device. One or more of
`
`APPLE EXHIBIT 1102, Page 9 of 1048
`
`APPLE EXHIBIT 1102, Page 9 of 1048
`
`
`
`steps (a)-(c) may be performed by a processor module in lieu of or in conjunction with the means
`
`described above.
`
`[0025]
`
`FIG. 4 shows an exemplary flow diagram of a method for remote updating of a client
`
`device in accordance with an embodiment of the invention on the update server 120, as shown in
`
`FIG. 1.
`
`In particular, in step 410 the unique identifiers are collected by update server 120 from
`
`at least one of the audit server ”0 and the client device 100, as shown FIG. 1. The unique
`
`identifiers are then analyzed on the update server in step 420. Step 430 involves determining an
`
`updated program configuration for the client device from the analysis of the unique identifiers.
`
`The updated program configuration is delivered to the client device in step 440.
`
`[0026]
`
`FIG. 5 shows an exemplary apparatus that may be configured as either an update
`
`server, or as a processor or similar device for use within the update server.
`
`an exemplary
`
`apparatus diagram that may be configured as an update server comprising: a transceiver 504, a
`
`processor 506 and a memory 508; or as a processor 506; or as a similar device for use within an
`
`update server 120, as shown in FIG. I, which provides the means for implementing the method,
`
`as disclosed in FIG. 4, on the update server 120, as disclosed in FIG. 1.
`
`In particular, apparatus
`
`500 may comprise means for collecting 520 unique identifiers from at least one of an audit server
`
`and at least one client device with a computer program for performing a remote update.
`
`In
`
`addition, the apparatus 300 may comprise means for analyzing 530 the unique identifiers that are
`
`determined, at least in part, from the machine parameter. The machine parameters may comprise
`
`a combination of at least one user-configurable parameter and at least one non—user—configurable
`
`parameter of the client device.
`
`Further,
`
`the apparatus 500 may comprise a means for
`
`determining 540 an updated program configuration for the device based, at least in part, on the
`
`collected one or more machine parameters. Furthermore, apparatus 500 may comprise means for
`
`delivering the updated program configuration for the client device 100 from the update server
`
`120, as shown in FIG. 1.
`
`[0027]
`
`[t is noted that apparatus 500 may optionally include a processor module 506 having at
`
`least one processor, in the case of apparatus 500 configured as a computing device, rather than as
`
`a processor.
`
`In related aspects, apparatus 500 may include a transceiver module 504 for
`
`communicating with means for generating a device identifier by implementing or executing at
`
`APPLE EXHIBIT 1102, Page 10 of 1048
`
`APPLE EXHIBIT 1102, Page 10 of 1048
`
`
`
`least one irreversible transformation, and components thereof. A stand alone receiver and/or
`
`stand alone transmitter may be used in lieu of or in conjunction with the transceiver 504.
`
`[0028]
`
`In addition, apparatus 500 may optionally include a means for storing information, such
`
`as, for example, a computer readable medium or memory device/module 508. Further,
`
`the
`
`memory device/module 508 may be operatively coupled to the other components of apparatus
`
`500 via bus 302 or the like. The computer readable medium or memory device 508 may be
`
`adapted to store computer readable instructions and data for effecting the methods of FIG. 4;
`
`and, as shown in FIG. 5, the processes and behavior of means 520-550, and components thereof;
`
`or processor 506 (in the case of apparatus 300 being configured as a computing device).
`
`[0029]
`
`In yet further related aspects,
`
`the memory module 508 may optionally include
`
`executable code for the processor module 504 configured to: (a) collect unique identifiers from at
`
`least one of an audit server and client device; (b) analyze the collected unique identifiers; (0)
`
`determine an updated program configuration for the client device; and (d) deliver the updated
`
`program configuration to the client device(s). One or more of steps (a)—(:d) may be performed by
`
`a processor module in lieu of or in conjunction with the means described above.
`
`[0030]
`
`FIG. 6, discloses, for one or more embodiments described herein, an exemplary format
`
`for a unique device identifier 600, which may further include two components: (1) a variable key
`
`portion; and (2) a system key portion. The variable key portion may be generated at the time of
`
`registration of client device 100 by reference to a variable platform parameter, such as, but not
`
`limited to: a reference to system time information, location and/or other parameters that are
`
`variable in nature may be utilized in other embodiments. The system key portion may include
`
`the above described parameters expected to be unique to the client device 100, that are for
`
`example, but not limited to: hard disk volume name, user name, computer name, user password,
`
`hard disk initialization date, or combinations thereof. The variable key portion andfor system
`
`key portion may be combined with the IP address and/or other platform parameters of the client
`
`device 100.
`
`It is noted that unique device identifiers, or‘ portions thereof, may be encrypted to
`
`add an additional layer of specificity and security.
`
`[0031] With respect
`
`to the system, method and apparatus of the invention,
`
`the following
`
`paragraphs provide additional detail regarding the implementation of each of the embodiments
`
`discussed above.
`
`APPLE EXHIBIT 1102, Page 11 of 1048
`
`APPLE EXHIBIT 1102, Page 11 of 1048
`
`
`
`[0032]
`
`The machine parameters may further include, but are not limited to: user account
`
`information, program information (e.g., serial number);
`
`location of a user within a given
`
`application program, and features of the software/hardware the user is entitled to use. As shown
`
`in FIG. 1, block 107,
`
`the updated program configuration delivered to the client device may
`
`include, but is not limited to: binary, executables, paths, dlls, miss or assets.
`
`[0033]
`
`The client device 100 may be, but is not limited to, a personal computer, a server
`
`computer, a laptop computer, a tablet computer, a personal digital assistant, a mobile phone, a
`
`wireless communication device, an onboard vehicle computer, a game console, or any other
`
`machine/device capable of communication with a computer network, such as but not limited to
`
`the Internet.
`
`In related aspects, in wireless communications, Over The Air (OTA) Push or the
`
`like may be implemented to download onto or upgrade (:e.g., configuration/settings, etc.) client
`
`network devices. OTA Push involves the use of wireless phone numbers (MS—ISDN) rather than
`
`IP.
`
`[0034]
`
`The client device 100 may comprise software (e.g., an operating system or other
`
`applications) that requires a license to be authorized for use. The client device 100 may further
`
`comprise an auditing tool or application. The auditing application may be any program or
`
`application that collects identifying information regarding the client device 100 and/or software
`
`on the client device 100. The auditing application may comprise a stand alone application or an
`
`applet running within a web browser on the client device [00 (e.g., an applet comprising
`
`executable code for a Java Virtual Machine).
`
`[0035]
`
`The auditing application may be embedded in or associated with another software
`
`application, including, but not limited to software. For example, the auditing application may be
`
`embedded in or associated with a tool bar of a software application, for example, but not limited
`
`to a web browser. The auditing application may prompt the user to register with an online
`
`software registration service, or may run in the background with little or no interaction with the
`
`user of the client device 100.
`
`[0036]
`
`The auditing application may include a registration routine that collects infomiation
`
`regarding client device 100 by checking a number of parameters which are expected to be unique
`
`to the client device environment. The parameters checked may include, but are not limited to:
`
`hard disk volume name, user name, device name, user password, hard disk initialization date, etc.
`
`APPLE EXHIBIT 1102, Page 12 of 1048
`
`APPLE EXHIBIT 1102, Page 12 of 1048
`
`
`
`The collected information may include, but is not limited to:
`
`information that identifies the
`
`hardware comprising the platform on which the web browser runs, such as, CPU number, or
`
`other unique parameters associated with the firmware in use. The system information may
`
`further include, but is not limited to: system configuration information, amount of memory, type
`
`of processor, software or operating system serial number, etc.
`
`[0037]
`
`In the alternative, or in addition,
`
`the parameters checked may include, but are not
`
`limited to virtual machine specifications. Examples of virtual machine specifications may
`
`include, but are not limited to: information relating to virtual processors, virtual BIOS, virtual
`
`memory, virtual graphics, virtual lDE drives, virtual SCSI devices, virtual PCI slots, virtual
`
`floppy drives, virtual serial (COM) ports, virtual parallel (LPT) ports, virtual keyboard, virtual
`
`mouse and drawing tablets, virtual Ethernet card, virtual networking, virtual sound adapter, etc.
`
`[0038] Based on the collected information, the auditing application may generate a device
`
`identifier that is unique for the client device 100.
`
`In the alternative, or in addition, the auditing
`
`application may gather and send the device parameters to a remote server, such as audit server
`
`110, which in turn generates the device identifier. The device identifier may be stored in a
`
`hidden directory of the client device 100 and/or at a remote location, such as the audit server
`
`110. The device identifier may incorporate the device’s IP address and/or other gee-location
`
`code (e.g., GPS data, cell site triangulation data, or the like, or combinations thereof) to add
`
`another layer of specificity to client device’s unique identifier.
`
`[0039] An application ('e.g., auditing application) running on the client device 100 or otherwise
`
`having access to the hardware and file system of the client device 100 may generate a device
`
`identifier (e.g., a unique device identifier) using a process that operates on data indicative of the
`
`configuration and hardware of the client device 100. The device identifier may be generated
`
`using a combination of user-configurable and non—user—configurable machine parameters as input
`
`to a process that results in the device identifier, which may be expressed in digital data as a
`
`binary number.
`
`[0040]
`
`Each machine parameter is data determined by a hardware component, software
`
`component, or data component specific to the client device 100. Machine parameters may be
`
`selected based on the target device system configuration such that the resulting device identifier
`
`APPLE EXHIBIT 1102, Page 13 of 1048
`
`APPLE EXHIBIT 1102, Page 13 of 1048
`
`
`
`has a very high probability (ea greater than 99.999%) of being a unique identifier of the client
`
`device 100.
`
`[0041]
`
`In addition,
`
`the machine parameters may be selected such that the device identifier
`
`includes at least a stable unique portion up to and including the entire identifier that has a very
`
`high probability of remaining unchanged during normal operation of the client device 100. As a
`
`result, the device identifier should be highly specific, unique, reproducible and stable as a result
`
`of properly selecting the machine parameters.
`
`[0042]
`
`The application for generating the unique device identifier may also operate on the
`
`collected parameters with one or more algorithms to generate the device identifier. This process
`
`may include at least one irreversible transformation, such as, but not limited to a cryptographic
`
`hash function. As a result, the input machine parameters cannot be derived from the resulting
`
`device identifier. Thus, each device identifier, to a very high degree of certainty, cannot be
`
`generated except by the suitably configured application operating or otherwise having had access
`
`to the same client device for which the device identifier was first generated. Conversely, each
`
`device identifier, again to a very high degree of certainty, can be successfully reproduced by the
`
`suitably configured application operating or otherwise having access to the same client device
`
`100 on which the device identifier was first generated.
`
`[0043]
`
`The auditing application may operate by performing a system scan to determine a
`
`present configuration of the client device. The auditing application may then select the machine
`
`parameters to be used as input for generating the unique device identifier.
`
`Selection of
`
`parameters may vary depending on the system configuration. Once the parameters are selected,
`
`the application may generate the device identifier.
`
`[0044]
`
`Further, generating the device