Dev Switch for Android

FAQ

Everything the app does, and what it does not, in short answers.

Getting started

Does it need root?

No. Nothing in the app needs root. The developer switches, text size and locale tester need a permission granted over adb instead, a one-time setup that any phone with USB debugging can do.

Which Android versions are supported?

Android 7.0 and up. The locale tester needs Android 13, where per-app languages were introduced. Everything else works on every supported version.

What works without the adb setup?

Keep screen awake, mock location, route mode, the app inspector, the deep link tester and the device screen. The developer switches still show their live state without the setup; only changing them needs it.

Is there an account, a subscription or ads?

No. There is no sign-in, nothing to buy and no advertising. The app has no server of its own.

What is on the Home screen?

A dashboard. It surfaces whatever still needs setting up, gives each long-running tool a switch, and links to the rest. Search at the top finds any screen or developer switch by name.

How do I change the theme?

Settings, Appearance. System, light or dark. Pages like this one follow the same choice when opened from the app.

The adb setup

Are the adb permissions safe, and how do I undo them?

They give Dev Switch the same permissions Android's own Settings app uses to change developer options and per-app language. They apply to this app only. To undo one, run its command again with revoke in place of grant, or uninstall the app.

Does the permission survive app updates?

Yes. It is removed only by uninstalling the app or by revoking it over adb. After a reinstall, run the command again.

adb devices shows nothing, or says unauthorized.

Unplug and reconnect, and look at the phone: it shows an "Allow USB debugging?" prompt that must be accepted. On Windows the phone maker's USB driver may be needed. Try another cable if the phone only charges.

Can I do the setup over Wi-Fi?

Yes. Turn on Wireless debugging in Developer options, pair with adb pair and connect with adb connect, then run the same grant command.

Where do I find the command on the phone?

On the screen that needs it. The developer mode, display tuning and locale tester screens show a permission row until the grant is in place, with the exact commands and a Copy button.

Keep screen awake

How does the screen stay on after I switch to another app?

A small foreground service holds the screen on for as long as the session runs, whichever app is in front. That is why it needs the Display over other apps permission, which the screen asks for once.

Does it stop on its own?

Yes, on a timer you choose: 30 minutes, 1 hour, 2 hours, or until stopped. The default is 1 hour. It can also stop when you press the power button, or the moment the charger is pulled if you turn on Only while charging.

A session stopped before the timer.

Some phones, in particular Samsung, Xiaomi, Oppo and Vivo, end background services to save battery. Allow Dev Switch to ignore battery optimisation, which the app offers on the Permissions screen, and the session keeps running until you stop it.

How do I extend or stop it quickly?

From the notification: it has Stop and +30 min. Dismissing the notification also stops the session. There is a Quick Settings tile as well.

Will it drain the battery?

The screen is the main cost, as with any app that keeps it on. Dim while idle lowers the brightness during a session, and Only while charging keeps it to desk use.

Mock location and route mode

Mock location is on but apps still see my real position.

Android only accepts test positions from the app selected under Developer options, Select mock location app. Pick Dev Switch there once. The mock location screen shows a shortcut to that setting until it is done.

How do I choose the position?

Tap the map, drop a pin, or search a place name. Save places you come back to. You can also share a place from another app into Dev Switch: a geo: link or plain text with coordinates.

Does the mock survive a reboot?

Yes. A session that was running when the phone restarted resumes on its own.

What is route mode?

The same feeder, but the position walks a route between two points at a speed you choose, with live heading so the marker points where it is going. Start and end come from the map or from saved places. Pause and resume from a floating bar over any app.

Can mock and route run at the same time?

No. They share the same test position, so starting one while the other runs asks first and hands over cleanly.

Some apps refuse the mock position.

Apps can check whether a position came from a mock provider and choose to ignore it. That is the app's decision, not something Dev Switch can override.

Does the map need internet?

Yes, for map tiles, place names and route directions. Those requests go to Mapbox and OpenStreetMap only while you use the map. Your real position is never sent.

App inspector and deep links

What does the app inspector show?

