This project was designed to help with building 802.11u Passpoint profiles for Android.
Building Passpoint profiles for Android can be difficult as it not as simple as creating an XML file and uploading a
certificate to your device.
A lot of other opperating systems have tools that make it easy to generate Hot Spot 2.0/Passpoint configurations.
So, I wanted to create a tool that can do that for Android. I wanted it to be easy to use, but keep the code simple so
that it can be used by inexperience developer.
I followed Google's documentation on how to build a Passpoint (Hotspot 2.0)
profile, and used some details from this parser. The document describes building the configurations for the network in XML and converting it to Base64. It also
talks about getting the certificate for the network authenication and having it be in Base64 for also (.cer file). Once
both pieces of data are in Base64 they will need to be put into a multipart/mixed MIME type. The multipart/mixed
than must be converted to Base64 also. To deliver the Passpoint profile to Android it must be sent from a website using
application/x-wifi-config content type.
CLI based tool to walk a user through generating and starting up a web server. Will still need to put .cer files into
the certificate folder. (optional).
python main.py
Both the profile xml file and the RADIUS server .cer file will need to be supplied.
Profiles
/profiles/<profile>.xml
Certificates
/certificates/<certificate>.cer
Start web server
python -m uvicorn --host 0.0.0.0 restapi:app
Using chrome navigate to http://{serverIP}:8000/passpoint.config?profile={profile.xml}&certificate={certificate}
This should prompt you to install the profile. If there was any error the Android device will return a generic error.
For examples on using the API navigate to http://{serverIP}:8000/docs