Git Product home page Git Product logo

classicpowermenu's Introduction

Classic Power Menu

Classic Power Menu is a Power Menu Replacement for Android 11+, with the main aim being restoring power menu options (Device Controls & Quick Access Wallet) on Android 12.

Classic Power Menu Requires root access to function, it is not possible without root

Please read the FAQ before downloading or creating an issue

Crowdin

Features

  • Up to 10 power options in the Power Menu, including the non-stock options of Screenshot, Reboot Recovery and Reboot Bootloader

    • Fully customisable, including rearranging and hiding buttons you don't use
  • Quick Access Wallet in the Power Menu, accessible while locked or unlocked

    • Optional blurring of card numbers while locked
    • Optional showing of loyalty cards, restoring a previous feature from Android 10 which was removed. Loyalty cards' codes can be shown while locked and without needing to open Google Wallet, if you wish.
  • Device Controls in the Power Menu, accessible while locked or unlocked

    • Optional ability to interact with controls while locked, without requiring authentication
  • Material You inspired theme, using Monet colours and background blur on the Power Menu

  • Xposed is not required, interception of the power button is done via Accessibility Service, with only normal root required

    • An optional Xposed module is included, which can react quicker than the Accessibility Service

Screenshots

Classic Power Menu Settings

Loyalty Cards in Pay Showing a Card

Download

Download the latest release from the Releases page

Content Creators

If you are making a video or article about Classic Power Menu, you will want to hide your card numbers. Enable the developer options in Classic Power Menu by triple tapping the "About" option, and enable Content Creator Mode. This will always blur your card numbers and will show a fake QR code for loyalty cards, keeping your data safe.

classicpowermenu's People

Contributors

andrii-bodnar avatar c0unt-zero avatar chefski avatar crowdin-bot avatar ctrl-kitty avatar keta1 avatar kieronquinn avatar lonelytransistor avatar rom4ster avatar vladi69 avatar yifeplayte avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

classicpowermenu's Issues

Classic Power Menu not autostart

Currently (Android 12.1 Lineageos) the power menu not autostart.
I need to manually start the app to apply the effect.
I enabled Classic Power Menu in LSPosed (com.android.systemui) and also allow super user.

loyalty cards with barcode are not working

I have a loyalty card with QR code (which works well, and its preview are showing) and a two loyalty cards with barcode that doesn't preview nor opening in google pay

Android 11 (R)
magisk + riru lsposed
app version 1.1

screenshots:

Click to expand

Screenshot_20211003-231840_Classic_Power_Menu

if i tap "open in google pay":
Screenshot_20211003-231847_Google_Play_services

how it's should look:
Screenshot_20211003-233503_Google_Play_services

Fastboot.d

Show fastbootd as an option in advanced reboot.

Random crash

Not sure what caused it but scoop caught it. Only time it's crashed too.

I'm using the lsposed mod and have it enabled in accessibility settings.

FATAL EXCEPTION: main Process: com.kieronquinn.app.classicpowermenu, PID: 5967 java.lang.NullPointerException at com.kieronquinn.app.classicpowermenu.service.runner.CPMServiceRunner$bindService$1$1.invokeSuspend(CPMServiceRunner.kt:22) at com.kieronquinn.app.classicpowermenu.service.runner.CPMServiceRunner$bindService$1$1.invoke(Unknown Source:8) at com.kieronquinn.app.classicpowermenu.service.runner.CPMServiceRunner$bindService$1$1.invoke(Unknown Source:4) at com.kieronquinn.app.classicpowermenu.service.container.CPMServiceContainerImpl.runWithService(CPMServiceContainer.kt:37) at com.kieronquinn.app.classicpowermenu.service.container.CPMServiceContainerImpl$runWithService$1.invokeSuspend(Unknown Source:14) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7664) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

Show two apps with controls at the same time

I have controls from both home assistant and tinycam pro integrated in the powermenu. However (as it was in Android 11) I have to switch between the two apps using the dropdown menu.
Is it at all possible to have the control from both apps shown at the same time? I only use a few buttons so it would easily fit on the screen.
Maybe you can somehow add this as an option?
Thanks!

