package Ġcom . top john wu . mag isk . core . download Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . core . net . to File Ċ import Ġcom . top john wu . mag isk . Dyn AP K Ċ import Ġcom . top john wu . mag isk . R Ċ import Ġcom . top john wu . mag isk . core . Info Ċ import Ġcom . top john wu . mag isk . core . isRunning As Stub Ċ import Ġcom . top john wu . mag isk . core . tasks . Hide AP K Ċ import Ġcom . top john wu . mag isk . core . utils . Media Store Utils . output Stream Ċ import Ġcom . top john wu . mag isk . k tx . rel a unch App Ċ import Ġcom . top john wu . mag isk . k tx . with Streams Ċ import Ġcom . top john wu . mag isk . k tx . writeTo Ċ import Ġjava . io . File Ċ import Ġjava . io . InputStream Ċ import Ġjava . io . OutputStream Ċ Ċ private Ġfun ĠContext . patch ( apk : ĠFile ) Ġ{ ĊĠĠĠ Ġval Ġpatched Ġ= ĠFile ( apk . parent , Ġ" patched . apk ") ĊĠĠĠ ĠHide AP K . patch ( this , Ġapk , Ġpatched , ĠpackageName , Ġapplication Info . non Localized Label ) ĊĠĠĠ Ġapk . delete () ĊĠĠĠ Ġpatched . rename To ( apk ) Ċ } Ċ Ċ private Ġfun ĠBase Downloader . notify Hide ( id : ĠInt ) Ġ{ ĊĠĠĠ Ġupdate ( id ) Ġ{ ĊĠĠĠĠĠĠĠ Ġit . set Progress ( 0 , Ġ 0 , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title ( getString ( R . string . hide _ app _ title )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text ("") ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġclass ĠD up OutputStream ( ĊĠĠĠ Ġprivate Ġval Ġo 1 : ĠOutputStream , ĊĠĠĠ Ġprivate Ġval Ġo 2 : ĠOutputStream Ċ ) Ġ: ĠOutputStream () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġwrite ( b : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġo 1 . write ( b ) ĊĠĠĠĠĠĠĠ Ġo 2 . write ( b ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġwrite ( b : ĠByteArray ?, Ġoff : ĠInt , Ġlen : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġo 1 . write ( b , Ġoff , Ġlen ) ĊĠĠĠĠĠĠĠ Ġo 2 . write ( b , Ġoff , Ġlen ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠ Ġo 1 . close () ĊĠĠĠĠĠĠĠ Ġo 2 . close () ĊĠĠĠ Ġ} Ċ } Ċ Ċ suspend Ġfun ĠBase Downloader . handle AP K ( subject : ĠSubject . Manager , Ġstream : ĠInputStream ) Ġ{ ĊĠĠĠ Ġfun Ġwrite ( output : ĠOutputStream ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġext Ġ= Ġsubject . external File . output Stream () ĊĠĠĠĠĠĠĠ Ġval Ġo Ġ= ĠD up OutputStream ( ext , Ġoutput ) ĊĠĠĠĠĠĠĠ Ġwith Streams ( stream , Ġo ) Ġ{ Ġsrc , Ġout Ġ-> Ġsrc . copy To ( out ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( isRunning As Stub ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapk Ġ= Ġsubject . file . to File () ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġsubject . notify ID () ĊĠĠĠĠĠĠĠ Ġwrite ( Dyn AP K . update ( this ). output Stream ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( Info . stub !!. version Ġ< Ġsubject . stub . version Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAlso Ġupgrade Ġstub ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Hide ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . fetch File ( subject . stub . link ). byte Stream (). writeTo ( apk ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpatch ( apk ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSimply Ġrel a unch Ġthe Ġapp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop Self () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrel a unch App ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite ( subject . file . output Stream ()) ĊĠĠĠ Ġ} Ċ } Ċ