← back to blog

cloud phone screen orientation locked: how to fix

May 06, 2026

cloud phone screen orientation is one of those features that works invisibly until it does not. cloud phones do not have an actual accelerometer, so orientation has to be simulated. when the simulation breaks (or when an app expects rotation that the cloud phone cannot provide), you get stuck in portrait when you need landscape, or vice versa. this guide walks through why it happens and how to fix it.

the symptoms: what orientation issues look like

before diagnosing, identify what you are seeing.

each has different fix. start by being specific about the symptom.

step 1: confirm what the phone reports

run this to see what the phone thinks its current orientation is:

adb shell dumpsys input | grep -i "Surface Orientation"

possible values:

note what it says. then check what the app is requesting.

adb shell dumpsys window | grep -i "mFocusedApp" -A2

look for the app’s screenOrientation value. compare to what the system has set.

step 2: try the standard rotation toggle

before applying ADB-level fixes, try the basic toggle.

via ADB:

adb shell settings put system accelerometer_rotation 0
adb shell settings put system user_rotation 1

values for user_rotation: 0 = portrait, 1 = landscape, 2 = portrait flipped, 3 = landscape flipped.

if you want auto-rotation enabled (where it follows whatever the simulated accelerometer says):

adb shell settings put system accelerometer_rotation 1

but on cloud phones, “auto” usually does not do anything useful because there is no real motion.

verify: dumpsys input | grep -i "Surface Orientation" shows the new value.

step 3: force rotation on stubborn apps

some apps lock to one orientation in their manifest. these will not rotate even if you force the system orientation.

diagnostic:

adb shell dumpsys window | grep -i "screenOrientation"

values that will not rotate easily:

fix steps for locked apps:

  1. enable forced rotation via developer options: adb shell settings put global force_resizable_activities 1
  2. or via secure settings: adb shell settings put secure forced_resizable_activities 1
  3. restart the app: adb shell am force-stop <package> && adb shell monkey -p <package> 1
  4. some apps still resist this, in which case use a phone-launch-orientation override

verify: app rotates with system orientation.

step 4: scrcpy-side rotation issues

if the phone rotated correctly but scrcpy still shows the old orientation, the issue is on the laptop side.

scrcpy fixes:

scrcpy --rotation=1

values: 0 = no rotation, 1 = 90 degrees clockwise, 2 = 180 degrees, 3 = 270 degrees.

or use keyboard shortcut: with scrcpy focused, press Ctrl+Left or Ctrl+Right to rotate the view.

note: scrcpy rotation is purely visual. it rotates the laptop window without affecting the phone. if you need the phone itself to rotate, use the ADB commands in step 2.

step 5: rotation that ignores ADB

sometimes ADB rotation commands run without error but the screen does not rotate. this is usually because:

fixes:

  1. check display service: adb shell dumpsys display | head -20 for errors
  2. restart system server: adb shell stop && adb shell start (warning: this restarts userland, applications will close)
  3. reboot phone: adb reboot
  4. if persistent across reboots, escalate to vendor

cloud phone slow performance fix covers related display-service issues.

numbered fix steps for common scenarios

scenario A: I want to force landscape mode permanently

likely cause: app demands landscape, system is in portrait.

fix: 1. adb shell settings put system accelerometer_rotation 0 (disable auto-rotate) 2. adb shell settings put system user_rotation 1 (force landscape) 3. force-stop and restart the target app 4. verify with dumpsys input | grep -i "Surface Orientation" showing 1

verify: target app displays in landscape.

scenario B: rotation works in scrcpy but not on phone

likely cause: scrcpy is rotating the view, not the phone.

fix: 1. apply ADB rotation commands (step 2) to actually rotate the phone 2. or, if you only need the visual flip on your laptop, use scrcpy --rotation=N

verify: depends on what you want. if real phone rotation: dumpsys input confirms. if just visual: scrcpy view is correct.

scenario C: app does not rotate even after forcing system orientation

likely cause: app has hardcoded orientation in manifest.

fix: 1. enable forced resizable activities: adb shell settings put global force_resizable_activities 1 2. restart the app 3. if app still resists, contact app developer or use a different app 4. for testing-only purposes, consider patching the apk to remove orientation lock

verify: app rotates with system orientation.

scenario D: orientation is correct but rotates back after seconds

likely cause: auto-rotate is enabled and accelerometer simulation is fighting your manual setting.

fix: 1. adb shell settings put system accelerometer_rotation 0 to disable auto-rotate 2. set user_rotation to your desired value 3. confirm setting persists for 5+ minutes

verify: orientation stays where you set it.

the cloud phone simulated accelerometer

most cloud phones do not have real accelerometers. they simulate one with a fixed value, usually portrait facing up.

implications:

if your workflow depends on real accelerometer data, you may need a different cloud phone provider that offers physical-sensor passthrough, or a physical phone.

prevention: setup choices that minimize orientation issues

things to do upfront:

cloud phone for saas founders mobile testing covers provisioning patterns that include orientation setup.

when to escalate

escalate to vendor support when:

include in ticket: ADB output of dumpsys input | grep "Surface Orientation", app you are using, expected vs actual orientation.

external resources

Android display orientation documentation covers how apps declare orientation requirements. useful for understanding why some apps resist rotation.

the soft pitch

cloudf.one supports both portrait and landscape orientation lock via ADB or web console. test rotation in your free 1-hour trial to confirm it works for your workflow before committing. start at cloudf.one/trial or register an account.

frequently asked questions

why does my cloud phone not auto-rotate?

cloud phones do not have real accelerometers, so auto-rotate has nothing to detect. set orientation manually via ADB or web console.

can I rotate just for one app, not the whole phone?

sort of. set user_rotation before launching the app, and the app will adopt it. when you switch apps, set the orientation again.

does scrcpy rotation rotate the phone or just the view?

just the view on your laptop. for real phone rotation, use ADB commands.

why do some apps resist rotation even after ADB commands?

their manifest declares a fixed orientation. force-resizable-activities setting can override most cases.

is there a way to fake real accelerometer data on cloud phones?

possible with custom builds and root access, but most cloud phones do not support this out of the box.