Not working with Ulefone Power Armour 14

Installed into Ulefone Power Armour 14
The stock firmware for this phone uses a power menu that is not the default android one and only provides "Off" and "Reboot" options. Wanted to use this app for provide a more stock power menu.

Information:
Stock Rom (Android 11)
Rooted using Magisk 24.1
Processor: mediatek helio g35

Steps:
Installed version 1.3 (1.3.1 apk could not parse correctly)
Enabled menu (granted root access). App also appeared in LSPosed, so passed it the System UI and the System Framework
Rebooted

Issue:
Power button still displays the default power menu, the power menu from this app is nowhere to be seen.

[Improvement] Standalone launch

Issue :
As many OEM skins act differently (like OneUI) the system power menu sometimes show over CPM.

Possible fix:
Theses OEM or some third part apps provides a way to remap the power button (or double tap power..etc), in that case, it could be nice to have a Standalone app for the classic power menu so we can remap them to launch this app

Crash

It's only happened once but figured I'd report it

FATAL EXCEPTION: main Process: com.kieronquinn.app.classicpowermenu, PID: 9023 java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 2110636 bytes at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:161) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7664) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) Caused by: android.os.TransactionTooLargeException: data parcel size 2110636 bytes at android.os.BinderProxy.transactNative(Native Method) at android.os.BinderProxy.transact(BinderProxy.java:550) at android.app.IActivityTaskManager$Stub$Proxy.activityStopped(IActivityTaskManager.java:4408) at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:145) ... 7 more

CPM doesn't work on Android 13 beta 2

Android version: 13 beta 2
Lsposed version: zygisk 1.8.3 (6552)

Since A13B2 we cannot grant permission for "Accessibility Service" so we are forced to use the root method with lsposed.

When trying to trigger the menu the normal power menu is displayed instead of CPM.

Thanks

Not working on MIUI 13

