A tweak for jailbroken iPhones that can be connected with Beeper Mini to provide phone number registration functionality
This is a rewrite of the original beepserv with some code from the original.
There is also JJTech's ValidationRelay now which allows you to use non-jailbroken iOS devices and can be more reliable if you're having issues with this tweak.
Joshua Higgins' blog has a great guide on how to get iMessage working with Beeper.
The tweak is now split into 4 parts:
- Application: An app that shows the registration code, logs, and allows state notifications to be turned on or off
- Controller: A launch daemon that manages basically everything, including the relay connection
- NotificationHelper: This hooks into
SpringBoard
and sends local notifications - IdentityServices: The part that hooks into
identityservicesd
and handles the generation of validation data
The app is pretty simple and does not have an icon yet.
You need to have Theos installed.
Also make sure Theos is up-to-date by running $THEOS/bin/update-theos
(or make update-theos
).
make clean package FINALPACKAGE=1
The Makefiles currently assume you have Xcode 11.7 installed at /Applications/Xcode_11.7.app
when packaging for rootful to ensure compatibility with A12+ devices on iOS 12.0-13.7 (more here). You can either download this version from Apple or edit the Makefiles if you want to build with a different version.
make clean package THEOS_PACKAGE_SCHEME=rootless FINALPACKAGE=1
This tweak should automatically run in the background, connected to Beeper's relay service, available to facilitate registering your Android's phone number with Apple.
To start this registration process, open the beepserv app, and enter the displayed registration code into Beeper Mini, and it should automatically start the registration process.
If you cannot find the code, SSH into the device and run cat /var/mobile/.beepserv_state
(rootful) or cat /var/jb/var/mobile/.beepserv_state
(rootless) to view the registration code.
If you are hosting your own registration relay server instead of using the default one, run the commands below on your device (replacing the URL with the one you want to use).
launchctl unload /Library/LaunchDaemons/com.beeper.beepservd.plist
echo "https://registration-relay.beeper.com/api/v1/provider" > /var/mobile/.beepserv_relay_url
rm -f /var/mobile/.beepserv_state
launchctl load /Library/LaunchDaemons/com.beeper.beepservd.plist
launchctl unload /var/jb/Library/LaunchDaemons/com.beeper.beepservd.plist
echo "https://registration-relay.beeper.com/api/v1/provider" > /var/jb/var/mobile/.beepserv_relay_url
rm -f /var/jb/var/mobile/.beepserv_state
launchctl load /var/jb/Library/LaunchDaemons/com.beeper.beepservd.plist