OwlCyberSecurity - MANAGER
Edit File: hardware_hal.cpython-36.opt-1.pyc
3 `��gT-������������������@���sH��d�Z�ddlmZmZ�ddlZdZdZdZdZdZ dZ dZdZdZ dZdZdZdZdZdZdZdZdZdZdZdZdZdZd ZdZdZdZdZ dZ!d Z"d Z#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,d Z-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9d Z:dd��Z;dd��Z<dd��Z=dd��Z>dd��Z?dd��Z@dd��ZAdd��ZBdd ��ZCd!d"��ZDdS�)#z Get hardware info using HAL ����)�HalTree� HalDevice�����N�������������P�������������������� �������c��������������C���s����g�}�t�j��}|jdd�}t�j|d�}|j��}t��}x>|D�]6}|jd|�}t�j|d�}|j��} t| �} |j| ��q8W�t |j �}|S�)Nzorg.freedesktop.Halz/org/freedesktop/Hal/Managerzorg.freedesktop.Hal.Managerzorg.freedesktop.Hal.Device)�dbus� SystemBus� get_object� InterfaceZ GetAllDevicesr���ZGetAllPropertiesr����add�process_hal_nodes�head)�ret�busZhal_manager_objZhal_managerZdevice_listZhal_treeZudiZ device_obj�device� propertiesZhaldev� kudzu_list��r����"/usr/lib/python3.6/hardware_hal.py�read_hal\���s ���� r���c�������������C���s&��g�}t�|��|�_|�jr�|�j}i�}|�j|d<�tt|���|d<�|d�dkr�d|jkr\|jd�|d<�d|jkrt|jd�|d<�d|jkr�|jd�|d <�d |jkr�|jd �|d<�tt|���|d<�t|��}|r�t|�|d <�tt|���|d<�tt |���|d<�d|d<�|j |��x"|�jD�]}t|�}|j |���qW�|S�)N�classr���Zscsiz scsi.hostZprop1zscsi.targetZprop2zscsi.busZprop3zscsi.lunZprop4�driverr����descZpciTyper���Zdetached)�classify_hal�classification�parent�str�get_device_busr����get_device_driver�get_device_path�get_device_description�get_device_pcitype�appendZchildrenr����extend)�noder���r#����devZdevice_pathZchildZ child_listr���r���r���r���t���s8���� r���c�������������C���s^��d|�j�krdS�d|�j�kr\d|�j�kr\|�j�d�dkr\d|�j�d�j��krFdS�d|�j�d�j��kr\d S�d |�j�k�r�|�j�d �tkrzdS�|�j�d �tkr�|�j�d�tkr�d S�|�j�d �tkr�|�j�d�tkr�dS�|�j�d�tkr�dS�|�j�d�tkr�dS�|�j�d �t kr�|�j�d�t kr�dS�|�j�d �tk�r"|�j�d�tk�r"dS�|�j�d �t k�rZ|�j�d�tk�rFdS�|�j�d�tk�rZdS�|�j�d �tk�r~|�j�d�tk�r~dS�|�j�d �tk�r�|�j�d�tk�s�|�j�d�tk�r�dS�d|�j�k�r|�j�d�dk�r�dS�|�j�d�dk�r�dS�|�j�d�dk�r�dS�|�j�d�dk�rdS�d |�j�k�r.|�j�d �d!k�r.dS�d"|�j�k�r>d#S�d$|�j�k�sVd%|�j�k�rZd&S�d�S�)'Nz net.interface�NETWORKzinfo.productz info.category�inputZkeyboardZKEYBOARDZmouseZMOUSEzpci.device_classZVIDEOzpci.device_subclassZUSBZIDEZSCSIZRAIDZMODEMZSCANNERZCAPTUREZAUDIOZFIREWIREZSOCKETzstorage.drive_typeZcdromZCDROMZdiskZHDZfloppyZFLOPPYZtapeZTAPEzxen.typeZvbdzprinter.productZPRINTERzpci.product_idzusb.product_idZOTHER)r����lower�PCI_BASE_CLASS_DISPLAY�PCI_BASE_CLASS_SERIAL�PCI_CLASS_SERIAL_USB�PCI_BASE_CLASS_STORAGE�PCI_CLASS_STORAGE_IDE�PCI_CLASS_STORAGE_SCSI�PCI_CLASS_STORAGE_RAID�PCI_BASE_CLASS_COMMUNICATION�PCI_CLASS_COMMUNICATION_MODEM�PCI_BASE_CLASS_INPUT�PCI_CLASS_INPUT_SCANNER�PCI_BASE_CLASS_MULTIMEDIA�PCI_CLASS_MULTIMEDIA_VIDEO�PCI_CLASS_MULTIMEDIA_AUDIO�PCI_CLASS_SERIAL_FIREWIRE�PCI_BASE_CLASS_BRIDGE�PCI_CLASS_BRIDGE_PCMCIA�PCI_CLASS_BRIDGE_CARDBUS)r,���r���r���r���r!�������sr���� r!���c�������������C���sH���d|�j�kr|�j�d�}n.d|�j�kr@|�j�d�dkr4d}qD|�j�d�}nd}|S�)Nzstorage.buszinfo.bus�platformZMISC)r���)r,���r���r���r���r���r%�������s���� r%���c�������������C���s4���d|�j�kr|�j�d�}nd|�j�kr,|�j�d�}nd}|S�)Nzinfo.linux.driverznet.linux.driver�unknown)r���)r,���r���r���r���r���r&�����s���� r&���c�������������C���s|���d}d|�j�kr|�j�d�}n4d|�j�kr0|�j�d�}n|�jdkrNd|�j�krN|�j�d�}|rx|jd�rh|dd��}t|�dkrxd}|S�) a%�� Return the device file path. As kudzu did not return a string with the /dev/ prefix, this function will not, either. RHN's DB has a limit of 16 characters for the device path. If the path is longer than that, return None. If no device path is found, return None. Nzblock.devicezlinux.device_filer.���z net.interfacez/dev/r �������)r���r"���� startswith�len)r,���r-���r���r���r���r'�����s���� r'���c�������������C���sb���d|�j�kr.d|�j�kr.|�j�d�d�|�j�d��}n0d|�j�krD|�j�d�}nd|�j�krZ|�j�d�}nd}|S�)Nzinfo.vendorzinfo.product�|��)r���)r,���r ���r���r���r���r(���*��s���� r(���c�������������C���sr���d}d}d }d|�j�o |�j�d�dkkrj|�j}d|j�krd|j�d�dkrd|j�d�dks^|j�d�d krd|}qn|}n|}|S�)Nr���r���zinfo.busZpcizpci.device_classr ���zpci.device_subclassr ���r������)r���r#���)r,���ZPCI_TYPE_PCMCIAZPCI_TYPE_PCIZPCI_TYPE_NOT_PCIr#���Zpcityper���r���r���r)���7��s���� r)���c��������������C���s$���t�j��}�|�jdd�}t�j|d�}|S�)Nzorg.freedesktop.Halz%/org/freedesktop/Hal/devices/computerzorg.freedesktop.Hal.Device)r���r���r���r���)r���Zcomputer_objZcomputerr���r���r����get_hal_computerK��s ����rK���c��������������C���s,���dd�l�}�|�jd�\}}|�jd�\}}||fS�)Nr���z/etc/init.d/haldaemon statusz/etc/init.d/messagebus status)� subprocessZgetstatusoutput)ZcommandsZ hal_status�msgZdbus_statusr���r���r����check_hal_dbus_statusS��s����rN���)E�__doc__Zhaltreer���r���r���r4���r6���r5���ZPCI_CLASS_STORAGE_FLOPPYZPCI_CLASS_STORAGE_IPIr7���ZPCI_CLASS_STORAGE_OTHERZPCI_BASE_CLASS_NETWORKZPCI_CLASS_NETWORK_ETHERNETZPCI_CLASS_NETWORK_TOKEN_RINGZPCI_CLASS_NETWORK_FDDIZPCI_CLASS_NETWORK_ATMZPCI_CLASS_NETWORK_OTHERr1���ZPCI_CLASS_DISPLAY_VGAZPCI_CLASS_DISPLAY_XGAZPCI_CLASS_DISPLAY_3DZPCI_CLASS_DISPLAY_OTHERr<���r=���r>���ZPCI_CLASS_MULTIMEDIA_PHONEZPCI_CLASS_MULTIMEDIA_OTHERr@���ZPCI_CLASS_BRIDGE_HOSTZPCI_CLASS_BRIDGE_ISAZPCI_CLASS_BRIDGE_EISAZPCI_CLASS_BRIDGE_MCZPCI_CLASS_BRIDGE_PCIrA���ZPCI_CLASS_BRIDGE_NUBUSrB���ZPCI_CLASS_BRIDGE_RACEWAYZPCI_CLASS_BRIDGE_OTHERr8���ZPCI_CLASS_COMMUNICATION_SERIALZ PCI_CLASS_COMMUNICATION_PARALLELZ#PCI_CLASS_COMMUNICATION_MULTISERIALr9���ZPCI_CLASS_COMMUNICATION_OTHERr:���ZPCI_CLASS_INPUT_KEYBOARDZPCI_CLASS_INPUT_PENZPCI_CLASS_INPUT_MOUSEr;���ZPCI_CLASS_INPUT_GAMEPORTZPCI_CLASS_INPUT_OTHERr2���r?���ZPCI_CLASS_SERIAL_ACCESSZPCI_CLASS_SERIAL_SSAr3���ZPCI_CLASS_SERIAL_FIBERZPCI_CLASS_SERIAL_SMBUSr���r���r!���r%���r&���r'���r(���r)���rK���rN���r���r���r���r����<module>���s����)Z