Allow full control in OneUI?
In Repainter, you can get full control over the system colors in Samsung's OneUI, even with Shizuku. The only caveat is that you have to restart the phone to apply the new colors. As for me, Repainter's full control still works on OneUI 5, though I have seen that it doesn't seem to work at all on OneUI 6. Is it possible to have the app get full control over the system palette on OneUI even with Shizuku like Repainter can?
Unfortunately I don't have a Samsung device.
Oh, I see. Is there any way I can help?
Probably not but thanks. It's easier to develop and test on device I own instead of building blindly and testing by others.
Maybe any dev who has oneui can help, it's an open source project, you are free to fork, modify and release your own build.
Samsung has a free remote testing service if you want to test on Samsung devices.
Samsung has a free remote testing service if you want to test on Samsung devices.
Can any of you provide SystemUI.apk and framework-res.apk of samsung oneui 6? Then I can maybe make some progress.
Sure. Here they are from a Z Fold 5 with the latest One UI 6.0 build.
Samsung has a free remote testing service if you want to test on Samsung devices.
I just created an account and it gave me 10 free credits. Now everytime I visit that link, it asks me to login, after login it reloads the test lab page and asks to login again, stuck in a login loop lol.
Samsung has a free remote testing service if you want to test on Samsung devices.
I just created an account and it gave me 10 free credits. Now everytime I visit that link, it asks me to login, after login it reloads the test lab page and asks to login again, stuck in a login loop lol.
I just created an account too and it worked for me. What browser do you use? i used firefox
Chrome on windows 11. I will try again later in incognito mode. Probably that 10 credits won't be enough at all, but let's give it a shot.
Chrome on windows 11. I will try again later in incognito mode. Probably that 10 credits won't be enough at all, but let's give it a shot.
i think credits wont be a problem
Oh please no, repainter ruins the default one UI theme if you use it and you cannot use the phone's default color palette again until you factory reset. I really like that this app is only for apps color and not the system theme.
You don't need to factory reset Just stop the app again and the color palette will work again
Oh please no, repainter ruins the default one UI theme if you use it and you cannot use the phone's default color palette again until you factory reset. I really like that this app is only for apps color and not the system theme.
You don't need to factory reset Just stop the app again and the color palette will work again
When I used repainter even after disabling it won't let the default color palette settings work.
Unfortunately I still can't login in Samsung Test Lab. It keeps looping the login screen, I login and go to choose a device, it again asks me to login, after login it sends me back to choose a device, then again login and it keeps going on forever.
hi, is there any way I can maybe help with/contribute to this? I don't have a lot of experience in Android development (or Shizuku), but I do have general programming knowledge/experience and I'd love if I could contribute to this somehow. I have the following hardware available to me:
- Samsung Galaxy S23+ (primary phone, OneUI 6)
- Samsung Galaxy A51 (old phone, OneUI 5)
(I'd like to avoid targeting my main phone first, since I rely on it and don't want things to break)
Can you give me steps for getting started with this (e.g. important Material You/SystemUI internals)?
Also, thank you for creating this project in the first place ❤️
Can you give me steps for getting started with this (e.g. important Material You/SystemUI internals)?
I can send a test build which I was working on blindly without any Samsung device :") don't get hopes too high cause totally blind build and most probably won't work.
Sure! If I can help in any way that's great :3 I'll test it first on my old phone (OneUI 5) in case something breaks, if it works there I'll test on my main phone. I'm not home yet though, so I don't have access to my old phone atm (will be in a couple hours)
Sure! If I can help in any way that's great :3 I'll test it first on my old phone (OneUI 5) in case something breaks, if it works there I'll test on my main phone. I'm not home yet though, so I don't have access to my old phone atm (will be in a couple hours)
~~ColorBlendr v1.2 Debug Samsung.zip~~ Here you go. Not in a hurry ofcourse.
Tried it on my Fold 5, and it crashes when tapping a color.
FATAL EXCEPTION: main
Process: com.drdisagree.colorblendr, PID: 24753
java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Number
at com.drdisagree.colorblendr.utils.MiscUtil.convertToIntArray(MiscUtil.java:65)
at com.drdisagree.colorblendr.utils.OverlayManager.applyFabricatedColors(OverlayManager.java:221)
at com.drdisagree.colorblendr.ui.fragments.ColorsFragment.lambda$addColorsToContainer$14(ColorsFragment.java:422)
at com.drdisagree.colorblendr.ui.fragments.ColorsFragment.$r8$lambda$rieRlpZVMi0wGsq3TFo523NnDCQ(ColorsFragment.java:0)
at com.drdisagree.colorblendr.ui.fragments.ColorsFragment$$ExternalSyntheticLambda8.onClick(R8$$SyntheticClass:0)
at android.view.View.performClick(View.java:8043)
at android.view.View.performClickInternal(View.java:8020)
at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)
at android.view.View$PerformClick.run(View.java:31867)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:8913)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
~~ColorBlendr v1.2.zip~~ What about this one?
just a small question - how (un)likely is it that this will break the system? (and if it does, would it be hard to recover without factory resetting?) asking mostly out of curiosity
Doesn't crash, but nothing changes. I'll get a logcat later today if needed.
https://github.com/Mahmud0808/ColorBlendr/assets/352207/937f4455-8707-49f4-a390-09828f376560
@coggy9 iirc Repainter required you to reboot after applying on OneUI, I assume the same applies to ColorBlendr(?)
You're correct, but even after rebooting, nothing changed.
Doesn't crash, but nothing changes. I'll get a logcat later today if needed.
Screen.Recording.20240228.074027.Colorblendr.mp4
@coggy9 for the actual Samsung UI/OneUI elements you need to use Samsung's Theme Park (Galaxy Store), can you try a Material You app? (e.g. Google Translate)
Translate is a default blue color, but Gboard, which is set to use the dynamic colors, is still the pink color I selected before using ColorBlendr. 🤔
Well, I've hit my limit on what I can do here. Maybe a developer who has a Samsung device could pitch in and lend a hand with this.
as i said, I'd love to help, but I have no idea where to start.
as i said, I'd love to help, but I have no idea where to start.
It's quite hard for me to explain as you said you don't have any experience with android application. You first need to find out which method is used for applying themes in OverlayManager class of framework. Then you need to study how exactly it applies colors, like what parameters are being used etc. Then you have to replicate the same behavior using Shizuku API. If it throws security warning, then you need root to call that method. I hope this will make it little bit more clear.
thanks! ill see if i can maybe get something working (although I doubt I will lmao)
@Mahmud0808 I just tried the last build you posted, and it seems to have insufficient permissions to create a runtime resource overlay:
From my experiments, applying RROs through Galaxy Themes works fine (that is how 1st party themes get applied), so I have a theory on what could work:
- generate overlay package*, install it to the system then:
-
settings put system THEMEKEY OVERLAYPKGNAMEwhereTHEMEKEYis any of the following:-
current_sec_active_themepackage -
current_sec_aod_theme_package -
current_sec_appicon_theme_package -
current_sec_home_theme_package -
current_sec_iris_theme_package -
current_sec_wallpaper_theme_package(not sure which of these actually work, or if they work at all, but OneUI sets those values so I'm assuming they work)
-
- reboot (or reload theme overlays manually somehow?)
* i am not sure if this needs to be a full-blown OneUI theme (with RRO apks nested in assets/) or if it can be just a single overlay apk
I'm currently still in the process of reverse engineering and researching the OneUI theme format in an attempt to (more or less) fully understand how a OneUI theme package is structured, what keys/files/etc are needed and ways to apply them
(side note: the OneUI themes seem to have custom AndroidManifest.xml keys for which frameworks(?) are targeted, as well as some samsung-specific permission for themes (need to do more research on that))