/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 - 2 0 2 1 ĠG iac omo ĠF er ret ti Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġme . hex ile . ode x patch er . art . o at Ċ Ċ import Ġme . hex ile . ode x patch er . art . Art Info Ċ import Ġme . hex ile . ode x patch er . k tx . read Bytes Ċ import Ġme . hex ile . ode x patch er . k tx . toInt Ċ import Ġjava . io . Random Access File Ċ Ċ sealed Ġclass ĠO at Header ( private Ġval Ġr af : ĠRandom Access File ) Ġ: ĠArt Info Ġ{ ĊĠĠĠ Ġabstract Ġfun Ġnext Checksum ( pos : ĠLong ): ĠLong ĊĊĠĠĠ Ġoverride Ġfun Ġparse Checksum ( pos : ĠLong , Ġchecksum s : ĠArrayList < Pair < Long , ĠByteArray >> ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcursor Ġ= Ġpos ĊĊĠĠĠĠĠĠĠ Ġ// ĠRead Ġname ĊĠĠĠĠĠĠĠ Ġcursor Ġ+= Ġ 4 Ġ+ Ġr af . read Bytes ( cursor , Ġ 4 ). toInt () ĊĊĠĠĠĠĠĠĠ Ġ// ĠRead Ġchecksum ĊĠĠĠĠĠĠĠ Ġchecksum s . add ( Pair ( cursor , Ġr af . read Bytes ( cursor , Ġ 4 ))) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnext Checksum ( cursor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* protected Ġfun Ġcalculate Header Size (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġheader Fields Ġ* Ġ 4 Ġ+ Ġr af . read Bytes ( Const . HEADER _ OFFSET Ġ+ Ġ( header Fields Ġ- Ġ 1 ) Ġ* Ġ 4 , Ġ 4 ). toInt (). to Long () ĊĠĠĠ Ġ}*/ ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" O at Header ( version ='$ version ', Ġdex File Count =$ dex File Count , Ġdex Checksum Offset =$ dex Checksum Offset , Ġheader Size =$ header Size )" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠConst Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠMAG IC Ġ= Ġ" o at \ n ". toByteArray () ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠHEADER _ OFFSET Ġ= Ġ 4 0 9 6 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAND ROID _ 4 _ 4 Ġ= Ġ" 0 0 7 " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAND ROID _ 4 _ 4 _ 3 Ġ= Ġ" 0 0 8 " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAND ROID _ 5 Ġ= Ġ" 0 3 9 " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAND ROID _ 5 _ 1 Ġ= Ġ" 0 4 5 " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAND ROID _ 6 Ġ= Ġ" 0 6 4 " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAND ROID _ 7 Ġ= Ġ" 0 7 9 " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAND ROID _ 7 _ 1 _ 1 Ġ= Ġ" 0 8 8 " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAND ROID _ 8 Ġ= Ġ" 1 2 4 " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAND ROID _ 8 _ 1 Ġ= Ġ" 1 3 1 " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAND ROID _ 9 Ġ= Ġ" 1 3 8 " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAND ROID _ 1 0 Ġ= Ġ" 1 7 0 " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAND ROID _ 1 1 Ġ= Ġ" 1 8 3 " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAND ROID _ 1 2 Ġ= Ġ" 1 9 5 " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAND ROID _ DEV Ġ= Ġ" 1 9 9 " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠParser Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġparse ( raf : ĠRandom Access File ): ĠO at Header Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString ( raf . read Bytes ( Const . HEADER _ OFFSET Ġ+ Ġ 4 , Ġ 4 )). substring ( 0 , Ġ 3 ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConst . ANDROID _ 4 _ 4 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO at Header 0 0 7 ( raf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConst . ANDROID _ 4 _ 4 _ 3 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO at Header 0 0 8 ( raf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConst . ANDROID _ 5 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO at Header 0 3 9 ( raf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConst . ANDROID _ 5 _ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO at Header 0 4 5 ( raf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConst . ANDROID _ 6 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO at Header 0 6 4 ( raf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConst . ANDROID _ 7 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO at Header 0 7 9 ( raf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConst . ANDROID _ 7 _ 1 _ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO at Header 0 8 8 ( raf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConst . ANDROID _ 8 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO at Header 1 2 4 ( raf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConst . ANDROID _ 8 _ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO at Header 1 3 1 ( raf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConst . ANDROID _ 9 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO at Header 1 3 8 ( raf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConst . ANDROID _ 1 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO at Header 1 7 0 ( raf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConst . ANDROID _ 1 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO at Header 1 8 3 ( raf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConst . ANDROID _ 1 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO at Header 1 9 5 ( raf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConst . ANDROID _ DEV Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO at Header 1 9 9 ( raf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Cannot Ġparse ĠO AT Ġversion Ġ$ it ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠK IT K AT Ġ( 4 . 4 Ġ- Ġ 4 . 4 . 2 ) Ċ open Ġclass ĠO at Header 0 0 7 ( private Ġval Ġr af : ĠRandom Access File ) Ġ: ĠO at Header ( raf ) Ġ{ ĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 4 . 4 _ r 1 / runtime / o at . cc # 2 5 ĊĠĠĠ Ġoverride Ġval Ġversion : ĠString Ġ= ĠConst . ANDROID _ 4 _ 4 ĊĊĠĠĠ Ġoverride Ġval Ġdex Checksum Offset : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠConst . HEADER _ OFFSET Ġ+ Ġheader Size ĊĠĠĠ Ġoverride Ġval Ġheader Size : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Header Size ĊĠĠĠ Ġoverride Ġval Ġdex File Count : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Dex File Count ĊĠĠĠ Ġ// Ġoverride Ġval Ġheader Fields : ĠInt Ġ= Ġ 1 6 ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 4 . 4 _ r 1 / runtime / o at . h # 8 4 ĊĠĠĠ Ġ// ĠMissing Ġinstruction _ set _ features _ ĊĠĠĠ Ġ// ĠMissing Ġo at _ dex _ files _ offset _ ĊĠĠĠ Ġprivate Ġval Ġm Header Size : ĠLong Ġ= ĊĠĠĠĠĠĠĠĠ 1 6 Ġ* Ġ 4 Ġ+ Ġr af . read Bytes ( Const . HEADER _ OFFSET Ġ+ Ġ( 1 6 Ġ- Ġ 1 ) Ġ* Ġ 4 , Ġ 4 ). toInt (). to Long () ĊĠĠĠ Ġprivate Ġval Ġm Dex File Count : ĠInt Ġ= Ġr af . read Bytes ( Const . HEADER _ OFFSET Ġ+ Ġ 4 Ġ* Ġ 4 , Ġ 4 ). toInt () ĊĊĠĠĠ Ġoverride Ġfun Ġnext Checksum ( pos : ĠLong ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġdex Ġfile Ġoffset ĊĠĠĠĠĠĠĠ Ġr af . seek ( pos Ġ+ Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġval Ġdex File Offset Ġ= Ġr af . read Bytes ( 4 ). toInt () ĊĊĠĠĠĠĠĠĠ Ġ// ĠRead Ġdex Ġheader Ġdata ĊĠĠĠĠĠĠĠ Ġ// Ġ 4 0 9 6 Ġ= Ġo at Ġheader Ġoffset ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠ 9 6 Ġ= Ġclass _ defs _ size Ġoffset ĊĠĠĠĠĠĠĠ Ġr af . seek ( dex File Offset . to Long () Ġ+ ĠConst . HEADER _ OFFSET Ġ+ Ġ 9 6 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġpos Ġ+ Ġ 8 Ġ+ Ġ( raf . read Bytes ( 4 ). toInt () Ġ* Ġ 4 ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠK IT K AT Ġ( 4 . 4 . 3 Ġ- Ġ 4 . 4 . 4 ) Ċ open Ġclass ĠO at Header 0 0 8 ( raf : ĠRandom Access File ) Ġ: ĠO at Header 0 0 7 ( raf ) Ġ{ ĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 4 . 4 . 3 _ r 1 / runtime / o at . cc # 2 5 ĊĠĠĠ Ġoverride Ġval Ġversion : ĠString Ġ= ĠConst . ANDROID _ 4 _ 4 _ 3 ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 4 . 4 . 3 _ r 1 / runtime / o at . h # 8 4 ĊĠĠĠ Ġ// ĠMissing Ġinstruction _ set _ features _ ĊĠĠĠ Ġ// ĠMissing Ġo at _ dex _ files _ offset _ Ċ } Ċ Ċ // ĠL OL LI POP Ġ( 5 . 0 Ġ- Ġ 5 . 0 . 2 ) Ċ open Ġclass ĠO at Header 0 3 9 ( raf : ĠRandom Access File ) Ġ: ĠO at Header 0 0 8 ( raf ) Ġ{ ĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 5 . 0 . 0 _ r 1 / runtime / o at . cc # 2 6 ĊĠĠĠ Ġoverride Ġval Ġversion : ĠString Ġ= ĠConst . ANDROID _ 5 ĊĠĠĠ Ġoverride Ġval Ġdex Checksum Offset : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠConst . HEADER _ OFFSET Ġ+ Ġm Header Size ĊĠĠĠ Ġoverride Ġval Ġdex File Count : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Dex File Count ĊĠĠĠ Ġoverride Ġval Ġheader Size : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Header Size ĊĠĠĠ Ġ// Ġoverride Ġval Ġheader Fields : ĠInt Ġ= Ġ 2 1 ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 5 . 0 . 0 _ r 1 / runtime / o at . h # 1 1 7 ĊĠĠĠ Ġ// ĠMissing Ġo at _ dex _ files _ offset _ ĊĠĠĠ Ġprivate Ġval Ġm Header Size : ĠLong Ġ= ĊĠĠĠĠĠĠĠĠ 2 1 Ġ* Ġ 4 Ġ+ Ġr af . read Bytes ( Const . HEADER _ OFFSET Ġ+ Ġ( 2 1 Ġ- Ġ 1 ) Ġ* Ġ 4 , Ġ 4 ). toInt (). to Long () ĊĠĠĠ Ġprivate Ġval Ġm Dex File Count : ĠInt Ġ= Ġr af . read Bytes ( Const . HEADER _ OFFSET Ġ+ Ġ 5 Ġ* Ġ 4 , Ġ 4 ). toInt () Ċ } Ċ Ċ // ĠL OL LI POP ĠMR 1 Ġ( 5 . 1 Ġ- Ġ 5 . 1 . 1 ) Ċ open Ġclass ĠO at Header 0 4 5 ( raf : ĠRandom Access File ) Ġ: ĠO at Header 0 3 9 ( raf ) Ġ{ ĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 5 . 1 . 0 _ r 1 / runtime / o at . cc # 2 6 ĊĠĠĠ Ġoverride Ġval Ġversion : ĠString Ġ= ĠConst . ANDROID _ 5 _ 1 ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 5 . 1 . 0 _ r 1 / runtime / o at . h # 1 1 9 ĊĠĠĠ Ġ// ĠMissing Ġo at _ dex _ files _ offset _ Ċ } Ċ Ċ // ĠM AR SH M ALLOW Ġ( 6 . 0 Ġ- Ġ 6 . 0 . 1 ) Ċ open Ġclass ĠO at Header 0 6 4 ( raf : ĠRandom Access File ) Ġ: ĠO at Header 0 4 5 ( raf ) Ġ{ ĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 6 . 0 . 0 _ r 1 / runtime / o at . h # 3 5 ĊĠĠĠ Ġoverride Ġval Ġversion : ĠString Ġ= ĠConst . ANDROID _ 6 ĊĠĠĠ Ġoverride Ġval Ġdex Checksum Offset : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠConst . HEADER _ OFFSET Ġ+ Ġm Header Size ĊĠĠĠ Ġoverride Ġval Ġheader Size : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Header Size ĊĠĠĠ Ġ// Ġoverride Ġval Ġheader Fields : ĠInt Ġ= Ġ 1 8 ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 6 . 0 . 0 _ r 1 / runtime / o at . h # 1 2 1 ĊĠĠĠ Ġ// ĠMissing Ġo at _ dex _ files _ offset _ ĊĠĠĠ Ġprivate Ġval Ġm Header Size : ĠLong Ġ= ĊĠĠĠĠĠĠĠĠ 1 8 Ġ* Ġ 4 Ġ+ Ġr af . read Bytes ( Const . HEADER _ OFFSET Ġ+ Ġ( 1 8 Ġ- Ġ 1 ) Ġ* Ġ 4 , Ġ 4 ). toInt (). to Long () Ċ } Ċ Ċ // ĠNO UG AT Ġ( 7 . 0 Ġ- Ġ 7 . 1 ) Ċ open Ġclass ĠO at Header 0 7 9 ( raf : ĠRandom Access File ) Ġ: ĠO at Header 0 6 4 ( raf ) Ġ{ ĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 7 . 0 . 0 _ r 1 / runtime / o at . h # 3 5 ĊĠĠĠ Ġoverride Ġval Ġversion : ĠString Ġ= ĠConst . ANDROID _ 7 ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 7 . 0 . 0 _ r 1 / runtime / o at . h # 1 3 1 ĊĠĠĠ Ġ// ĠMissing Ġo at _ dex _ files _ offset _ ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 7 . 0 . 0 _ r 1 / compiler / o at _ writer . cc # 2 4 2 ĊĠĠĠ Ġoverride Ġfun Ġnext Checksum ( pos : ĠLong ): ĠLong Ġ= Ġpos Ġ+ Ġ 4 Ġ* Ġ 4 Ċ } Ċ Ċ // ĠNO UG AT ĠMR 1 Ġ( 7 . 1 . 1 Ġ- Ġ 7 . 1 . 2 ) Ċ open Ġclass ĠO at Header 0 8 8 ( raf : ĠRandom Access File ) Ġ: ĠO at Header 0 7 9 ( raf ) Ġ{ ĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 7 . 1 . 1 _ r 1 / runtime / o at . h # 3 5 ĊĠĠĠ Ġoverride Ġval Ġversion : ĠString Ġ= ĠConst . ANDROID _ 7 _ 1 _ 1 ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 7 . 1 . 1 _ r 1 / runtime / o at . h # 1 3 1 ĊĠĠĠ Ġ// ĠMissing Ġo at _ dex _ files _ offset _ ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 7 . 1 . 1 _ r 1 / compiler / o at _ writer . cc # 2 4 2 Ċ } Ċ Ċ // ĠO RE O Ġ( 8 . 0 ) Ċ open Ġclass ĠO at Header 1 2 4 ( raf : ĠRandom Access File ) Ġ: ĠO at Header 0 8 8 ( raf ) Ġ{ ĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 8 . 0 . 0 _ r 1 / runtime / o at . h # 3 5 ĊĠĠĠ Ġoverride Ġval Ġversion : ĠString Ġ= ĠConst . ANDROID _ 8 ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 8 . 0 . 0 _ r 1 / runtime / o at . h # 1 3 1 ĊĠĠĠ Ġ// ĠMissing Ġo at _ dex _ files _ offset _ ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 8 . 0 . 0 _ r 1 / compiler / o at _ writer . cc # 2 5 4 Ċ } Ċ Ċ // ĠO RE O ĠMR 1 Ġ( 8 . 1 ) Ċ open Ġclass ĠO at Header 1 3 1 ( raf : ĠRandom Access File ) Ġ: ĠO at Header 1 2 4 ( raf ) Ġ{ ĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 8 . 1 . 0 _ r 1 / runtime / o at . h # 3 6 ĊĠĠĠ Ġoverride Ġval Ġversion : ĠString Ġ= ĠConst . ANDROID _ 8 _ 1 ĊĠĠĠ Ġoverride Ġval Ġdex Checksum Offset : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Dex Checksum Offset ĊĠĠĠ Ġoverride Ġval Ġheader Size : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Header Size ĊĠĠĠ Ġ// Ġoverride Ġval Ġheader Fields : ĠInt Ġ= Ġ 1 9 ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 8 . 1 . 0 _ r 1 / runtime / o at . h # 1 3 4 ĊĠĠĠ Ġprivate Ġval Ġm Header Size : ĠLong Ġ= ĊĠĠĠĠĠĠĠĠ 1 9 Ġ* Ġ 4 Ġ+ Ġr af . read Bytes ( Const . HEADER _ OFFSET Ġ+ Ġ( 1 9 Ġ- Ġ 1 ) Ġ* Ġ 4 , Ġ 4 ). toInt (). to Long () ĊĠĠĠ Ġprivate Ġval Ġm Dex Checksum Offset : ĠLong Ġ= ĊĠĠĠĠĠĠĠ ĠConst . HEADER _ OFFSET Ġ+ Ġr af . read Bytes ( Const . HEADER _ OFFSET Ġ+ Ġ 6 Ġ* Ġ 4 , Ġ 4 ). toInt (). to Long () ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 8 . 1 . 0 _ r 1 / compiler / o at _ writer . cc # 2 8 7 ĊĠĠĠ Ġoverride Ġfun Ġnext Checksum ( pos : ĠLong ): ĠLong Ġ= Ġpos Ġ+ Ġ 6 Ġ* Ġ 4 Ċ } Ċ Ċ // ĠP IE Ġ( 9 . 0 ) Ċ open Ġclass ĠO at Header 1 3 8 ( raf : ĠRandom Access File ) Ġ: ĠO at Header 1 3 1 ( raf ) Ġ{ ĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 9 . 0 . 0 _ r 1 / runtime / o at . h # 3 6 ĊĠĠĠ Ġoverride Ġval Ġversion : ĠString Ġ= ĠConst . ANDROID _ 9 ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 9 . 0 . 0 _ r 1 / runtime / o at . h # 1 3 5 ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 9 . 0 . 0 _ r 1 / dex 2 o at / linker / o at _ writer . cc # 3 1 5 ĊĠĠĠ Ġoverride Ġfun Ġnext Checksum ( pos : ĠLong ): ĠLong Ġ= Ġpos Ġ+ Ġ 8 Ġ* Ġ 4 Ċ } Ċ Ċ // ĠQ Ġ( 1 0 ) Ċ open Ġclass ĠO at Header 1 7 0 ( raf : ĠRandom Access File ) Ġ: ĠO at Header 1 3 8 ( raf ) Ġ{ ĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 1 0 . 0 . 0 _ r 1 / runtime / o at . h # 3 6 ĊĠĠĠ Ġoverride Ġval Ġversion : ĠString Ġ= ĠConst . ANDROID _ 1 0 ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 1 0 . 0 . 0 _ r 1 / runtime / o at . h # 1 1 6 ĊĠĠĠ Ġoverride Ġval Ġheader Size : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Header Size ĊĠĠĠ Ġ// Ġoverride Ġval Ġheader Fields : ĠInt Ġ= Ġ 1 4 ĊĊĠĠĠ Ġprivate Ġval Ġm Header Size : ĠLong Ġ= ĊĠĠĠĠĠĠĠĠ 1 4 Ġ* Ġ 4 Ġ+ Ġr af . read Bytes ( Const . HEADER _ OFFSET Ġ+ Ġ( 1 4 Ġ- Ġ 1 ) Ġ* Ġ 4 , Ġ 4 ). toInt (). to Long () ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 1 0 . 0 . 0 _ r 1 / dex 2 o at / linker / o at _ writer . cc # 3 2 5 Ċ } Ċ Ċ // ĠR Ġ( 1 1 ) Ċ open Ġclass ĠO at Header 1 8 3 ( raf : ĠRandom Access File ) Ġ: ĠO at Header 1 7 0 ( raf ) Ġ{ ĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 1 1 . 0 . 0 _ r 1 / runtime / o at . h # 3 6 ĊĠĠĠ Ġoverride Ġval Ġversion : ĠString Ġ= ĠConst . ANDROID _ 1 1 ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 1 1 . 0 . 0 _ r 1 / runtime / o at . h # 1 1 9 ĊĠĠĠ Ġoverride Ġval Ġheader Size : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Header Size ĊĠĠĠ Ġ// Ġoverride Ġval Ġheader Fields : ĠInt Ġ= Ġ 1 5 ĊĊĠĠĠ Ġprivate Ġval Ġm Header Size : ĠLong Ġ= ĊĠĠĠĠĠĠĠĠ 1 5 Ġ* Ġ 4 Ġ+ Ġr af . read Bytes ( Const . HEADER _ OFFSET Ġ+ Ġ( 1 5 Ġ- Ġ 1 ) Ġ* Ġ 4 , Ġ 4 ). toInt (). to Long () ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 1 1 . 0 . 0 _ r 1 / dex 2 o at / linker / o at _ writer . cc # 3 2 6 Ċ } Ċ Ċ // ĠS Ġ( 1 2 ) Ċ open Ġclass ĠO at Header 1 9 5 ( raf : ĠRandom Access File ) Ġ: ĠO at Header 1 8 3 ( raf ) Ġ{ ĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 1 2 . 0 . 0 _ r 1 / runtime / o at . h # 3 6 ĊĠĠĠ Ġoverride Ġval Ġversion : ĠString Ġ= ĠConst . ANDROID _ 1 2 ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 1 2 . 0 . 0 _ r 1 / runtime / o at . h # 1 2 5 ĊĠĠĠ Ġoverride Ġval Ġheader Size : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Header Size ĊĠĠĠ Ġ// Ġoverride Ġval Ġheader Fields : ĠInt Ġ= Ġ 1 6 ĊĊĠĠĠ Ġprivate Ġval Ġm Header Size : ĠLong Ġ= ĊĠĠĠĠĠĠĠĠ 1 6 Ġ* Ġ 4 Ġ+ Ġr af . read Bytes ( Const . HEADER _ OFFSET Ġ+ Ġ( 1 6 Ġ- Ġ 1 ) Ġ* Ġ 4 , Ġ 4 ). toInt (). to Long () ĊĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - 1 2 . 0 . 0 _ r 1 / dex 2 o at / linker / o at _ writer . cc # 3 2 6 ĊĠĠĠ Ġoverride Ġfun Ġnext Checksum ( pos : ĠLong ): ĠLong Ġ= Ġpos Ġ+ Ġ 1 0 Ġ* Ġ 4 Ċ } Ċ Ċ // ĠS v 2 Ġ( ?? ?) Ċ class ĠO at Header 1 9 9 ( raf : ĠRandom Access File ) Ġ: ĠO at Header 1 9 5 ( raf ) Ġ{ ĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - s - v 2 - preview - 1 / runtime / o at . h # 3 6 ĊĠĠĠ Ġoverride Ġval Ġversion : ĠString Ġ= ĠConst . ANDROID _ DEV ĊĠĠĠ Ġ// Ġhttps :// android . google source . com / platform / art / +/ refs / tags / android - s - v 2 - preview - 1 / runtime / o at . h # 1 2 5 Ċ }