[APP][Material] Screen Shift - Update - Per-app Profiles

Search This thread

aravindsagar

Senior Member
Feb 14, 2012
331
310
Champaign, IL
Screen Shift
Change the screen resolution, density and overscan of your Android device
Update v2.0 : Switch profiles automatically based on current app!
app_icon.png

  • Test your apps in a variety of screen resolutions using a single device
  • Improve gaming performance by playing at lower resolutions
  • Material design interface
  • In-built profiles of popular devices; more can be added manually
  • Per-app profiles - Switch profiles automatically based on current app
_
Requirements
  • Android Gingerbread or higher
  • Requires root in JellyBean 4.3 and higher
  • Overscan available only in JellyBean 4.3 and higher

_
Screenshots
screenshot_main.png
screenshot_about.png

screenshot_confirm.png
screenshot_profile.png

_
Downloads


All features of the app are available for free, without any ads. If this app has been helpful, there's an option to donate via an in-app purchase. This does NOT unlock any new features. Thank you for your support. :)

Please do not mirror without permission. Link to this thread or play store page if you want to share this app elsewhere. So that users will know where to check for updates and get support from.

_
Important Information
A nandroid/Ti backup is recommended before trying the app.

Some devices/ROMs face a soft reboot when density is changed. There's a test in the app to check this. If density change indeed causes reboot, density is ignored in per-app profiles.

If your screen becomes unusable after setting a resolution, wait for ~15 seconds. It should revert to your default resolution.
If that does not work, reboot -> wait for 2 min (for the service to start) -> reboot again -> wait for service to start.
If that too does not work (I certainly hope that you won't have to do this), issue the following commands in adb shell (using a pc):
For JB 4.3 and above:​
Code:
wm size reset
wm density reset
wm overscan reset
Below JB 4.3:​
Code:
am display-size reset
am display-density reset

Also please note that uninstalling the app won't restore default display settings. So please switch the service off first, if you want to uninstall. Also tell me why you uninstalled it. ;)
_
Source code
Source code is distributed under Apache v2 license. Source repository: https://github.com/aravindsagar/ScreenShift

_
Change log

v2.0: Per-app profiles

v1.2: App startup reboot fix

_
Developed by
Aravind Sagar
Find me in G+
 
Last edited:

aravindsagar

Senior Member
Feb 14, 2012
331
310
Champaign, IL
Thank you all for the amazing response! :) 10000 downloads at the end of 1 week! (XDA + bitly link)
Thanks to XDA Portal and Phone Arena, and other tech blogs, for featuring the app. It means a lot, to get this kind of exposure for one of the first apps of mine. :)

A bit of background
I have a Nexus 4, and it's display started to develop problems a few months back. The nav bar area stopped registering touches at all (though ghost-touches were experienced quite frequently). I managed with pie controls and similar apps for a while. But more recently, this area began to increase, and almost 50% of my screen doesn't respond to touch now. I was looking for a software solution to make the phone usable till I can replace the digitizer and screen of my phone. Then I stumbled upon an adb shell command, wm, which could do a temporary fix for my touch screen issues. I thought I'd make a GUI for the functionality offered by the wm command, and the end result is what you see in this thread.

What Next?
I'm planning to implement per-app profiles, and automatic density calculation for the next major version of the app.
Suggestions are welcome. :)

Some credits
https://github.com/matrixxun/ProductTour for the initial tutorial/product tour shown in the app.
http://romannurik.github.io/AndroidAssetStudio/ has been of great help as well.
As always, big thanks to the stack overflow community, as well as http://developer.android.com/index.html
 
Last edited:

tucstwo

Senior Member
Oct 6, 2011
272
349
forgive my ignorance but is this just an easy way to change the (or what was) "ro.sf.lcd_density=XX" in the build.prop or is there something special to this? I realize there's more to it vs the build.prop edit, but it does kinda/sorta the same type of thing? not discrediting the feature...Just curious :D Thanks again!
 

