ShizuStore

SecondScreen

farmerbb

2.9.4 · GitHub

Download APK
Display management Android 5.0+ 2 years ago Apache-2.0
75 ShizuStore
12.2k GitHub
518 Stars
2 MB Size

More about this app

Better screen mirroring for Android devices

SecondScreen

SecondScreen is an application designed for power users that frequently connect their Android devices to external displays. It works with your existing screen mirroring solution to give you the best experience possible. With SecondScreen, you can change your device's resolution and density to fit your TV or monitor, enable always-on desktop mode in Chrome, and even turn your device's backlight off, among several other features.

  • This app REQUIRES elevated permissions, granted via root access or adb shell commands. The app will do nothing if you do not have a rooted device or access to adb.
  • This app is ONLY for devices with AOSP / Google experience ROMs. It is not guaranteed to function properly on devices with manufacturer-skinned ROMs.
  • This app does not provide screen mirroring capabilities on its own. Screen mirroring may require either an MHL/SlimPort adapter or a wireless solution such as Miracast or Chromecast.
  • A Bluetooth keyboard and mouse is strongly recommended as the app can make UI elements smaller and harder to press on the device itself.

Features

  • Easily change resolution and density (DPI) - take full advantage of the resolution of your external display, and show the Android tablet interface if you're using a phone
  • Simple profile-based interface - easy to enable/disable different profiles for different types of displays
  • Many configurable options, including:
    • Automatically enable Bluetooth and Wi-Fi - quickly connect a keyboard, mouse, and/or game controller
    • Automatically enable Daydreams
    • Lock screen orientation to landscape
    • Show desktop sites in Chrome by default - browse the real Web, on your TV!
    • Overscan support for older TVs (Android 4.3+)
    • System-wide immersive mode (Android 5.0+)
    • Disable device backlight and vibration - save battery while your device is connected (not compatible with all devices)
  • Full integration with Tasker
  • Load profiles automatically when a display is connected
  • Quick Actions - quickly and easily run SecondScreen features without creating or editing profiles
  • Homescreen shortcuts - launch a profile with one tap, without entering the app

Download

Get it on Google Play Get it on F-Droid

Explanation of permissions

  • root access or adb shell commands required to change resolution/DPI, disable backlight/vibration, enable desktop-only mode in Chrome
  • "connect and disconnect from Wi-Fi", "view Wi-Fi connections" - required for profiles to enable Wi-Fi
  • "access Bluetooth settings", "pair with Bluetooth devices" - required for profiles to enable Bluetooth
  • "close other apps" - required to refresh the user interface after a resolution/DPI change. Ensure all data is saved before launching a profile.
  • "run at startup" - required to show SecondScreen profile notification after a (soft/hard) reboot
  • "modify system settings" - required for profiles to lock rotation and set brightness

Translation credits

  • Braden Farmer (English)
  • César Parga, Adrian Brown (Spanish)
  • Christophe Romana (French)
  • ja-som (Slovak)
  • Heimen Stoffels (Dutch)
  • Asbesbopispa (Italian)
  • czheji (Chinese)
Close

How Shizuku is used

Can self-grant `WRITE_SECURE_SETTINGS` via `IPackageManager.grantRuntimePermission` to apply display profiles for mirroring.

This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.

How this app uses Shizuku

Shizuku is used to self-grant the system settings permission so SecondScreen display profiles for external screens can be applied without a PC. After the grant the app applies the profile with normal settings and display APIs.

  • Enable display profiles: load and turn off saved mirroring profiles on the device itself after Shizuku grants WRITE_SECURE_SETTINGS to the app.
  • Change resolution and density: apply a profile's chosen size and DPI, including reset to native values, through the window manager.
  • Adjust overscan and system settings: apply a profile's overscan margins plus secure, global and system values such as freeform windows, screensaver, stay on while plugged in, rotation, timeouts and brightness.

Android APIs or commands used

  • IPackageManager.grantRuntimePermission
  • Settings.Global.putString
  • Settings.Secure.putString
  • Settings.System.putString
  • IWindowManager.setForcedDisplaySize
  • IWindowManager.clearForcedDisplaySize
  • IWindowManager.setForcedDisplayDensityForUser
  • IWindowManager.clearForcedDisplayDensityForUser
  • IWindowManager.setForcedDisplayDensity
  • IWindowManager.clearForcedDisplayDensity
  • IWindowManager.setOverscan

Notable details

The same WRITE_SECURE_SETTINGS permission can also be granted with an ADB shell command shown in the app, so Shizuku is one option to enable profiles without a PC.

Close

Changelog

What's new for version 2.9.4

• Maintenance release targeting the latest versions of Android • Fix issue where orientation would stay locked after turning off profile

Close

Permissions

21 permissions requested

  • android.permission.ACCESS_WIFI_STATE
  • android.permission.BLUETOOTH
  • android.permission.BLUETOOTH_ADMIN
  • android.permission.CHANGE_WIFI_STATE
  • android.permission.KILL_BACKGROUND_PROCESSES
  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.WRITE_SETTINGS
  • com.farmerbb.taskbar.START_STOP_TASKBAR
  • com.farmerbb.taskbar.ENABLE_DISABLE_HOME
  • com.farmerbb.taskbar.ENABLE_DISABLE_FREEFORM
  • com.farmerbb.taskbar.paid.START_STOP_TASKBAR
  • com.farmerbb.taskbar.paid.ENABLE_DISABLE_HOME
  • com.farmerbb.taskbar.paid.ENABLE_DISABLE_FREEFORM
  • android.permission.SYSTEM_ALERT_WINDOW
  • android.permission.WRITE_SECURE_SETTINGS
  • android.permission.FOREGROUND_SERVICE
  • android.permission.FOREGROUND_SERVICE_SPECIAL_USE
  • android.permission.POST_NOTIFICATIONS
  • com.farmerbb.secondscreen.support.USE_SUPPORT_LIBRARY
  • moe.shizuku.manager.permission.API_V23
  • com.farmerbb.secondscreen.free.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Close

Sources

3 sources

2.9.4 GitHub · com.farmerbb.secondscreen.free
Selected Download
2.9.4 F-Droid · com.farmerbb.secondscreen.free · com.farmerbb.secondscreen.free
Download
2.9.4 F-Droid · com.farmerbb.secondscreen.free · com.farmerbb.secondscreen.free
Download