Sora Watermark Remover - Allows you to remove the watermark from Sora videos.Try Now

CurateClick

github.com favicon

gidevice

Golang实现的跨平台工具库,用于与iOS设备通信,支持设备查询、应用管理、截图、定位修改等功能,无需越狱即可使用。

Check out gidevice on CurateClick

• Copy the embed code to showcase this product on your website

• Share on X to spread the word about this amazing tool

项目地址Go Module 版本: https://github.com/electricbubble/gidevice`CLI` 版本: https://github.com/electricbubble/gidevice-cli## 项目说明使用 Golang 实现的的与 iOS设备 进行通信的跨平台工具库> 所有功能无需越狱> macOS 可直接使用> Windows 需要先安装 iTunes 或者 usbmuxd> Linux 或其他需先安装 usbmuxd已实现功能: - 设备列表查询 - 开发者镜像挂载 - App启/停/卸载/安装 - 端口转发 - 截图 - XCTest - Syslog - CrashReport - 沙盒文件访问 - 定位修改/恢复 - Pair### 部分 CLI 版本使用示例#### Devicesshell$ gidevice list#### DeveloperDiskImageshell$ gidevice mount -l# gidevice mount -l -u=39xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7$ gidevice mount -d=/path/.../DeviceSupport/14.4/$ gidevice mount /path/.../DeviceSupport/14.4/DeveloperDiskImage.dmg /path/.../DeviceSupport/14.4/DeveloperDiskImage.dmg.signature#### Forwardshell# Default port local=8100 remote=8100$ gidevice forward$ gidevice forward -l=9100 -r=9100 -u=39xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx7### 部分 Go Module 版本使用示例#### Devicesgopackage mainimport (giDevice "github.com/electricbubble/gidevice""log")func main() {usbmux, err := giDevice.NewUsbmux()if err != nil {log.Fatalln(err)}devices, err := usbmux.Devices()if err != nil {log.Fatal(err)}for _, dev := range devices {log.Println(dev.Properties().SerialNumber, dev.Properties().ProductID, dev.Properties().DeviceID)}}#### DeveloperDiskImagegopackage mainimport ("encoding/base64"giDevice "github.com/electricbubble/gidevice""log")func main() {usbmux, err := giDevice.NewUsbmux()if err != nil {log.Fatal(err)}devices, err := usbmux.Devices()if err != nil {log.Fatal(err)}if len(devices) == 0 {log.Fatal("No Device")}d := devices[0]imageSignatures, err := d.Images()if err != nil {log.Fatalln(err)}for i, imgSign := range imageSignatures {log.Printf("[%d] %s\n", i+1, base64.StdEncoding.EncodeToString(imgSign))}dmgPath := "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/14.4/DeveloperDiskImage.dmg"signaturePath := "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/14.4/DeveloperDiskImage.dmg.signature"err = d.MountDeveloperDiskImage(dmgPath, signaturePath)if err != nil {log.Fatalln(err)}}#### Appgopackage mainimport (giDevice "github.com/electricbubble/gidevice""log""path/filepath")func main() {usbmux, err := giDevice.NewUsbmux()if err != nil {log.Fatalln(err)}devices, err := usbmux.Devices()if err != nil {log.Fatalln(err)}if len(devices) == 0 {log.Fatalln("No Device")}d := devices[0]bundleID := "com.apple.Preferences"pid, err := d.AppLaunch(bundleID)if err != nil {log.Fatalln(err)}err = d.AppKill(pid)if err != nil {log.Fatalln(err)}runningProcesses, err := d.AppRunningProcesses()if err != nil {log.Fatalln(err)}for _, process := range runningProcesses {if process.IsApplication {log.Printf("%4d\t%-24s\t%-36s\t%s\n", process.Pid, process.Name, filepath.Base(process.RealAppName), process.StartDate)}}}#### Screenshotgopackage mainimport (giDevice "github.com/electricbubble/gidevice""image""image/jpeg""image/png""log""os")func main() {usbmux, err := giDevice.NewUsbmux()if err != nil {log.Fatalln(err)}devices, err := usbmux.Devices()if err != nil {log.Fatalln(err)}if len(devices) == 0 {log.Fatalln("No Device")}d := devices[0]raw, err := d.Screenshot()if err != nil {log.Fatalln(err)}img, format, err := image.Decode(raw)if err != nil {log.Fatalln(err)}userHomeDir, _ := os.UserHomeDir()file, err := os.Create(userHomeDir + "/Desktop/s1." + format)if err != nil {log.Fatalln(err)}defer func() { _ = file.Close() }()switch format {case "png":err = png.Encode(file, img)case "jpeg":err = jpeg.Encode(file, img, nil)}if err != nil {log.Fatalln(err)}log.Println(file.Name())}#### SimulateLocationgopackage mainimport (giDevice "github.com/electricbubble/gidevice""log")func main() {usbmux, err := giDevice.NewUsbmux()if err != nil {log.Fatalln(err)}devices, err := usbmux.Devices()if err != nil {log.Fatalln(err)}if len(devices) == 0 {log.Fatalln("No Device")}d := devices[0]// https://api.map.baidu.com/lbsapi/getpoint/index.htmlif err = d.SimulateLocationUpdate(116.024067, 40.362639, giDevice.CoordinateSystemBD09); err != nil {log.Fatalln(err)}// https://developer.amap.com/tools/picker// https://lbs.qq.com/tool/getpoint/index.html// if err = d.SimulateLocationUpdate(120.116979, 30.252876, giDevice.CoordinateSystemGCJ02); err != nil {// log.Fatalln(err)// }// if err = d.SimulateLocationUpdate(121.499763, 31.239580,giDevice.CoordinateSystemWGS84); err != nil {// if err = d.SimulateLocationUpdate(121.499763, 31.239580); err != nil {// log.Fatalln(err)// }// err = d.SimulateLocationRecover()// if err != nil {// log.Fatalln(err)// }}

Latest Weekly Picks

seedance2.ai favicon
Weekly Pick

Seedance 2 Delivers High Fidelity Motion and Audio Sync

Seedance 2
nanobananaimg.com favicon
Weekly Pick

Nano Banana AI Image Generator for Professional Image Creation with Nano Banana Pro Models

Nano Banana
pslscale.com favicon
Weekly Pick

使用 Gemini 3 Pro 分析八字命理

人生 K 线
seedance15.ai favicon
Weekly Pick

Create Cinematic AI Videos from Text or Images with Seedance 1.5

Seedance 1.5 AI
tatted.ai favicon
Weekly Pick

The Tatted AI Tattoo Generator is a tool that allows you to create beautiful custom tattoos within seconds.

Tatted
pslscale.com favicon
Weekly Pick

Discover your PSL (Perceived Sexual Market Value) score with our AI-powered facial analysis

PSL Scale

IPYNB to PDF Converter – Free & Secure

www.reverie.im favicon
Weekly Pick

Dream It, Chat It, Create It

Reverie