aravindsagar

Senior Member
Feb 14, 2012
331
310
Champaign, IL
forgive my ignorance but is this just an easy way to change the (or what was) "ro.sf.lcd_density=XX" in the build.prop or is there something special to this? I realize there's more to it vs the build.prop edit, but it does kinda/sorta the same type of thing? not discrediting the feature...Just curious :D Thanks again!
Actually, it's an easy way to issue the adb command wm (or am before JB 4.3). :D
Check this SO question for more details on wm command: http://stackoverflow.com/questions/18500611/android-how-to-use-adb-shell-wm-to-simulate-other-devices.
I started building this app because parts of my screen stopped working, actually. Then I thought, it could be useful more generally.
 

codeknight11

Senior Member
Dec 3, 2011
2,116
2,522
First of all, Avast Mobile Security detects your app as suspicious and advises uninstalling it immediately. I hope there are no malwares :confused:

Btw, about the app, as soon as I gave it root access, my device hot-rebooted and got stuck in a bootloop. Then I switched it off and restarted it, device started optimizing all the apps (just like after fresh rom install). Everytime I open the app my device reboots :(

Device - Note 2 N7100
ROM - CM12.1
 

aravindsagar

Senior Member
Feb 14, 2012
331
310
Champaign, IL
First of all, Avast Mobile Security detects your app as suspicious and advises uninstalling it immediately. I hope there are no malwares :confused:

Btw, about the app, as soon as I gave it root access, my device hot-rebooted and got stuck in a bootloop. Then I switched it off and restarted it, device started optimizing all the apps (just like after fresh rom install). Everytime I open the app my device reboots :(

Device - Note 2 N7100
ROM - CM12.1
Um that's bad. Well, you are free to examine the source if there's any doubt. It could be because app requests root, or permission to get to know call state changes, so that when a call comes, display can be adjusted to default resolution (this behavior can be configured in settings).

As for the hot-reboot, I wonder what the problem is... Can you uninstall the app and try issuing these commands directly using adb, and see whether reboot happens then?
Code:
wm size WIDTHxHEIGHT
wm overscan LEFT,TOP,RIGHT,BOTTOM
wm density DENSITY
Replace the Upper caps words with required values.
 

Metalpunch

Member
Jan 30, 2013
42
9
Hello

This app is amazing, on my lg g3 works like a charm. But on my Xperia P doesn't work. :(
My xperia P is. 540x960 and I tried 480x800 works but i have the following problem on the pictures. How can i solve it? My screen is reduced.

Thanks for ur attention.
 

Attachments

  • QuickMemo+_2015-06-20-05-54-45.jpg
    QuickMemo+_2015-06-20-05-54-45.jpg
    258.2 KB · Views: 1,570
  • QuickMemo+_2015-06-20-05-54-23.jpg
    QuickMemo+_2015-06-20-05-54-23.jpg
    254.7 KB · Views: 1,571
  • Like
Reactions: danfill

Top Liked Posts

  • There are no posts matching your filters.
  • 94
    Screen Shift
    Change the screen resolution, density and overscan of your Android device
    Update v2.0 : Switch profiles automatically based on current app!
    app_icon.png

    • Test your apps in a variety of screen resolutions using a single device
    • Improve gaming performance by playing at lower resolutions
    • Material design interface
    • In-built profiles of popular devices; more can be added manually
    • Per-app profiles - Switch profiles automatically based on current app
    _
    Requirements
    • Android Gingerbread or higher
    • Requires root in JellyBean 4.3 and higher
    • Overscan available only in JellyBean 4.3 and higher

    _
    Screenshots
    screenshot_main.png
    screenshot_about.png

    screenshot_confirm.png
    screenshot_profile.png

    _
    Downloads


    All features of the app are available for free, without any ads. If this app has been helpful, there's an option to donate via an in-app purchase. This does NOT unlock any new features. Thank you for your support. :)

    Please do not mirror without permission. Link to this thread or play store page if you want to share this app elsewhere. So that users will know where to check for updates and get support from.

    _
    Important Information
    A nandroid/Ti backup is recommended before trying the app.

    Some devices/ROMs face a soft reboot when density is changed. There's a test in the app to check this. If density change indeed causes reboot, density is ignored in per-app profiles.

    If your screen becomes unusable after setting a resolution, wait for ~15 seconds. It should revert to your default resolution.
    If that does not work, reboot -> wait for 2 min (for the service to start) -> reboot again -> wait for service to start.
    If that too does not work (I certainly hope that you won't have to do this), issue the following commands in adb shell (using a pc):
    For JB 4.3 and above:​
    Code:
    wm size reset
    wm density reset
    wm overscan reset
    Below JB 4.3:​
    Code:
    am display-size reset
    am display-density reset

    Also please note that uninstalling the app won't restore default display settings. So please switch the service off first, if you want to uninstall. Also tell me why you uninstalled it. ;)
    _
    Source code
    Source code is distributed under Apache v2 license. Source repository: https://github.com/aravindsagar/ScreenShift

    _
    Change log

    v2.0: Per-app profiles

    v1.2: App startup reboot fix

    _
    Developed by
    Aravind Sagar
    Find me in G+
    16
    Thank you all for the amazing response! :) 10000 downloads at the end of 1 week! (XDA + bitly link)
    Thanks to XDA Portal and Phone Arena, and other tech blogs, for featuring the app. It means a lot, to get this kind of exposure for one of the first apps of mine. :)

    A bit of background
    I have a Nexus 4, and it's display started to develop problems a few months back. The nav bar area stopped registering touches at all (though ghost-touches were experienced quite frequently). I managed with pie controls and similar apps for a while. But more recently, this area began to increase, and almost 50% of my screen doesn't respond to touch now. I was looking for a software solution to make the phone usable till I can replace the digitizer and screen of my phone. Then I stumbled upon an adb shell command, wm, which could do a temporary fix for my touch screen issues. I thought I'd make a GUI for the functionality offered by the wm command, and the end result is what you see in this thread.

    What Next?
    I'm planning to implement per-app profiles, and automatic density calculation for the next major version of the app.
    Suggestions are welcome. :)

    Some credits
    https://github.com/matrixxun/ProductTour for the initial tutorial/product tour shown in the app.
    http://romannurik.github.io/AndroidAssetStudio/ has been of great help as well.
    As always, big thanks to the stack overflow community, as well as http://developer.android.com/index.html
    6
    Update incoming

    Hi all,
    First of all, sorry for the long absence from here. I have just started a job, and I needed the time to settle into the new(my first) job and a new city.

    That being said, I've recently resumed android app development, and I'll be pushing out updates to Screen shift soon. You can expect a version that fixes reboot problem, by tomorrow. Another update with per-app profiles is coming in a week or so. Thanks for all the support and contributions. Watch out for the update. :)
    4
    forgive my ignorance but is this just an easy way to change the (or what was) "ro.sf.lcd_density=XX" in the build.prop or is there something special to this? I realize there's more to it vs the build.prop edit, but it does kinda/sorta the same type of thing? not discrediting the feature...Just curious :D Thanks again!
    Actually, it's an easy way to issue the adb command wm (or am before JB 4.3). :D
    Check this SO question for more details on wm command: http://stackoverflow.com/questions/18500611/android-how-to-use-adb-shell-wm-to-simulate-other-devices.
    I started building this app because parts of my screen stopped working, actually. Then I thought, it could be useful more generally.
    3
    This is great! Could it work on Lollipop and Android M?
    It does work in Lollipop. You can see that the screenshots are in fact taken in 5.1 Lollipop. :)
    It should work with M too. I don't have a device to check that right now. Maybe I'll test it out in M emulator as soon as possible.