new-readme
This commit is contained in:
@@ -1,4 +0,0 @@
|
|||||||
<IfModule mod_mime.c>
|
|
||||||
AddType text/xml .plist
|
|
||||||
AddType application/x-apple-aspen-config .mobileconfig
|
|
||||||
</IfModule>
|
|
96
readme.md
96
readme.md
@@ -1,64 +1,92 @@
|
|||||||
# How to get iOS UDID without a Mac or PC?
|
# Get iOS Device UDID
|
||||||
This project shows how to do it using a mobileconfig file and hosting it on a Apache server.
|
|
||||||
|
|
||||||
# Create the .mobileconfig file
|
A simple web application to get iOS device UDID using configuration profiles. Features a modern UI with device-specific experiences.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
```<?xml version="1.0" encoding="UTF-8"?>
|
- QR code for desktop users
|
||||||
|
- Direct download for iOS devices
|
||||||
|
- Automatic device detection
|
||||||
|
- Clean, modern UI
|
||||||
|
- One-click UDID copying
|
||||||
|
- Email sharing capability
|
||||||
|
|
||||||
|
## Project Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
├── index.html # Main page with device detection
|
||||||
|
├── instruction.php # Installation instructions
|
||||||
|
├── show_detail.php # UDID display page
|
||||||
|
├── device.mobileconfig # iOS configuration profile
|
||||||
|
├── get_mobileconfig.php # Profile delivery
|
||||||
|
└── processes_data.php # Profile data processing
|
||||||
|
```
|
||||||
|
|
||||||
|
## How It Works
|
||||||
|
|
||||||
|
1. Desktop users see a QR code to scan with their iOS device
|
||||||
|
2. iOS users get direct profile download
|
||||||
|
3. After installation, device information is displayed
|
||||||
|
4. Users can copy UDID or share via email
|
||||||
|
|
||||||
|
## Running the Project
|
||||||
|
|
||||||
|
Start the PHP development server:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
php -S localhost:3030
|
||||||
|
```
|
||||||
|
|
||||||
|
Then open http://localhost:3030 in your browser.
|
||||||
|
|
||||||
|
For iOS devices to access from other devices, use your local IP address:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
php -S 0.0.0.0:3030
|
||||||
|
```
|
||||||
|
|
||||||
|
Then access using http://your-local-ip:3030
|
||||||
|
|
||||||
|
## Technical Details
|
||||||
|
|
||||||
|
### device.mobileconfig
|
||||||
|
```xml
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<key>PayloadContent</key>
|
<key>PayloadContent</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>URL</key>
|
<key>URL</key>
|
||||||
<string><!-- URL to send the response to --></string>
|
<string>http://your-domain/processes_data.php</string>
|
||||||
<key>DeviceAttributes</key>
|
<key>DeviceAttributes</key>
|
||||||
<array>
|
<array>
|
||||||
<string>UDID</string>
|
<string>UDID</string>
|
||||||
<string>IMEI</string>
|
<string>DEVICE_NAME</string>
|
||||||
<string>ICCID</string>
|
|
||||||
<string>VERSION</string>
|
<string>VERSION</string>
|
||||||
<string>PRODUCT</string>
|
<string>PRODUCT</string>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
<key>PayloadOrganization</key>
|
<key>PayloadOrganization</key>
|
||||||
<string><!-- a DNS-style name for the organization requesting (e.g., example.com) --></string>
|
<string>UDID Finder</string>
|
||||||
<key>PayloadDisplayName</key>
|
<key>PayloadDisplayName</key>
|
||||||
<string><!-- a human-readable name for this request --></string>
|
<string>Get Device UDID</string>
|
||||||
<key>PayloadVersion</key>
|
<key>PayloadVersion</key>
|
||||||
<integer>1</integer>
|
<integer>1</integer>
|
||||||
<key>PayloadUUID</key>
|
<key>PayloadUUID</key>
|
||||||
<string><!-- a UUID-formatted unique identifier for this request (e.g., D77DD928-4312-4E9E-9562-690D695EC7CD) --></string>
|
<string>44D4B36F-01F5-4C6E-B474-F6B8BF6F8FF8</string>
|
||||||
<key>PayloadIdentifier</key>
|
<key>PayloadIdentifier</key>
|
||||||
<string><!-- a reverse DNS-formatted identifier for this request (e.g., com.example.profile-request) --></string>
|
<string>com.getudid.profile</string>
|
||||||
<key>PayloadDescription</key>
|
<key>PayloadDescription</key>
|
||||||
<string><!-- a human-readable description of what this request is for --></string>
|
<string>Install this profile to get your device UDID.</string>
|
||||||
<key>PayloadType</key>
|
<key>PayloadType</key>
|
||||||
<string>Profile Service</string>
|
<string>Profile Service</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- Make sure to update the URL in device.mobileconfig to match your domain
|
||||||
|
- For production use, HTTPS is recommended
|
||||||
# sign the .mobileconfig file
|
- The built-in PHP server is for development only
|
||||||
```
|
|
||||||
openssl smime -sign -signer <your ssl certificate file> -inkey <your private key file> -certfile <additional certificates if your issuer provides them> -nodetach -outform der -in <the basic .mobileconfig to sign> -out <the output file to save it as>
|
|
||||||
```
|
|
||||||
|
|
||||||
# deliver the .mobileconfig file
|
|
||||||
### SET Content-Type Header
|
|
||||||
```
|
|
||||||
application/x-apple-aspen-config
|
|
||||||
```
|
|
||||||
|
|
||||||
# Verify Keys (optional)
|
|
||||||
```
|
|
||||||
openssl x509 -noout -modulus -in server.crt | openssl md5
|
|
||||||
openssl rsa -noout -modulus -in server.key | openssl md5
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Source
|
|
||||||
https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/iPhoneOTAConfiguration/OTASecurity/OTASecurity.html#//apple_ref/doc/uid/TP40009505-CH3-SW1
|
|
||||||
|
Reference in New Issue
Block a user