It simply open the default Power menù on MIUI 13 (i'm on .eu weekly 22.4.21) also with lsposed module.

Crashing on start

Hi,
I have just installed the latest version of your app. After granting root permissions, the app force closes.
Any way to get the exact logs? Is there an automatic log reporting?

Thank you

Using accessibility menu instead of power button

Doesn't work on Google Pixel 4a - Android 11
I use Android Accessibility Suite to save the power button but I don't need so many options
This application would be useful to many people who do not have a shortcut to lock the phone

Xposed module broken for oxygen is 12

Ive tried enabling the module in lsposed after a reboot the app stop functioning all together the new menu never opens until I disable the module

Add blur

On the readme I can see there is blur when you opened the menu, while in reality there isn't. Can you add an option to change the amount of blur?

Solved :MIUI 13 Power menu shows up only in classic power menu app

Power menu shows up only whent the classic power menu Is open in the launcher or any other app when I hold the power button it just vibrates it worked perfectly fine but now it doesn't work normally and the default power menu doesn't show up to when classic power menu gets root privileges from magisk
I'm using lsposed zygisk

Toggle for turning off auto rotation

At the moment, the app doesn't respect system's auto rotate setting. It'd be great to have a toggle for that and maybe even more granular control over which orientations are allowed because right now it can even be upsidedown and is quite annoying

Crashes when trying to add new Home Assistant controls

Hi, I've recently added a new light group to my Home Assistant instance which I'd like to add to my power menu, but when I tap the 3 dots and select "Add controls", it crashes on me every time.

I'd be happy to provide logs, I'm just not sure where to find them.

Reboot Button UI issues

Reboot fastboot seems to be labbeled as "fastbootd" i think d is a typo

When rebooting to recovery the rebooting window that opens says "factory reset: restarting"

SystemUI restart option

Would be cool to have a SystemUI restart card like some other custom ROMS include in their advanced power menu

Doesn't work on Miui

The power menu is always on the default miui one and does not change to your one

Root: Magisk v23
Lsposed Module: v1.6.2
Accesibility service: Enabled
OS: Miui 12.6(Android 11)

Application not working.

Xiaomi Redmi Note 9 Pro, MIUI 12.5.3, Anndroid 11.
I install the application, I issue all the permissions and the menu does not change.

Reboot Button does not work

Whilst Power off and reboot to recovery (which says 'factory reset' on the popup, a bit worrying) work, reboot button simply closes the power menu (but asks for root access).
If any log is needed, please tell me which and how to produce it

Not working on Android 12L

Hiya, just installed Android 12L on my Pixel 5 (12.1.0 (SP2A.220305.012, Mar 2022)) and have found that background blur and the Classic Power Menu module itself are both non-functional. I'm using Classic Power Menu 1.3.1 via LSPosed 1.7.2, with the module enabled and hooking com.android.systemui as well as System Framework. This is all running on Magisk 24.3. The accessibility service also unfortunately does not work. Any help would be greatly appreciated!.

Appear Animation advise

Current appear amination is float from below, can you add another option for intro animation like fade in , rotate in or something else?
BTW
Thanks for your work, the new version 14.1 did not work for me so I downgraded to 13.1 and it work flawlessly.

Menu immediately quits after 1.4 update

Hi,

just update to v1.4 and now when holding the power button, the menu either shows for a fraction of a second an then disappears or it doesn't show at all.

Here's a short video:

screen-20220319-094533.2.mp4

I'm running Android 12 (Pixel Experience 12) on a rooted OnePlus 5, if that helps.

Make blur command easy to access

Allow copying the blur command from the FAQ section in the app, currently text cannot be highlighted

Also, change the command to one line since some terminals don't support pasting multi line commands

su -c resetprop ro.surface_flinger.supports_background_blur 1 pkill -TERM -f com. android.systemui

Can't see new loyalty cards in the power menu

Hi,

Thanks in advanced for the new features. The last update feels great.

The thing is that when I add a new loyalty card to Gpay, the card is not appearing in the power menu. Also, if I delete an old card, the card will remain in the menu.

I tried formating the data of the app, unisntalling the module and the app and reintsalling it, but nothing works.

Non-Root Version

Hey there,

This is a wonderful idea. Any chance for a version that doesn't require root? I found an app that can remap the volume buttons if pressed at the same time to do something (without root).

Could a non-root version of this app work via pressing both volume buttons at the same time to open the power menu?

I may be under thinking this, maybe more than just power button hooking requires root.

Regardless this type of thing without root would be great. Thanks!

Crashes when Muzei wallpaper changes

Whenever a Muzei source changes the wallpaper image, the replacement menu will fail to open when holding the power button, and is replaced with the system power menu if I try holding the power button again immediately after opening the system power menu. Waiting a few seconds after the initial attempt will sometimes bring the CPM menu back, but usually the accessibility service has to be toggled off and back on, as the system detected that CPM was malfunctioning and seems to disable the service.

Here is the relevant crash info from a logcat taken from a OnePlus 7T, running an AOSP based Android 11 custom ROM. Crashed as I held the power button to open the menu, did not appear on the screen. This happens with the Xposed module both enabled and disabled.

09-26 16:04:11.930  6815  6815 I LSPosed-Bridge: Crash unexpectedly: java.lang.IllegalStateException: should never call auto-cleared-value get when it might not be available
09-26 16:04:11.930  6815  6815 I LSPosed-Bridge: 	at AutoClearedValue.getValue(AutoClearedValue.kt:46)
09-26 16:04:11.930  6815  6815 I LSPosed-Bridge: 	at com.kieronquinn.app.classicpowermenu.ui.base.BoundFragment.getBinding$app_release(BoundFragment.kt:17)
09-26 16:04:11.930  6815  6815 I LSPosed-Bridge: 	at com.kieronquinn.app.classicpowermenu.ui.screens.powermenu.main.PowerMenuFragment$setupAppbar$1.invokeSuspend$lambda-0(PowerMenuFragment.kt:178)
09-26 16:04:11.930  6815  6815 I LSPosed-Bridge: 	at com.kieronquinn.app.classicpowermenu.ui.screens.powermenu.main.PowerMenuFragment$setupAppbar$1.$r8$lambda$gBoclz8D0Sw4h8q_jCrCZt6n9Ww(Unknown Source:0)
09-26 16:04:11.930  6815  6815 I LSPosed-Bridge: 	at com.kieronquinn.app.classicpowermenu.ui.screens.powermenu.main.PowerMenuFragment$setupAppbar$1$$ExternalSyntheticLambda0.run(Unknown Source:2)
09-26 16:04:11.930  6815  6815 I LSPosed-Bridge: 	at android.os.Handler.handleCallback(Handler.java:938)
09-26 16:04:11.930  6815  6815 I LSPosed-Bridge: 	at android.os.Handler.dispatchMessage(Handler.java:99)
09-26 16:04:11.930  6815  6815 I LSPosed-Bridge: 	at android.os.Looper.loop(Looper.java:223)
09-26 16:04:11.930  6815  6815 I LSPosed-Bridge: 	at android.app.ActivityThread.main(ActivityThread.java:7665)
09-26 16:04:11.930  6815  6815 I LSPosed-Bridge: 	at java.lang.reflect.Method.invoke(Native Method)
09-26 16:04:11.930  6815  6815 I LSPosed-Bridge: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:594)
09-26 16:04:11.930  6815  6815 I LSPosed-Bridge: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
09-26 16:04:11.930  6815  6815 E AndroidRuntime: FATAL EXCEPTION: main
09-26 16:04:11.930  6815  6815 E AndroidRuntime: Process: com.kieronquinn.app.classicpowermenu, PID: 6815
09-26 16:04:11.930  6815  6815 E AndroidRuntime: java.lang.IllegalStateException: should never call auto-cleared-value get when it might not be available
09-26 16:04:11.930  6815  6815 E AndroidRuntime: 	at AutoClearedValue.getValue(AutoClearedValue.kt:46)
09-26 16:04:11.930  6815  6815 E AndroidRuntime: 	at com.kieronquinn.app.classicpowermenu.ui.base.BoundFragment.getBinding$app_release(BoundFragment.kt:17)
09-26 16:04:11.930  6815  6815 E AndroidRuntime: 	at com.kieronquinn.app.classicpowermenu.ui.screens.powermenu.main.PowerMenuFragment$setupAppbar$1.invokeSuspend$lambda-0(PowerMenuFragment.kt:178)
09-26 16:04:11.930  6815  6815 E AndroidRuntime: 	at com.kieronquinn.app.classicpowermenu.ui.screens.powermenu.main.PowerMenuFragment$setupAppbar$1.$r8$lambda$gBoclz8D0Sw4h8q_jCrCZt6n9Ww(Unknown Source:0)
09-26 16:04:11.930  6815  6815 E AndroidRuntime: 	at com.kieronquinn.app.classicpowermenu.ui.screens.powermenu.main.PowerMenuFragment$setupAppbar$1$$ExternalSyntheticLambda0.run(Unknown Source:2)
09-26 16:04:11.930  6815  6815 E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:938)
09-26 16:04:11.930  6815  6815 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:99)
09-26 16:04:11.930  6815  6815 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:223)
09-26 16:04:11.930  6815  6815 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7665)
09-26 16:04:11.930  6815  6815 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
09-26 16:04:11.930  6815  6815 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:594)
09-26 16:04:11.930  6815  6815 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

