
    ,jN                     r    d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	 d dl
mZ d dlmZ  G d de      Zy)    N)General)download_fileget_data_dirhost)Logger)	containerc                       e Zd ZdZdZdZdZdZej                  j                  eddd      Zd	d
gZdZdZd Zd Zd Zd Zd Zd Zd Zy)Magiskzmagisk deltasystemzGhttps://github.com/mistrmochov/magiskdeltaorig/raw/main/app-release.apk
magisk.apkz/tmp/magisk_unpacketcinitmagiskzetc/init/magiskzetc/init/bootanim.rcz
service bootanim /system/bin/bootanimation
    class core animation
    user graphics
    group graphics audio
    disabled
    oneshot
    ioprio rt 0
    task_profiles MaxPerformance
    
a  
on post-fs-data
    start logd
    exec u:r:su:s0 root root -- /system/etc/init/magisk/magiskpolicy --live --magisk
    exec u:r:magisk:s0 root root -- /system/etc/init/magisk/magiskpolicy --live --magisk
    exec u:r:update_engine:s0 root root -- /system/etc/init/magisk/magiskpolicy --live --magisk
    mkdir /dev/magisk_iqeoVo2mDrO 700
    exec u:r:su:s0 root root -- /system/etc/init/magisk/magisk64 --auto-selinux --setup-sbin /system/etc/init/magisk /dev/magisk_iqeoVo2mDrO
    exec u:r:su:s0 root root -- /dev/magisk_iqeoVo2mDrO/magisk --auto-selinux --post-fs-data

on nonencrypted
    exec u:r:su:s0 root root -- /dev/magisk_iqeoVo2mDrO/magisk --auto-selinux --service

on property:vold.decrypt=trigger_restart_framework
    exec u:r:su:s0 root root -- /dev/magisk_iqeoVo2mDrO/magisk --auto-selinux --service

on property:sys.boot_completed=1
    mkdir /data/adb/magisk 755
    exec u:r:su:s0 root root -- /dev/magisk_iqeoVo2mDrO/magisk --auto-selinux --boot-complete
   
on property:init.svc.zygote=restarting
    exec u:r:su:s0 root root -- /dev/magisk_iqeoVo2mDrO/magisk --auto-selinux --zygote-restart
   
on property:init.svc.zygote=stopped
    exec u:r:su:s0 root root -- /dev/magisk_iqeoVo2mDrO/magisk --auto-selinux --zygote-restart
    c                 0   t         j                  j                  | j                        rt        j                  | j                         t        j                  dj                  | j                               t        | j                  | j                         y )Nz-Downloading latest Magisk-Delta to {} now ...)
ospathisfiledownload_locremover   infoformatr   dl_linkselfs    ,/home/ubuntu/waydroid_script/stuff/magisk.pydownloadzMagisk.download8   s\    77>>$++,IId''(CJJ4K\K\]^dllD$5$56    c                    t        j                  d       t        j                  j	                  | j
                  | j                        }t               }t        j                  |t        j                  j	                  |dd      d       y )NzAdditional setupadbr   Tdirs_exist_ok)
r   r   r   r   joincopy_dir
magisk_dirr   shutilcopytree)r   magisk_absolute_dirdata_dirs      r   setupzMagisk.setup?   sV    &' ggll4==$//J>+RWW\\(E8-Tdhir   c                    t         j                  j                  | j                  | j                        }t         j                  j                  |      st        j                  |d       t         j                  j                  t         j                  j                  | j                  d            s?t        j                  t         j                  j                  | j                  d      d       t        j                  d       t         j                  j                  | j                  d| j                  d         }t        j                  |      D ]  \  }}}|D ]}  }t         j                  j                  ||      }t        j                  d|      }t         j                  j                  ||j                  d            }t        j                   ||         t        j                   | j"                  t         j                  j                  |d	             t        j$                  t         j                  j                  | j                  d
d      t         j                  j                  |d      d       g d}	|	D ]_  }
t        j                   t         j                  j                  | j                  d
|
      t         j                  j                  ||
             a t         j                  j                  | j                  | j&                  ddd      }t         j                  j                  |      dz   }t)        j*                  |d      5 }|j-                  | j.                  j1                  d             d d d        t+        |d      5 }|j-                  | j.                  | j2                  z          d d d        y # 1 sw Y   GxY w# 1 sw Y   y xY w)NT)exist_oksbinzCopying magisk libs now ...libr   zlib(.*)\.so   r   assetschromeosr    )z
