package Ġcom . dr aco . sub core Ċ Ċ import Ġandroid . app . Notification Channel Ċ import Ġandroid . app . Notification Manager Ċ import Ġandroid . app . Service Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . IB inder Ċ import Ġandroid . support . v 4 . app . Notification Compat Ċ import Ġcom . top john wu . superuser . Shell Ċ Ċ class ĠBoot Service Notification Ġ: ĠService () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠCHAN NEL _ ID Ġ= Ġ" sub core _ boot _ notification " ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġchannel : ĠNotification Channel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnotification Manager : ĠNotification Manager ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontainer : ĠShell . Container ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ( intent : ĠIntent ?): ĠI Binder ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdisplay Notification () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Ġ= ĠNotification Channel ( CHANNEL _ ID , Ġ" Initializing ", ĠNotification Manager . IMPORT ANCE _ DEFAULT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Manager Ġ= Ġget System Service ( Context . NOTIFICATION _ SERVICE ) Ġas ĠNotification Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Manager . create Notification Channel ( channel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotification Ġ= ĠNotification Compat . Builder ( this , ĠCHAN NEL _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ white _ icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title (" Initializing ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text (" Starting Ġdaemon Ġon Ġboot . "). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Foreground ( 1 , Ġnotification ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdismiss Notification () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 2 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Manager . delete Notification Channel ( CHANNEL _ ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart Command ( intent : ĠIntent , Ġflags : ĠInt , Ġstart Id : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġcontainer Ġ= ĠShell . Config . new Container () ĊĠĠĠĠĠĠĠ Ġdisplay Notification () ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! Shell . root Access ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss Notification () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSTART _ NOT _ STICK Y ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠUtils . editor Ġ= ĠUtils . prefs . edit () ĊĠĠĠĠĠĠĠ ĠUtils . arch Ġ= ĠUtils . get Architecture () ĊĠĠĠĠĠĠĠ ĠUtils . verify Compat ( application Context ) ĊĠĠĠĠĠĠĠ ĠUtils . bin Ġ= ĠUtils . get Bin Name () ĊĠĠĠĠĠĠĠ ĠUtils . path Bin Ġ= ĠUtils . get Bin Path ( application Context ) ĊĠĠĠĠĠĠĠ ĠUtils . write Bin ( application Context ) ĊĠĠĠĠĠĠĠ ĠUtils . run Bin () ĊĠĠĠĠĠĠĠ ĠUtils . editor . put Boolean (" enabled ", Ġtrue ). apply () ĊĊĠĠĠĠĠĠĠ Ġdismiss Notification () ĊĠĠĠĠĠĠĠ Ġreturn ĠSTART _ NOT _ STICK Y ĊĠĠĠ Ġ} Ċ }