When ZeroPhone is first booted, there are things users will want to do:
Change password for the pi user
Regenerate SSH keys (for the same user)
Adjust WiFi country
Connect to a WiFi network
Adjust date, time and timezone
Expand the filesystem (since the SD card might be larger than the SD image we provide, which is tailored to a 2GB card at the moment)
We need an app that walks the user through these functions on the first boot. However, these functions are something that should be included in other ZPUI apps either way, as users might want to change only one of those. So, we might want to register these functions as actions of some kind.
Plan:
[ ] Make apps with those functions:
[x] Make a new app in System category allowing to change the password from the default one
[x] Make an app to enable/disable SSH and regenerate SSH keys
[ ] Add a new app that'd allow you to expand the filesystem, or add it to the System=>Partitions app
[x] Add the timezone set function to the Clock app (thanks to @derivmug )
[ ] Add the time/date set function to Clock app
[x] Add a new app in Networking category that'd allow adjusting WiFi country (thanks to @derivmug )
[x] Modify the Wireless app so that there's a "Connect to a wireless network" wizard
[x] Expose these functions into a common app that'd check for some kind of flag and set it once all the settings are made
[x] Maybe make some kind of Context object method that other apps could use to add their own "on first boot" functions, like context.register_action, but context.register_firstboot_action?
When ZeroPhone is first booted, there are things users will want to do:
pi
userWe need an app that walks the user through these functions on the first boot. However, these functions are something that should be included in other ZPUI apps either way, as users might want to change only one of those. So, we might want to register these functions as actions of some kind.
Plan:
System
category allowing to change the password from the default oneSystem=>Partitions
appClock
app (thanks to @derivmug )Clock
appNetworking
category that'd allow adjusting WiFi country (thanks to @derivmug )Wireless
app so that there's a "Connect to a wireless network" wizardContext
object method that other apps could use to add their own "on first boot" functions, likecontext.register_action
, butcontext.register_firstboot_action
?Notes:
raspi-config
sourceraspi-config
/usr/share/zoneinfo/iso3166.tab
(raspi-config
part here)