09-26 16:04:11.931  1638  7145 I DropBoxManagerService: add tag=data_app_crash isTagEnabled=true flags=0x2
09-26 16:04:11.931  1638  4010 W ActivityTaskManager:   Force finishing activity com.kieronquinn.app.classicpowermenu/.ui.activities.PowerMenuActivity

09-26 16:04:11.939  6815  6815 I Process : Sending signal. PID: 6815 SIG: 9

09-26 16:04:11.967   791   791 I Zygote  : Process 6815 exited due to signal 9 (Killed)

09-26 16:04:11.985   744  6848 D Magisk  : su: return code=[0]

09-26 16:04:11.988  1638  7917 I WindowManager: WIN DEATH: Window{6fd9980 u0 com.kieronquinn.app.classicpowermenu/com.kieronquinn.app.classicpowermenu.ui.activities.PowerMenuActivity}
09-26 16:04:11.988  1638  7917 W InputDispatcher: Attempted to unregister already unregistered input channel '6fd9980 com.kieronquinn.app.classicpowermenu/com.kieronquinn.app.classicpowermenu.ui.activities.PowerMenuActivity (server)'
09-26 16:04:11.988  1638  2741 I ActivityManager: Process com.kieronquinn.app.classicpowermenu (pid 6815) has died: vis TOP 
09-26 16:04:11.988  6855  6855 I com.kieronquinn.app.classicpowermenu:root: System.exit called, status: 0
09-26 16:04:11.988  6855  6855 I AndroidRuntime: VM exiting with result code 0.

