Also you can do:
disable accelerometer controlling rotation - just do this once
adb shell content insert --uri content://settings/system --bind name:s:accelerometer_rotation --bind value:i:0
rotate landscape:
adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:1
rotate portrait:
adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:0
rotate upside down landscape:
adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:3
rotate upside down portrait:
adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:2
If you have WRITE_SETTINGS permission you can write thru the content provider in java code as well.