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?
|
||||
This project shows how to do it using a mobileconfig file and hosting it on a Apache server.
|
||||
# Get iOS Device UDID
|
||||
|
||||
# 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">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>PayloadContent</key>
|
||||
<dict>
|
||||
<key>URL</key>
|
||||
<string><!-- URL to send the response to --></string>
|
||||
<string>http://your-domain/processes_data.php</string>
|
||||
<key>DeviceAttributes</key>
|
||||
<array>
|
||||
<string>UDID</string>
|
||||
<string>IMEI</string>
|
||||
<string>ICCID</string>
|
||||
<string>DEVICE_NAME</string>
|
||||
<string>VERSION</string>
|
||||
<string>PRODUCT</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>PayloadOrganization</key>
|
||||
<string><!-- a DNS-style name for the organization requesting (e.g., example.com) --></string>
|
||||
<string>UDID Finder</string>
|
||||
<key>PayloadDisplayName</key>
|
||||
<string><!-- a human-readable name for this request --></string>
|
||||
<string>Get Device UDID</string>
|
||||
<key>PayloadVersion</key>
|
||||
<integer>1</integer>
|
||||
<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>
|
||||
<string><!-- a reverse DNS-formatted identifier for this request (e.g., com.example.profile-request) --></string>
|
||||
<string>com.getudid.profile</string>
|
||||
<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>
|
||||
<string>Profile Service</string>
|
||||
</dict>
|
||||
</plist>
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
|
||||
|
||||
# sign the .mobileconfig file
|
||||
```
|
||||
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
|
||||
- Make sure to update the URL in device.mobileconfig to match your domain
|
||||
- For production use, HTTPS is recommended
|
||||
- The built-in PHP server is for development only
|
||||
|
Reference in New Issue
Block a user