
    "j@                     0   d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ  ej0                  e      Z	 e 	 d dlmZ   G d deeee	eeee
      Z#y# e$ r eZY #w xY w# e!$ r	 d dl"mZ  Y -w xY w)    N)	Transport)Serial)Input)Utils)WM)Traffic)CPUStat)BatteryStats)Sync)
AdbLogging)InstallError)quotec                   Z    e Zd ZdZdZd ZddZd ZddZd Z		 	 	 	 	 	 	 	 dd	Z
d
 Zd Zy)Devicez(Success|Failure|Error)\s?(.*)z((Success|Failure.*|.*Unknown package:.*)c                      || _         || _        y N)clientserial)selfr   r   s      P/var/www/oz-panel.ru/ozpay-pub/venv/lib/python3.12/site-packages/ppadb/device.py__init__zDevice.__init__%   s        Nc                 d    | j                   j                  |      }|r| j                  |       |S )N)timeout)r   create_connection	transport)r   set_transportr   conns       r   r   zDevice.create_connection)   s-    {{,,W,=NN4 r   c                     | j                         }t        |      }|5  |j                  ||||       d d d        y # 1 sw Y   y xY wr   )syncr   push)r   srcdestmodeprogress	sync_connr    s          r   _pushzDevice._push1   s@    IIK	I 	1IIc4x0	1 	1 	1s	   <Ac           
         t         j                  j                  |      st        dj	                  |            t         j                  j                  |      r| j                  ||||       y t         j                  j                  |      rt         j                  j                  |      }t        j                  |      D ]  \  }}}t         j                  j                  ||j                  |d            }	| j                  dj	                  ||	             |D ]S  }
| j                  t         j                  j                  ||
      t         j                  j                  ||	|
      ||       U  y y )NzCannot find {} zmkdir -p {}/{})ospathexistsFileNotFoundErrorformatisfiler'   isdirbasenamewalkjoinreplaceshell)r   r"   r#   r$   r%   r1   rootdirsfilesroot_dir_pathitems              r   r!   zDevice.push9   s   ww~~c"#$4$;$;C$@AAWW^^C JJsD$1WW]]3ww'',H%'WWS\ r!dE "Xt||C7L M

+224GH! rDJJrww||D$7dM[_9`bfhpqrr  r   c                     | j                         }t        |      }|5  |j                  ||      cd d d        S # 1 sw Y   y xY wr   )r    r   pull)r   r"   r#   r&   r    s        r   r<   zDevice.pullI   s<    IIK	I 	(99S$'	( 	( 	(s	   :Ac
                    t        j                  |      }
| j                  ||
       g }|r|j                  d       |r|j                  d       |r|j                  d       t	        |      dkD  r |j                  dj                  |             |r|j                  d       |r|j                  d       |r|j                  d       |	r|j                  d	       	 | j                  d
j                  dj                  |      t        |
                  }t        j                  | j                  |      }|r6|j                  d      dk(  r"	 | j                  dj                  |
             y|r|j                         }t        |
|d         t        |
|      # | j                  dj                  |
             w xY w)Nz-lz-rz-tr   z-i {}z-sz-fz-dz-gzpm install {} {}    Successzrm -f {}T)r   tempr!   appendlenr.   r5   r3   	cmd_quoteresearchINSTALL_RESULT_PATTERNgroupgroupsr   )r   r+   forward_lock	reinstalltestinstaller_package_nameshared_mass_storageinternal_system_memory	downgradegrand_all_permissionsr#   
parametersresultmatchrI   s                  r   installzDevice.installP   su    yy		$
**40j''-""4(%&*J,=,=gnnMc>d,e
 1 1$ 7!:#4#4T#:j''- *"3"3D"9	0ZZ 2 9 9#((::NPYZ^P_ `aFIId996BEQ94 JJz((./ "433"400JJz((./s   A/F /-F "F>c                 N    | j                  dj                  |            }d|v ryy)Nz
pm path {}zpackage:TF)r5   r.   )r   packagerS   s      r   is_installedzDevice.is_installedu   s)    L//89r   c                 *   | j                  dj                  |            }t        j                  | j                  |      }|r|j                  d      dk(  ry|r%t        j                  |j                  d             yt        j                  d       y)Nzpm uninstall {}r?   r@   TFz&There is no message after uninstalling)r5   r.   rE   rF   UNINSTALL_RESULT_PATTERNrH   loggererror)r   rW   rS   ms       r   	uninstallzDevice.uninstall}   sq    -44W=>IId33V<y(LL$LLABr   )TN)i  N)FFFr)   FFFF)__name__
__module____qualname__rG   rZ   r   r   r'   r!   r<   rU   rX   r^    r   r   r   r   !   sR    =I1r ( #')$)',&+#0Jr   r   )$rE   r*   ppadb.command.transportr   ppadb.command.serialr   ppadb.plugins.device.inputr   ppadb.plugins.device.utilsr   ppadb.plugins.device.wmr   ppadb.plugins.device.trafficr   ppadb.plugins.device.cpustatr	   !ppadb.plugins.device.batterystatsr
   
ppadb.syncr   ppadb.utils.loggerr   ppadbr   
get_loggerr_   r[   r-   	NameErrorIOErrorshlexr   rD   ImportErrorpipesr   rb   r   r   <module>rt      s    	 	 - ' , , & 0 0 :  ) 			x	( )(
hYub'7L h    
  )()s$   A: !B :BBBB