09-26 16:04:11.992  1638  3971 W WindowManager: Cannot find window which accessibility connection is added to

09-26 16:04:12.002  1638  6078 W ActivityTaskManager: Bad activity token: android.os.BinderProxy@9234132
09-26 16:04:12.002  1638  6078 W ActivityTaskManager: java.lang.ClassCastException: android.os.BinderProxy cannot be cast to com.android.server.wm.ActivityRecord$Token
09-26 16:04:12.002  1638  6078 W ActivityTaskManager: 	at com.android.server.wm.ActivityRecord.forTokenLocked(ActivityRecord.java:1461)
09-26 16:04:12.002  1638  6078 W ActivityTaskManager: 	at com.android.server.wm.ActivityRecord.isInStackLocked(ActivityRecord.java:5666)
09-26 16:04:12.002  1638  6078 W ActivityTaskManager: 	at com.android.server.wm.ActivityTaskManagerService.setTaskDescription(ActivityTaskManagerService.java:3097)
09-26 16:04:12.002  1638  6078 W ActivityTaskManager: 	at android.app.IActivityTaskManager$Stub.onTransact(IActivityTaskManager.java:2513)
09-26 16:04:12.002  1638  6078 W ActivityTaskManager: 	at android.os.Binder.execTransactInternal(Binder.java:1154)
09-26 16:04:12.002  1638  6078 W ActivityTaskManager: 	at android.os.Binder.execTransact(Binder.java:1123)

09-26 16:04:12.004  1638  1667 W ActivityManager: setHasOverlayUi called on unknown pid: 6815```

Blur not working on Android 12

This worked perfectly on Android 11, now that I use Android 12, the Classic Power Menu background no longer has blur.

Blur is enabled on my system, it's even applied on Lawnchair 12 (with QuickSwitch), for example.

Lawnchair 12 with Blur

Power Menu without Blur

App version: 1.2
Android: 12 (LineageOS 19)
Device: Xiaomi Mi 9T
Xposed: LSPosed 1.6.2 (module enabled for System UI and Android Framework)
Magisk: 23.0

Home Control non-functional on Android 11

Device: motorola edge+ 2020 (burton)
Android: 11 (build: RPBS31.Q1-19-58-30-9)
CPM version: 1.6
Using Accessibility permissions

Home Controls are non-functional on this setup. They work correctly with the default Android 11 power menu.

Screen recording at the link below. Note how the toggles do not change state when clicking on them. Sliding is responsive, but the lights do not change.
https://streamable.com/0gn1y3

Logcat: https://www.pastevault.com/paste/d02H6tgRVQ0O9ak7QyGaXiii0JY#0DKid3xjHFxJsATBsfWtNMFk20aQAvFqj-SyI3g46Sv

Let me know if you need anything else. The logcat doesn't seem to be very descriptive of any issue that might be present.

Xposed module not working

I have tried enabling the Xposed module via Zygisk LSPosed on A11 and it doesn't seem to work. Only way I have gotten it to work is through Accessibility option.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.