
    "j                     V    d dl Z d dlmZ  G d d      Z G d d      Z G d de      Zy)	    N)Pluginc                       e Zd Zd Zd Zy)Activityc                 .    || _         || _        || _        y N)packageactivitypid)selfr   r	   r
   s       ^/var/www/oz-panel.ru/ozpay-pub/venv/lib/python3.12/site-packages/ppadb/plugins/device/utils.py__init__zActivity.__init__   s         c                 d    dj                  | j                  | j                  | j                        S )Nz
{}/{} - {})formatr   r	   r
   )r   s    r   __str__zActivity.__str__   s#    ""4<<IIr   N)__name__
__module____qualname__r   r    r   r   r   r      s    
Jr   r   c                       e Zd Zd Zy)MemInfoc                     t        |      | _        t        |      | _        t        |      | _        t        |      | _        t        |      | _        t        |      | _        t        |      | _        y r   )intpssprivate_dirtyprivate_cleanswapped_dirty	heap_size
heap_alloc	heap_free)r   r   r   r   r   r   r   r    s           r   r   zMemInfo.__init__   sU    s8 / / /Yj/Yr   N)r   r   r   r   r   r   r   r   r      s    (r   r   c                   8    e Zd Zd Zd Zd Zd	dZd Zd Zd Z	y)
Utilsc                 2    | j                         }|r|d   S y )Nr   )get_top_activities)r   
activitiess     r   get_top_activityzUtils.get_top_activity   s     ,,.
a= r   c                 6   d}d}| j                  |      }g }|j                  d      D ]m  }t        j                  ||      }|s|j	                  t        |j                  d      |j                  d      t        |j                  d                         o |S )Nz3ACTIVITY\s([\w\.]+)/([\w\.]+)\s[\w\d]+\spid=([\d]+)z$dumpsys activity top | grep ACTIVITY
         )shellsplitresearchappendr   groupr   )r   patterncmdresultr%   linematchs          r   r$   zUtils.get_top_activities"   s    G4C
LL& 	aDIIgt,E!!(5;;q>5;;q>3u{{[\~K^"_`	a
 r   c           	          t        j                  d      }dj                  |      }| j                  |      }|j	                  |d      }|rt        di |j                         S t        ddddddd      S )Nz\s*TOTAL\s*(?P<pss>\d+)\s*(?P<private_dirty>\d+)\s*(?P<private_clean>\d+)\s*(?P<swapped_dirty>\d+)\s*(?P<heap_size>\d+)\s*(?P<heap_alloc>\d+)\s*(?P<heap_free>\d+)zdumpsys meminfo {}r   r   )r.   compiler   r,   r/   r   	groupdict)r   package_nametotal_meminfo_rer3   r4   r6   s         r   get_meminfozUtils.get_meminfo/   sv    :: '> ? #)),7C ''2/U__.//1aAq!Q//r   c                     ddg}|D ]&  }| j                  |j                  |            }|s& n r|j                         d   S y )Nzps | grep {}zps -A | grep {}r)   )r,   r   r-   )r   r:   toyboxcmdsr3   r4   s         r   get_pidzUtils.get_pidA   sT    
  12 	CZZ

< 89F	
 <<>!$$r   c                     dj                  |      }| j                  |      j                         }d}|r)t        j                  ||      }|j                  d      }|S y )Nz dumpsys package {} | grep userIdzuserId=([\d]+)r)   r   r,   stripr.   r/   r1   )r   r:   r3   r4   r2   r6   uids          r   get_uidzUtils.get_uidQ   sU    077EC&&("IIgv.E++a.CJr   c                     | j                  dj                  |            }t        t        d |j	                  d                  S )Nzls /proc/{}/taskc                 "    | j                         S r   )rC   )r5   s    r   <lambda>z Utils.get_tids.<locals>.<lambda>`   s    TZZ\ r   r(   )r,   r   listmapr-   )r   r
   r4   s      r   get_tidszUtils.get_tids^   s8    .55c:;C16<<3EFGGr   c                     dj                  |      }| j                  |      j                         }d}|r)t        j                  ||      }|j                  d      }|S y )Nz%dumpsys package {} | grep versionNamezversionName=([\d\.]+)r)   rB   )r   r:   r3   r4   r2   r6   versions          r   get_package_version_namezUtils.get_package_version_nameb   sU    5<<\JC&&()IIgv.Ekk!nGNr   N)F)
r   r   r   r&   r$   r<   r@   rE   rK   rN   r   r   r   r"   r"      s&    0$ Hr   r"   )r.   ppadb.pluginsr   r   r   r"   r   r   r   <module>rP      s/    	  J J( (SF Sr   