package Ġc fig . boot img . v 3 Ċ Ċ import Ġc fig . Av b Ċ import Ġc fig . boot img . Common . Companion . de le le IfExists Ċ import Ġc fig . boot img . Signer Ċ import Ġc fig . helper . Helper Ċ import Ġc fig . pack able . VB Meta Parser Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġde . v ander me er . asci it able . Ascii Table Ċ import Ġorg . apache . commons . exec . CommandLine Ċ import Ġorg . apache . commons . exec . Default Executor Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . io . File Ċ import Ġjava . io . FileInputStream Ċ import Ġjava . io . File OutputStream Ċ import Ġjava . nio . ByteBuffer Ċ import Ġjava . nio . Byte Order Ċ import Ġc fig . boot img . Common Ġas ĠC Ċ import Ġc fig . Environment Verifier Ċ Ċ @ Opt In ( Experimental Unsigned Types :: class ) Ċ data Ġclass ĠVendor Boot ( var Ġinfo : ĠMisc Info Ġ= ĠMisc Info (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġram disk : ĠCom m Args Ġ= ĠCom m Args (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġd tb : ĠCom m Args Ġ= ĠCom m Args ()) Ġ{ ĊĠĠĠ Ġdata Ġclass ĠCom m Args ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfile : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġposition : ĠLong Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġsize : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġload Addr : ĠLong Ġ= Ġ 0 ) ĊĊĠĠĠ Ġdata Ġclass ĠMisc Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġoutput : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġjson : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġheader Version : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġproduct : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġheader Size : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠpageSize : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcmd line : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtags Load Addr : ĠLong Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġkernel Load Addr : ĠLong Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġimage Size : ĠLong Ġ= Ġ 0 ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLoggerFactory . getLogger ( Vendor Boot :: class . java ) ĊĠĠĠĠĠĠĠ Ġfun Ġparse ( fileName : ĠString ): ĠVendor Boot Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġret Ġ= ĠVendor Boot () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwork Dir Ġ= ĠHelper . prop (" work Dir ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFileInputStream ( fileName ). use Ġ{ Ġfis Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheader Ġ= ĠVendor Boot Header ( fis ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret . info . output Ġ= ĠFile ( fileName ). name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret . info . json Ġ= ĠFile ( fileName ). name . remove Suffix (". img ") Ġ+ Ġ". json " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret . info . header Size Ġ= Ġheader . header Size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret . info . product Ġ= Ġheader . product ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret . info . tags Load Addr Ġ= Ġheader . tags Load Addr ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret . info . cmdline Ġ= Ġheader . cmdline ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret . info . kernel Load Addr Ġ= Ġheader . kernel Load Addr ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret . info . pageSize Ġ= Ġheader . pageSize ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret . info . header Version Ġ= Ġheader . header Version ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ram disk ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret . ram disk . file Ġ= Ġwork Dir Ġ+ Ġ" ram disk . img " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret . ram disk . size Ġ= Ġheader . vnd Ram disk Size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret . ram disk . load Addr Ġ= Ġheader . ram disk Load Addr ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret . ram disk . position Ġ= ĠHelper . round _ to _ multiple ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVendor Boot Header . VENDOR _ BOOT _ IMAGE _ HEADER _ V 3 _ SIZE . to Long (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader . pageSize ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// dt b ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret . dt b . file Ġ= Ġwork Dir Ġ+ Ġ" dt b " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret . dt b . size Ġ= Ġheader . dt b Size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret . dt b . load Addr Ġ= Ġheader . dt b Load Addr ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġret . dt b . position Ġ= Ġret . ram disk . position Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper . round _ to _ multiple ( ret . ram disk . size , Ġheader . pageSize ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġret . info . image Size Ġ= ĠFile ( fileName ). length () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġret ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparse Os Major (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 1 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpack (): ĠVendor Boot Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwork Dir Ġ= ĠHelper . prop (" work Dir ") ĊĠĠĠĠĠĠĠ Ġif Ġ( File ( work Dir Ġ+ Ġthis . ram disk . file ). exists () Ġ&& Ġ! File ( work Dir Ġ+ Ġ" root "). exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// do Ġnothing Ġif Ġwe Ġhave Ġram disk . img . gz Ġbut Ġno Ġ/ root ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . warn (" Use Ġpre built Ġram disk Ġfile : Ġ${ this . ram disk . file }") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( this . ram disk . file ). de le le IfExists () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( this . ram disk . file . remove Suffix (". gz ")). de le le IfExists () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// TODO : Ġremove Ġcp io Ġin ĠC / C ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// C . pack Root fs ("$ work Dir / root ", Ġthis . ram disk . file , Ġparse Os Major ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// enable Ġadvance ĠJAVA Ġcp io ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC . pack Root fs ("$ work Dir / root ", Ġthis . ram disk . file ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . ram disk . size Ġ= ĠFile ( this . ram disk . file ). length (). toInt () ĊĠĠĠĠĠĠĠ Ġthis . dt b . size Ġ= ĠFile ( this . dt b . file ). length (). toInt () ĊĠĠĠĠĠĠĠ Ġ// header ĊĠĠĠĠĠĠĠ ĠFileOutputStream ( this . info . output Ġ+ Ġ". clear ", Ġfalse ). use Ġ{ Ġf os Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġencoded Header Ġ= Ġthis . to Header (). encode () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf os . write ( encoded Header ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf os . write ( ByteArray ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper . round _ to _ multiple ( encoded Header . size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . info . pageSize ) Ġ- Ġencoded Header . size )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// data ĊĠĠĠĠĠĠĠ Ġlog . info (" Writing Ġdata Ġ... ") ĊĠĠĠĠĠĠĠ Ġ// assume Ġtotal ĠSIZE Ġis Ġsmaller Ġthan Ġ 6 4 MB ĊĠĠĠĠĠĠĠ Ġval Ġbf Ġ= ĠByteBuffer . allocate ( 1 0 2 4 Ġ* Ġ 1 0 2 4 Ġ* Ġ 1 2 8 ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . order ( Byte Order . LIT TLE _ ENDIAN ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC . write P added File ( it , Ġthis . ram disk . file , Ġthis . info . pageSize ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC . write P added File ( it , Ġthis . dt b . file , Ġthis . info . pageSize ) ĊĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// write ĊĠĠĠĠĠĠĠ ĠFileOutputStream ("${ this . info . output }. clear ", Ġtrue ). use Ġ{ Ġf os Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf os . write ( bf . array (), Ġ 0 , Ġbf . position ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// google Ġway ĊĠĠĠĠĠĠĠ Ġthis . to CommandLine (). add Argument ( this . info . output Ġ+ Ġ". google "). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info ( it . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Executor (). execute ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠC . assert File Equals ( this . info . output Ġ+ Ġ". clear ", Ġthis . info . output Ġ+ Ġ". google ") ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsign (): ĠVendor Boot Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġav b tool Ġ= ĠString . format ( Helper . prop (" av b tool "), Ġ" v 1 . 2 ") ĊĠĠĠĠĠĠĠ ĠSign er . sign AV B ( info . output , Ġthis . info . image Size , Ġav b tool ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġto Header (): ĠVendor Boot Header Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠVendor Boot Header ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Version Ġ= Ġinfo . header Version , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpageSize Ġ= Ġinfo . pageSize , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkernel Load Addr Ġ= Ġinfo . kernel Load Addr , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġram disk Load Addr Ġ= Ġram disk . load Addr , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv nd Ram disk Size Ġ= Ġram disk . size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcmd line Ġ= Ġinfo . cmdline , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtags Load Addr Ġ= Ġinfo . tags Load Addr , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Ġ= Ġinfo . product , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Size Ġ= Ġinfo . header Size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd tb Size Ġ= Ġd tb . size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd tb Load Addr Ġ= Ġd tb . load Addr ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġextract Images (): ĠVendor Boot Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwork Dir Ġ= ĠHelper . prop (" work Dir ") ĊĠĠĠĠĠĠĠ Ġ// header ĊĠĠĠĠĠĠĠ ĠObjectMapper (). writer WithDefault PrettyPrinter (). writeValue ( File ( work Dir Ġ+ Ġthis . info . json ), Ġthis ) ĊĠĠĠĠĠĠĠ Ġ// ram disk ĊĠĠĠĠĠĠĠ Ġval Ġfmt Ġ= ĠC . dump Ram disk ( C . Slice ( info . output , Ġram disk . position . toInt (), Ġram disk . size , Ġram disk . file ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ work Dir } root ") ĊĠĠĠĠĠĠĠ Ġthis . ram disk . file Ġ= Ġthis . ram disk . file Ġ+ Ġ".$ fmt " ĊĠĠĠĠĠĠĠ Ġ// dump Ġinfo Ġagain ĊĠĠĠĠĠĠĠ ĠObjectMapper (). writer WithDefault PrettyPrinter (). writeValue ( File ( work Dir Ġ+ Ġthis . info . json ), Ġthis ) ĊĠĠĠĠĠĠĠ Ġ// dt b ĊĠĠĠĠĠĠĠ ĠC . dump D tb ( C . Slice ( info . output , Ġd tb . position . toInt (), Ġd tb . size , Ġd tb . file )) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġextract VB Meta (): ĠVendor Boot Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA vb (). parse Vb Meta ( info . output ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" ex trace VB Meta (): Ġ$ e ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( File (" vb meta . img "). exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . warn (" Found Ġvb meta . img , Ġparsing Ġ... ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVB Meta Parser (). unpack (" vb meta . img ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġprint Summary (): ĠVendor Boot Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwork Dir Ġ= ĠHelper . prop (" work Dir ") ĊĠĠĠĠĠĠĠ Ġval Ġtable Header Ġ= ĠAsc ii Table (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Rule () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Row (" What ", Ġ" Where ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Rule () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtab Ġ= ĠAsc ii Table (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Rule () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Row (" image Ġinfo ", Ġwork Dir Ġ+ Ġinfo . output . remove Suffix (". img ") Ġ+ Ġ". json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Rule () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Row (" ram disk ", Ġthis . ram disk . file ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Row ("\\ -- Ġextracted Ġram disk Ġroot fs ", Ġ"${ work Dir } root ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Rule () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Row (" dt b ", Ġthis . dt b . file ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( File ( this . dt b . file Ġ+ Ġ". src "). exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Row ("\\ -- Ġde compiled Ġd ts ", Ġd tb . file Ġ+ Ġ". src ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Rule () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Row (" AV B Ġinfo ", ĠA vb . get Json FileName ( info . output )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Rule () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtab VB Meta Ġ= ĠAsc ii Table (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( File (" vb meta . img "). exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Rule () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Row (" vb meta . img ", ĠA vb . get Json FileName (" vb meta . img ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Rule () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n " Ġ+ Ġit . render () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlog . info ("\ n \ t \ t \ t Unpack ĠSummary Ġof Ġ${ info . output }\ n {}\ n {} {}", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtable Header . render (), Ġtab . render (), Ġtab VB Meta ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġto CommandLine (): ĠCommandLine Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcmd Prefix Ġ= Ġif Ġ( Environment Verifier (). is Windows ) Ġ" python Ġ" Ġelse Ġ"" ĊĠĠĠĠĠĠĠ Ġreturn ĠCommandLine . parse ( cmd Prefix Ġ+ ĠHelper . prop (" mk boot img ")). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Argument ("-- vendor _ ram disk "). add Argument ( ram disk . file ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Argument ("-- dt b "). add Argument ( dt b . file ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Argument ("-- vendor _ cmdline "). add Argument ( info . cmdline , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Argument ("-- header _ version "). add Argument ( info . header Version . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Argument ("-- base "). add Argument (" 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Argument ("-- tags _ offset "). add Argument ( info . tags Load Addr . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Argument ("-- kernel _ offset "). add Argument ( info . kernel Load Addr . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Argument ("-- ram disk _ offset "). add Argument ( ram disk . load Addr . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Argument ("-- dt b _ offset "). add Argument ( dt b . load Addr . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Argument ("-- page size "). add Argument ( info . pageSize . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Argument ("-- vendor _ boot ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