o
    ½Í`7  ã                   @   s    d dl Z d dlmZ dd„ ZdS )é    N)Úto_bytesc           
   
   C   sV  |d }|   |dg¡ |d }|  || |d ¡ |   |d¡ |  d¡ t|dƒ ¡ }t|ƒd dkrA|tdƒ7 }t|ƒd dks3|  t|ƒd¡ |  d¡ t|ƒdkrXtd	ƒ‚|  |¡ |  d¡ t	j
jd
dd}dd„ |j_z| ddd|d¡ W n t	j
jy“ } z
t|ƒ W Y d }~nd }~ww |  d¡}	|	tddƒkr©td |	 ¡ ¡ƒ‚d S )NéP   i 
 é   r   éà   Zrbé   i 
  zpayload too largei  é   )ZidVendorZ	idProductc                  _   s   d S )N© )ÚargsÚkwargsr   r   úQD:\Phones\Redmi_Note_8_Pro\Recoveries\UnbrickRN8ProNoAuth\4.Bypass\src\exploit.pyÚ<lambda>#   s    zexploit.<locals>.<lambda>é¡   l   ¤#EC z'received {} instead of expected pattern)Úwrite32Úread32ÚechoÚopenÚreadÚlenr   ÚRuntimeErrorÚwriteÚusbZcoreÚfindZ_ctxZmanaged_claim_interfaceZctrl_transferZUSBErrorÚprintÚformatÚhex)
ÚdeviceÚwatchdog_addressÚvar_0Úvar_1ÚpayloadÚaddrZreadlZudevÚeÚpatternr   r   r   Úexploit   s8   
ÿ


€ÿ
ÿr#   )r   Ú
src.commonr   r#   r   r   r   r   Ú<module>   s    