Every installed package, user or system, searchable. Per app: version and version code, target and minimum SDK, APK size, install and update dates, signing certificate SHA-1 and SHA-256, declared permissions grouped by kind, and exported entry points you can launch.

What actions are there per app?

Open, App info, extract the APK, copy or share a paste-ready summary, open the store listing, and uninstall. Uninstall always goes through Android's own confirmation.

Why does it ask to see all installed apps?

Listing and inspecting packages is the feature. The list is read from the phone and shown on screen. It is never collected or sent anywhere.

What does the deep link tester do?

Type any link, custom schemes included, and it shows which app claims it before firing it, so a dead link is obvious without leaving the app. Every attempt is kept in a searchable history with its result, and there are sample links to start from.

My link opens the browser instead of my app.

Then no installed app claims it, or Android has not verified the domain for your app. The tester shows the handler it resolved, which is the first thing to check.

Developer mode and display

Which developer switches are there?

Twenty-one, in five groups: debugging, input, layout, rendering, and apps and network. Show taps, pointer location, don't keep activities, wireless debugging, force RTL, GPU debug layers and more, plus an animation scale picker. Titles match Developer options exactly, so search finds them by the same name.

What does a long press on a switch do?

Opens Developer options scrolled to that row, highlighted. Looking at a row in Settings needs no permission, so a long press never asks for the adb setup.

Some switches say Settings only. Why?

Android refuses those writes to any app, or writes them but nothing reads the value. Rather than fail silently, the row hands over to Settings by name.

A switch turned itself back off.

The system reverted it. Wireless debugging, for example, needs Wi-Fi and turns off again without it. The app notices and tells you, on screen or with a short message from a Quick Settings tile.

Where are layout bounds, GPU overdraw and force dark?

Not included. They are system properties rather than settings, which only root can change, so no app can offer them.

What does display tuning do?

Sets the system text size from 50% to 200% with a live preview. It is also a Quick Settings tile and a floating control that stays over any app. Display density stays preview only, because changing it needs a system-level write.

Locale tester

What does the locale tester do?

Runs one app in another language without changing the phone's language. Pick an app, pick a language, and only that app changes. Reset, edit or open it fresh from the same list.

Which languages are offered?

Right-to-left languages first, including Android's mirrored English pseudo-language, which is the quickest RTL layout check. Then a list of common languages, and System default.

Why are Google apps missing from the picker?

User apps only, and Google's own apps are excluded on purpose, since they manage their own languages.

Will I forget an app is overridden?

There is an optional reminder notification while any app is changed, with Reset all on it. Turn it on in the Manage group on the locale tester screen.

Quick Settings, floating controls and permissions

Which tools have Quick Settings tiles?

Keep screen awake, mock location, route mode, text size, and every developer switch. Add them from the Quick Settings tiles screen in the app, or from the panel's edit mode. A long press on a tile opens its screen.

What are the floating controls?

Small bubbles that stay over any app: the text size control, and the route bar. Tap to open, drag to move, drag onto the X at the bottom to remove. They tuck to the edge when idle and come back on a tap.

Why does the app ask for notifications?

Every long-running session shows an ongoing notification with a Stop control while it runs. Without the permission, Android hides it.

Why does it ask to display over other apps?

For the floating controls and for the keep-awake overlay. Nothing else uses it.

Is ignoring battery optimisation required?

No. It only matters on phones that kill background services aggressively. The app functions without it.

Privacy and what is not there

Does any data leave the phone?

Only map requests, and only while you use the map: tiles, place names and directions from Mapbox and OpenStreetMap. There is no account, no analytics and no server of ours. The privacy policy lists exactly what is sent.

Can it read other apps' logs?

Not at the moment. Since Android 13 that needs a system prompt that many phones never show, so the feature is built but switched off until Android makes it reliable.

Can it push a notification to another app, or read them?

No. Android does not let an app post as another app, and reading other apps' notifications needs a special access that this app does not ask for.

How do I report a problem or ask for something?

Open an issue at github.com/azharbinanwar/devswitch-issues, also reachable from Settings, Report a problem. Include the phone model and Android version from the Device screen; Copy as text there gives you everything at once. Mail works too: contact@kodeelite.com.