addon.d.shzboot_patch.shzstub.apkzutil_functions.shr   r   bootanim.rcz.gzwbzutf-8w)r   r   r"   r#   r$   existsmakedirsr   r   
extract_toarchwalkresearchgroupr%   copyfiler   r&   	partitiongzipopenwriteoringinal_bootanimencodebootanim_component)r   r'   lib_dirparentdirnames	filenamesfilenameo_pathn_pathassets_filesfbootanim_pathgz_filenamef_gzinitfiles                  r   copyzMagisk.copyE   s    ggll4==$//Jww~~12KK+d;ww~~bggll4==&ABKKT]]F;dK12'',,ttyy|D+-777+; 	0'FHi% 0gx899]H=&98>>!;LM/	0	0 	))277<<8KL+Y[T__h
KRWW\\ZmoyMz  KO  	P
  	nAOOBGGLL(AFUhjkHlm	n
 T]]DNNE6S`aggll=1%7YY{4( 	@DJJt..55g>?	@-% 	LNN42243J3JJK	L 	L	@ 	@	L 	Ls   +O)OOOc                 @   d|j                  d      v rg d}ng d}t        j                  |      j                  }t        j                  j                  |      r	||d   z  }n||d   z  }t        j                  ||d   |d          t        j                  ||       y )	Nr   /)r   i    rT   )r   r   rT   i        r   r.   )splitr   statst_moder   isdirchownchmod)r   r   permsmodes       r   set_path_permzMagisk.set_path_permj   s    tzz#&+E(Ewwt}$$77==E!HDE!HD
uQxq*
tr   c                 D    | j                          | j                          y )N)delete_upperr)   r   s    r   extra1zMagisk.extra1z   s    

r   c                    t        j                         rd}g d}|D ]  }t        j                  j	                  ||      }t        j                  j                  |      rt        j                  |       Xt        j                  j                  |      s t        j                  j                  |      st        j                  |        y y )Nz/var/lib/waydroid/overlay_rw)z"system/system/etc/init/bootanim.rcz%system/system/etc/init/bootanim.rc.gzzsystem/system/etc/init/magiskz"system/system/addon.d/99-magisk.shz'vendor/etc/selinux/precompiled_sepolicy)r   use_overlayfsr   r   r"   rZ   r%   rmtreer   r4   r   )r   sys_overlay_rwfilesrL   files        r   ra   zMagisk.delete_upper   s    ""$;NE  $ww||NA677==&MM$'WW^^D)RWW^^D-AIIdO$ %r   c                    | j                          t               }t        j                  j	                  |d      t        j                  j	                  |d      g}|D ]l  }t        j                  j                  |      rt        j                  |       8t        j                  j                  |      sXt        j                  |       n t        j                  j	                  | j                  | j                  ddd      }t        j                         r6t        j                  j                  |      rt        j                  |       y y t        |d      5 }|j!                  | j"                         d d d        y # 1 sw Y   y xY w)Nzadb/magisk.dbz
adb/magiskr   r   r1   r3   )ra   r   r   r   r"   rZ   r%   re   r   r   r#   r=   r   rd   r4   r?   r@   rA   )r   r(   rg   rh   rM   rP   s         r   extra2zMagisk.extra2   s   >GGLL?3GGLL<0
  	 Dww}}T"d#%		$		 
 T]]DNNE6S`a""$ww~~m,		-( - mS) 8Xt6678 8 8s   E>>FN)__name__
__module____qualname__idr=   r   dl_file_namer6   r   r   r"   r$   rg   rA   rC   r   r)   rQ   r_   rb   ra   rj    r   r   r
   r
   
   st    	BIWGL%JiAJ 67E
67j#LJ 
$$8r   r
   )r>   r   r%   r9   stuff.generalr   tools.helperr   r   r   tools.loggerr   toolsr   r
   rp   r   r   <module>ru      s.     	  	 ! : :  Y8W Y8r   