libimobiledevice-win32 / imobiledevice-net

.NET (C#, VB.NET,...) bindings for libimobiledevice
GNU Lesser General Public License v2.1
297 stars 77 forks source link

I get an error #207

Open PierrunoYT opened 1 year ago

PierrunoYT commented 1 year ago

can someone try to run this code?

I tried it with my own device and with a broken one and i get the same results

import subprocess

def diagnose_iphone_hardware(): """ Performs a hardware diagnosis on an iPhone.

Returns:
    A list of the hardware components that are not working properly.
"""

# Set the full path to the ideviceinfo.exe file
ideviceinfo_path = r"C:\Windows\libimobiledevice.1.2.1-r1122-win-x64\ideviceinfo.exe"

# Check if an iPhone is connected.
device_list = subprocess.check_output([ideviceinfo_path, "-k", "ProductType"])
device_list_string = device_list.decode("utf-8").strip()
if not device_list_string:
    print("No iPhone detected. Please connect an iPhone and try again.")
    return []

# Check the battery health.
battery_health = subprocess.check_output([ideviceinfo_path, "-k", "BatteryCurrentCapacity"])
battery_health_string = battery_health.decode("utf-8").strip()

if battery_health_string:
    if int(battery_health_string) != 100:
        print("Battery health is not 100%.")
else:
    print("Unable to retrieve battery health information.")

# Check the screen.
screen_status = subprocess.check_output([ideviceinfo_path, "-k", "DisplayStatus"])
screen_status_string = screen_status.decode("utf-8").strip()
if screen_status_string != "Good":
    print("Screen is not in good condition.")

# Check the camera.
camera_status = subprocess.check_output([ideviceinfo_path, "-k", "CameraStatus"])
camera_status_string = camera_status.decode("utf-8").strip()
if camera_status_string != "Good":
    print("Camera is not in good condition.")

# Check the speakers.
speakers_status = subprocess.check_output([ideviceinfo_path, "-k", "SpeakersStatus"])
speakers_status_string = speakers_status.decode("utf-8").strip()
if speakers_status_string != "Good":
    print("Speakers are not in good condition.")

# Check the microphone.
microphone_status = subprocess.check_output([ideviceinfo_path, "-k", "MicrophoneStatus"])
microphone_status_string = microphone_status.decode("utf-8").strip()
if microphone_status_string != "Good":
    print("Microphone is not in good condition.")

# Return a list of the hardware components that are not working properly.
return [
    "battery",
    "screen",
    "camera",
    "speakers",
    "microphone"
]

def main(): """ Performs a hardware diagnosis on an iPhone and prints the results. """

input("Please connect your iPhone and press Enter to continue...")
hardware_problems = diagnose_iphone_hardware()
if hardware_problems:
    print("The following hardware components are not working properly:")
    for hardware_problem in hardware_problems:
        print("* " + hardware_problem)
else:
    print("Hardware diagnosis failed.")

if name == "main": main()