—
—
Type this into the car when it asks for the access code. It changes every minute; the car also accepts the two codes either side.
No car has ever reported under this id. The code above still works — it is worked out from the device id and the clock, not from anything the car has sent.
This car was fitted by someone else. Please contact the installer for the code.
The car says the code is wrong
Almost always the code simply rolled over while it was being typed — try the newest one. If the car's clock is off, one of these will work. Each row is that many minutes away from now.
Look up a car by device id
Eight digits, shown on the car's own “Enter access code” screen. The car does not need to have uploaded anything, or to have any connection at all.
Showing a car that is not in your list. This is not saved — it clears when the page is reloaded.
Android version
Apps installed, by vehicle
Vehicles
Grouped by model. A vehicle appears here the first time the app runs on it.
System vs installed
Where they came from
Installed apps
Settings activities per package
Settings screens on this car
Granted or not
Permissions Car Protect asks for on this vehicle
“Special” rows are app-ops and roles rather than manifest permissions — Usage Access is the one everything depends on.
Uploaded debug logs
Log
Last seen
Each car reports once a day while it has a connection. A gap means the vehicle
is switched off, out of coverage, or the app has stopped running — this cannot
tell those apart. Accounts for the separate /vaad page are handed
out on the Logins tab, by ticking "See when each car was last
seen"; those accounts see only the cars whose ids they are given.
Manage a car remotely
Cars pick these up on their daily check-in, apply them once, and then leave them alone — so a parent who unblocks something at the car keeps it unblocked. Sending the same order again does nothing; changing it is what makes a car act.
Fleet-wide orders are applied to every car first, then the ones for its system type, then the car's own — and the later ones win.
Only what you want to send NOW — it is added to whatever this car already has, so leaving this empty changes nothing. One per line; app names and Settings screen names go in the same box — copy them straight out of a car's Debug monitor or its Settings screens tab.
How this one car keeps something a fleet-wide or system-type order took away. Available for a single car only.
The same choices the app itself offers. “Only the screens listed above” uses the Settings screen names in the block box — blocking the whole app supersedes them, which is why this is one choice and not two switches. “Open the whole Settings app” turns both off: nothing in Settings is blocked, which is different from “leave the car as it is” — that one changes nothing, this one is an instruction.
Orders in force
What each car will be told the next time it checks in. A car that has not checked in since a change has not applied it yet.
Give someone a login
Tick what the account may do. Anything not ticked is refused by the server, not just hidden.
Account created
Send these now. The password is not stored and cannot be shown again — if it is lost, remove the account and add it back.
Accounts
Accounts set through VIEWER_USERS, VAAD_USERS or ADMIN_USERS are configured in Cloudflare and do not appear here. An account missing from this list was never saved and cannot sign in.
An account marked from its old role was created before permissions existed and has never been given a set of its own. It works exactly as it always did; press Edit and save to make that explicit.
Groups
A group is made of people who already have access — logins, approved installers and whole domains — picked from a list, and it can include the API site, which is the access-code bundle. While Lock access codes is on, everyone in a group reads codes for cars fitted by anyone else in it, and the API site reads the cars of the groups it is in and nothing more. A person's groups can also be ticked when they are added, or later from their own Edit.
Approved installers
Removing an address stops it setting up any further cars. Cars it has already set up are unaffected. A row shown as a whole domain accepts every address at it, so removing that one row withdraws the lot.
Cars that have been set up
Written by the app the first time each car completes setup: the owner's phone number, and who fitted it. Removing a row clears the record here only — the car itself is unaffected and keeps working.
Sign-in page
Two of these decide who may sign in at all. They are enforced on the server, so switching one off stops the password working — it does not merely hide a link. Your own admin sign-in is never affected by them.
What the cars are reporting
The last ten things the cars have said, newest first — every
registration, check-in and sync, whether it passed or not.
verified means that car attests and the switch above is safe
for it. Anything else is the reason it did not, in Google’s words.
Switch on only once the cars you care about read verified.
Pay for an install
Type the car's eight-digit device id — the same number it shows on its Enter access code screen. Card details are typed on Stripe's own site, never here.
What an install costs
Held on the server and read when a payment starts, so the amount charged is never something a browser sent. The switches that turn payments on and put this page in front of installers are on the Sign-in page tab.
Installs paid for
Every car fitted before you started charging
Records every commissioned car that has never been paid for as settled, without charging anything. For the fleet that was already on the road when payments were switched on.
They are filed as waivers, not payments: nothing is charged and nothing is added to the takings. It asks how many first, and each one has to be undone individually afterwards.