Real life Difference between opengl and vulcan api - Xiaomi Redmi 3s Guides, News, & Discussion

I was going through all custom roms yesterday and saw that in the candy rom.
https://forum.xda-developers.com/xiaomi-redmi-3s/development/rom-candyrom-redmi-3s-prime-3x-t3680836
The op said in the last change log that he has added vulcan api so enjoy gaming...
Now I am not an expert on this subject so I was wondering that what difference does this make?
If anyone knows explain this in simple please.
Also if anyone knows any more roms with vulcam api please share the thread link...Thanks
Thank You

Well, depending on which games you play, you'll notice a difference in the graphics and maybe in the smoothness.
Regarding actual change, there are plenty of videos on youtube.
Most new roms have it: validus,xpe, nuclea, gonna try the new du (it probably has it because it's the same as validus)

bekcicandrej said:
Well, depending on which games you play, you'll notice a difference in the graphics and maybe in the smoothness.
Regarding actual change, there are plenty of videos on youtube.
Most new roms have it: validus,xpe, nuclea, gonna try the new du (it probably has it because it's the same as validus)
Click to expand...
Click to collapse
I play Injustice 2 mostly... will it make any difference in that? Currently I am using ViperOs by dineshthangavel47. And it runs as good as it ran on miui.
Any better suggestions ?

From Wikipedia, here is a list of Android games that support Vulkan API.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
I don't think there would be any performance and/or graphics quality difference on games that are not in this list. However, there could be noticeable performance difference among Android versions and different ROMs due to runtime enhancements and optimisations.

I know someone will ask this.... That's why I added link for wiki when adding changelog.... Still can't understand or lazy to read it or you didn't noticed....! Ok. Np... here is the big (yeah it's big I think ) explanation what I know...
As you can see it's Vulkan API. First...
What is an API..?
Computer or Smartphone... They are just machines and they don't have brain they don't know anything and they don't know how to learn anything (except Neural Networks). So... How can we make them to do the things what we say or what we want..? Answer is "Programming Languages". Machines can understand binary language (as it's just 0 and 1 i.e. on and off). If you try to convert any one character to binary it will result in 8 digits of zeros and ones. So if a human want to tell the machine some lines of commands... He need to convert all of it's each character into binary... Which is a big work.... I believe that "Machines are the results of Human's Lazyness". So we made some things called Programming Languages and Compilers. Compliers helped us to translate or convert Less complicated Languages (Human Readable) into Highly complected Languages (Machine Readable). And Programming Languages are the human readable Languages.... Here take a example If you gonna programme a robot... And you gives it a command to "turn". Before you gives that command.... You have to tell that robot what are the works it should do when you give that command. The command you give is called as "functions" in Programming. And the "API" is a thing which defines what should be done and how it should be done for a command or function. I hope now you can understand what is an API.
So....
What is Vulkan API..?
Normally things like Gaming are very heavy work for CPUs as it needs to calculate dimensions, draw them in screen, respond for user input and etc.... If you take Vulkan And OpenGL as persons... Vulkan is a intelligent person who can do the same work of OpenGL in a more intelligent, compact, faster way... So here it helps the CPU/GPU to handle the animation and graphics things in a less load way. So theoretically it should decrease heating (as the load of CPU decreases) and more (refer wikipedia link).
So every ROMs has Vulkan API..?
Nope... It should be included when the ROM was compiled... And to my knowledge @TeamMex is added it to his XPe sources (I think he taken it from santoni). It's not a included in Android Sources but in Vendor or Device related things.
Hey... I just asked the difference between OpenGL and Vulkan...!
Yeah... But this is the way I explain simple (Maybe it's complicated) things. THE TECHNOLOGY IS EVOLVING FASTER THAN HUMANS. The Vulkan API is a Evolved Version of OpenGL.... Which is smart, fast and better than OpenGL. But it should be implemented when The Game was programmed it means you won't see the difference in all ROMs. I think both are controlled by Khronos Group(Who are they..? Ask Google).
Go here for more
https://en.m.wikipedia.org/wiki/Vulkan_(API)
http://www.pcgamer.com/doom-benchmarks-return-vulkan-vs-opengl/
When I seen the commit made for Adding Vulkan API in GitHub. I found that the Dev added just one binary file for Adding Vulkan. So I made a ZIP which can add that binary to any ROM. I don't know is that was right... @TeamMex can answer it.
Here is that link for Vulkan API in Flashable ZIP. https://androidfilehost.com/?fid=962021903579483741

dineshthangavel47 said:
I know someone will ask this.... That's why I added link for wiki when adding changelog.... Still can't understand or lazy to read it or you didn't noticed....! Ok. Np... here is the big (yeah it's big I think ) explanation what I know...
As you can see it's Vulkan API. First...
What is an API..?
Computer or Smartphone... They are just machines and they don't have brain they don't know anything and they don't know how to learn anything (except Neural Networks). So... How can we make them to do the things what we say or what we want..? Answer is "Programming Languages". Machines can understand binary language (as it's just 0 and 1 i.e. on and off). If you try to convert any one character to binary it will result in 8 digits of zeros and ones. So if a human want to tell the machine some lines of commands... He need to convert all of it's each character into binary... Which is a big work.... I believe that "Machines are the results of Human's Lazyness". So we made some things called Programming Languages and Compilers. Compliers helped us to translate or convert Less complicated Languages (Human Readable) into Highly complected Languages (Machine Readable). And Programming Languages are the human readable Languages.... Here take a example If you gonna programme a robot... And you gives it a command to "turn". Before you gives that command.... You have to tell that robot what are the works it should do when you give that command. The command you give is called as "functions" in Programming. And the "API" is a thing which defines what should be done and how it should be done for a command or function. I hope now you can understand what is an API.
So....
What is Vulkan API..?
Normally things like Gaming are very heavy work for CPUs as it needs to calculate dimensions, draw them in screen, respond for user input and etc.... If you take Vulkan And OpenGL as persons... Vulkan is a intelligent person who can do the same work of OpenGL in a more intelligent, compact, faster way... So here it helps the CPU/GPU to handle the animation and graphics things in a less load way. So theoretically it should decrease heating (as the load of CPU decreases) and more (refer wikipedia link).
So every ROMs has Vulkan API..?
Nope... It should be included when the ROM was compiled... And to my knowledge @TeamMex is added it to his XPe sources (I think he taken it from santoni). It's not a included in Android Sources but in Vendor or Device related things.
Hey... I just asked the difference between OpenGL and Vulkan...!
Yeah... But this is the way I explain simple (Maybe it's complicated) things. THE TECHNOLOGY IS EVOLVING FASTER THAN HUMANS. The Vulkan API is a Evolved Version of OpenGL.... Which is smart, fast and better than OpenGL. But it should be implemented when The Game was programmed it means you won't see the difference in all ROMs. I think both are controlled by Khronos Group(Who are they..? Ask Google).
Go here for more
https://en.m.wikipedia.org/wiki/Vulkan_(API)
http://www.pcgamer.com/doom-benchmarks-return-vulkan-vs-opengl/
When I seen the commit made for Adding Vulkan API in GitHub. I found that the Dev added just one binary file for Adding Vulkan. So I made a ZIP which can add that binary to any ROM. I don't know is that was right... @TeamMex can answer it.
Here is that link for Vulkan API in Flashable ZIP. https://androidfilehost.com/?fid=962021903579483741
Click to expand...
Click to collapse
Thank you very much :good:

dineshthangavel47 said:
I know someone will ask this.... That's why I added link for wiki when adding changelog.... Still can't understand or lazy to read it or you didn't noticed....! Ok. Np... here is the big (yeah it's big I think ) explanation what I know...
As you can see it's Vulkan API. First...
What is an API..?
Computer or Smartphone... They are just machines and they don't have brain they don't know anything and they don't know how to learn anything (except Neural Networks). So... How can we make them to do the things what we say or what we want..? Answer is "Programming Languages". Machines can understand binary language (as it's just 0 and 1 i.e. on and off). If you try to convert any one character to binary it will result in 8 digits of zeros and ones. So if a human want to tell the machine some lines of commands... He need to convert all of it's each character into binary... Which is a big work.... I believe that "Machines are the results of Human's Lazyness". So we made some things called Programming Languages and Compilers. Compliers helped us to translate or convert Less complicated Languages (Human Readable) into Highly complected Languages (Machine Readable). And Programming Languages are the human readable Languages.... Here take a example If you gonna programme a robot... And you gives it a command to "turn". Before you gives that command.... You have to tell that robot what are the works it should do when you give that command. The command you give is called as "functions" in Programming. And the "API" is a thing which defines what should be done and how it should be done for a command or function. I hope now you can understand what is an API.
So....
What is Vulkan API..?
Normally things like Gaming are very heavy work for CPUs as it needs to calculate dimensions, draw them in screen, respond for user input and etc.... If you take Vulkan And OpenGL as persons... Vulkan is a intelligent person who can do the same work of OpenGL in a more intelligent, compact, faster way... So here it helps the CPU/GPU to handle the animation and graphics things in a less load way. So theoretically it should decrease heating (as the load of CPU decreases) and more (refer wikipedia link).
So every ROMs has Vulkan API..?
Nope... It should be included when the ROM was compiled... And to my knowledge @TeamMex is added it to his XPe sources (I think he taken it from santoni). It's not a included in Android Sources but in Vendor or Device related things.
Hey... I just asked the difference between OpenGL and Vulkan...!
Yeah... But this is the way I explain simple (Maybe it's complicated) things. THE TECHNOLOGY IS EVOLVING FASTER THAN HUMANS. The Vulkan API is a Evolved Version of OpenGL.... Which is smart, fast and better than OpenGL. But it should be implemented when The Game was programmed it means you won't see the difference in all ROMs. I think both are controlled by Khronos Group(Who are they..? Ask Google).
Go here for more
https://en.m.wikipedia.org/wiki/Vulkan_(API)
http://www.pcgamer.com/doom-benchmarks-return-vulkan-vs-opengl/
When I seen the commit made for Adding Vulkan API in GitHub. I found that the Dev added just one binary file for Adding Vulkan. So I made a ZIP which can add that binary to any ROM. I don't know is that was right... @TeamMex can answer it.
Here is that link for Vulkan API in Flashable ZIP. https://androidfilehost.com/?fid=962021903579483741
Click to expand...
Click to collapse
Can I flash this vulkan zip in globeRom based on miui 9?

tejjoshii said:
Can I flash this vulkan zip in globeRom based on miui 9?
Click to expand...
Click to collapse
Yes I think...

tejjoshii said:
Can I flash this vulkan zip in globeRom based on miui 9?
Click to expand...
Click to collapse
If the rom is N based yes and you need to add api permissions too.

TeamMex said:
If the rom is N based yes and you need to add api permissions too.
Click to expand...
Click to collapse
No it is mm based... :crying:

tejjoshii said:
No it is mm based... :crying:
Click to expand...
Click to collapse
Then you can't

did redmi 3s can play vulkan game?

vandasche said:
did redmi 3s can play vulkan game?
Click to expand...
Click to collapse
Yeah... If you have Vulkan API included ROM...

TeamMex said:
If the rom is N based yes and you need to add api permissions too.
Click to expand...
Click to collapse
how to give permission ?

i tried downloading vain glory vulkan beta.. but the game was not starting.. messed with the data files they were not able to download

Related

[MOD] [XPOSED][v1.1.0]FrankerFaceZ - Custom User Emotes for Twitch.TV [4.4.2+]

This is a simple module that adds the framework of FrankerFaceZ to the Twitch.TV mobile Android app. This module is available to Android 4.4.2 users and up.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Install the App
Enabled it
Reboot
???
See FrankerFaceZ emotes
Profit
Package Name: com.stdsbot.ffz
Module Name: FrankerFaceZ
Version Name: 1.1.2
Version Code: 4
The app can be found on the Xposed Module Repo (Can't post the link until i have 10 posts :/)
Questions? Comments? Concerns? Bugs?
Post them here and I will see what I can do.​
Known Bugs
None
FAQ
You say you update an Emote or <insert X resource here>, but I don't see the change....
The way twitch caches images, you will need to clear the app cache through your settings.
*Please note, this is my first Xposed module, and as such, I expect things to go wrong sometimes.*
Change Log
1.0.0 - Initial Release
1.1.0 - Bug Fixes
Logging is a bit crazy... Sorry for log spam with chat messages. It is removed in the next release.
FrankerFaceZ donor badges not showing up for donors
XposedInstaller crashing on install due to lack of VersionName and VersionCode
Emotes not loading unless you click from the "Following" directory.
1.1.1 - Bug Fixes
Emotes not loading due to CSS change.
Changed FFZ Donor Badge look to match Web Look
1.1.2 - Bug Fixes
Fixed an issue where the regex was 1 character shorter causing a visual bug.
Oh, wow. Thanks for doing this! And thanks for putting up with our CSS, lol. Unfortunately I can't test this right now as all my android devices are on lollipop. BibleThump
We'll be getting an API that returns JSON soon(ish). Soon being when I finally finish the website. Also coming, high DPI emote support. If you need anything, just let me know! I don't know much about Java and nothing about android development, but I can help with server stuff at least.
@Stds_catchemall do you mean emoticons? Will this mod work with note 3 n9005?
HTML:
thahim said:
@Stds_catchemall do you mean emoticons? Will this mod work with note 3 n9005?
Click to expand...
Click to collapse
The mod should on any device that is 4.4.2. emulators were not working for me when I wrote this ,but that has been fixed.
As I am New to the android scene, I am not sure of the upward comparability of apis (ie. 4.4.2 to 5.0). My app does not modify system settings so worst thing you can do is install it, and if twitch crashes ,uninstall it to regain functionality.
Stds_catchemall said:
HTML:
The mod should on any device that is 4.4.2. emulators were not working for me when I wrote this ,but that has been fixed.
As I am New to the android scene, I am not sure of the upward comparability of apis (ie. 4.4.2 to 5.0). My app does not modify system settings so worst thing you can do is install it, and if twitch crashes ,uninstall it to regain functionality.
Click to expand...
Click to collapse
What does this mod do?
thahim said:
What does this mod do?
Click to expand...
Click to collapse
And i do mean emotes, but i mean other things as well. I am currently working on adding in an Emote button for users who do not know or are unable to remember emote names.
My post says exactly what it does. It adds the FrankerFaceZ Framework to Twitch Mobile. If you don't know what FrankerFaceZ is, Google it as i cannot link yet.
Did u add a version number to it? When I downloaded it before it kept crashing xposed because it didn't have version
freecore.mc said:
Did u add a version number to it? When I downloaded it before it kept crashing xposed because it didn't have version
Click to expand...
Click to collapse
It's currently Version 1 (Physical Version), 1.0.0 (Human Readable version)
I have people who have already downloaded and are using it so that sounds like an issue with your device and Xposed, not my app.
Update:
I am new to the Android Scene and was unaware i had to put a version name and code in the Android Manifest. That has been corrected and updated later today.
Is it possible to mod Twitch to play the audio despite having the screen off?
Cares said:
Is it possible to mod Twitch to play the audio despite having the screen off?
Click to expand...
Click to collapse
Possibly. I can look into something like that, however this would be in another app, as this app is meant to be for FrankerFaceZ. I may end up making it one whole project in the future however.
Stds_catchemall said:
This is a simple module that adds the framework of FrankerFaceZ to the Twitch.TV mobile Android app. This module is available to Android 4.4.2 users and up.
View attachment 3112568
Install the App
Enabled it
Reboot
???
See FrankerFaceZ emotes
Profit
Package Name: com.stdsbot.ffz
Module Name: FrankerFaceZ
Version Name: 1.1.0
Version Code: 2
The app can be found on the Xposed Module Repo (Can't post the link until i have 10 posts :/)
Questions? Comments? Concerns? Bugs?
Post them here and I will see what I can do.​
Known Bugs
None
FAQ
You say you update an Emote or <insert X resource here>, but I don't see the change....
The way twitch caches images, you will need to clear the app cache through your settings.
*Please note, this is my first Xposed module, and as such, I expect things to go wrong sometimes.*
Change Log
1.0.0 - Initial Release
1.1.0 - Bug Fixes
Logging is a bit crazy... Sorry for log spam with chat messages. It is removed in the next release.
FrankerFaceZ donor badges not showing up for donors
XposedInstaller crashing on install due to lack of VersionName and VersionCode
Emotes not loading unless you click from the "Following" directory.
1.1.1 - Bug Fixes
Emotes not loading due to CSS change.
Changed FFZ Donor Badge look to match Web Look
Click to expand...
Click to collapse
where is the download link?
thatonemusicalgamer said:
where is the download link?
Click to expand...
Click to collapse
First of all, let me start off by saying don't EVER quote the OP. If you have a question just post it, and I will get to it as soon as I can. No need for context.
Second, if you read the post i said,
Stds_catchemall said:
The app can be found on the Xposed Module Repo (Can't post the link until i have 10 posts :/)
Click to expand...
Click to collapse
I do not have 10 posts, therefore I cannot link it. Go to the Xposed Repo, and search for FrankerFaceZ, you will find it.
Hello!
I have a question: by "framework of FrankerFaceZ" you mean that little cowboy hat button that allows you to select an emote from a list, like the one that implements the add-on for web browsers? Because I installed your module and I did not see that... Could you please explain me that part? Thanks!
Hello, I just found this module and wondering if it's still being developed. I was unsuccessful in getting it to work on my Galaxy S III running 4.4.2
jimieo said:
Hello, I just found this module and wondering if it's still being developed. I was unsuccessful in getting it to work on my Galaxy S III running 4.4.2
Click to expand...
Click to collapse
It seems that the module is dead, either way.
I'm not a Java developer but I know that the following the things are true :
1. Twitch's app package name changed from com.twitch.android.viewer to com.twitch.android.app and therefore this module doesn't hook onto the current Twitch app.
2. The class/way the chatbox system is handled has been changed.
I've been trying to see if I could so something with @Stds_catchemall 's work but I've been unable to unfortunately yet, I want to work with source code and not the 'Smali God' method as people used to call it, but I'm unable at the moment to compile any closed app in Android Studio for the matter, while I can compile the apps they do not perform their functions (1.7 source, compiling with Android 4.0.4 SDK, also tried 4.4.2 SDK) and I cannot figure out why yet so I can't experiment, I have added the included Xposed Bridge API and even set as 'provided' but still no ball here so I'll be likely to post a thread sometime.
Either way, when I've played with the 'Smali' method I've only tried to change the package name, albeit it did result in the module being loaded but crashes when chatbox opens.
Even when I find that I will have set up Android Studio in the future, I will have to do a lot of experimentation for a huge amount in the source code is foreign to me.
That's a shame. I was so hopeful when I installed it. It would be really awesome to get FrankerFaceZ to work for android!
Any news on this at all? Anything in progress? Thanks.
Stds_catchemall said:
ping
Click to expand...
Click to collapse
sewer56lol said:
ping
Click to expand...
Click to collapse
usna said:
That's a shame. I was so hopeful when I installed it. It would be really awesome to get FrankerFaceZ to work for android!
Any news on this at all? Anything in progress? Thanks.
​
Click to expand...
Click to collapse
I have quit development on this as an app has been created which does the purpose of this application. Look up StrimgBagZ on the market
Stds_catchemall said:
I have quit development on this as an app has been created which does the purpose of this application. Look up StrimgBagZ on the market
Click to expand...
Click to collapse
Thanks! Why do they call it something that obscure? Makes it kind of hard to find unless you are already aware of it.
usna said:
Thanks! Why do they call it something that obscure? Makes it kind of hard to find unless you are already aware of it.
Click to expand...
Click to collapse
Seems it was answered ahead of time .
StrimbagZ now exists and implements a unique method of implementing FFZ to mobile.
Let's just say that it encapsulates the regular browser extension and draws a browser window on the bottom half of the screen while keeps the top half for the stream .
Due to the design, the normal PC interface of the extension in fact looks pretty good on mobile in fact the original FFZ dev helped a bit towards this app as he hid options that are redundant if the client is detected (e.g. Stream delay under stream).
I gave the dev a lot of praise and I still do - the way he scales the browser window for chat... Well... I couldn't break it since original release.
(Oh and I was also 2nd to download it on the Play Store ).
As for integrating it back to the Twitch app... Well, the code of the Twitch app - let's say got a bit obfuscated. Being Java the language originally used was beyond my knowledge and our dev here also struggled a bit with regards to how (I want to say obfuscated) the code of the app's chat because following changes back at the time it broke - it probably would have taken either too much trial and improvement (which takes time) to pull off or the source code.
Sent from my ONE A2003 using Tapatalk

[Development] Discovering, reverse-engineering and using vendor HALs

Project Treble provides a great help in getting access to vendor-specific HALs, I'll try to explain how, and how to exploit it.
Presentation of vendor HIDLs
Thanks to Project Treble, all HALs must be defined through HIDL.
Standard AOSP HALs means that a generic AOSP system works with standard AOSP features.
But, vendor HALs are also going through HIDL!
APIs defined through HIDL are stable, versioned, hashed and easy to access.
Just plug the HIDL inside your build system, and you get easy access from your applications to the HAL behind the HIDL!
Also, APIs defined through HIDL are supposed to be clean, and mostly self-documented, so getting the HIDL can help understand how the HAL works.
To understand how easy it is, here is a real world client usage of an HIDL:
Code:
IExtBiometricsFingerprint service = IExtBiometricsFingerprint.getService();
service.sendCmdToHal(NAV_ON);
With the HIDL, enabling gestures on the fingerprint sensor on Huawei devices is a two liners! [1]
Browsing vendor HIDLs
Now, the problem is that HIDLs are part of the source code, not the firmware.
So if the vendor doesn't publish it, there is some additional work to do.
Android build system is capable of generating two client APIs for HALs using HIDL. Either a C++ library, or a java library. Not all firmwares will contain java libraries for all APIs, but C++ is almost always available.
Both languages make it fairly easy to reverse engineer the prototype of the functions, which is almost all of HIDL (c++ is missing function arguments)
So, I made a script to reverse engineer those HALs ( https://github.com/phhusson/treble_experimentations/blob/master/vendor-HAL/reverse-hal.sh ).
It is far from perfect, it can't generate a full-blown HIDL, but it makes discovery much easier!
Here are a few examples of APIs it is giving access to:
- Touch screen gives us access to Glove mode and cover mode
- Display gives us access to functions like setColorTemperature, or updateRgbGamma
- Infrared HAL gives us access to learning capability
- fingerprint sensor gives us access to sendCmdToHal
With the first three examples, we can see things can be easy, but the last one makes things trickier. With the last one, there is still a magic value to give to the sendCmdToHal function.
Anyway, that's still quite an improvement compared to before Treble.
Using vendor HALs
So, let's say we've discovered [email protected]::hwTsSetGloveMode(bool) function, and we want to call it.
As I mentioned in the first section, if we have the HIDL, it's a two liners.
But, we don't have it, so what do we do?
Android build system usually generates HIDL client code for C++ and Java, so we just need to piggy-back to this code to be able to call the functions!
Using vendor HALs from Java
For Java, the idea is fairly simple, we need to copy/paste the code from the original firmware (either from an app or framework), and copy it in our own environment.
It's a bit more complicated to realize, here is how I did it:
- grep -rF <name of the function> system # To find where to find the java symbols
This gave me system/system/framework/oat/arm64/hwServices.vdex
- deodex it
- Retrieve all symbols inside proper folder. In this case, vendor/huawei/hardware/tp
- Create a mock of the java class ( here is an example )
- Create the code to call this (here is an example)
- Build the mock and the caller (here is an example)
- Decompile the result into smali
- Replace the mock code by the actual classes from the original firmware
- Recompile the whole
- Run the resulting app/dex
Things to improve
First problem here, is this code is annoying to automate and put into a build system.
Them, we can only partially reverse-engineer the HIDL, which leads to two problems:
- We need to piggy-back previous firmware's APIs
- Calling C++ is much harder (because ABI behaviour when changing headers is tricky)
The cleanest solution would be to fully reverse-engineer the HIDLs.
Though current reverse engineering is so bad that it doesn't even list all the functions available, so a lot of work is needed.
Conclusion
Project Treble's HALs are fun to play with, look at it!
[1] I'm a bit lying here. This is enough to enable event reporting, but there are some additional changes needed to make sense of those events
Thanks for your great work here OP
BTW, on Honor 9 stock EMUI HwCamera2 can't take a photo ( checked on landscape or portrait mode on the both camera ), but video recording it's working like expected !
Also with your solution, home button it's working in this way : when I press home button it's open search with a "=" into it
surdu_petru said:
BTW, on Honor 9 stock EMUI HwCamera2 can't take a photo ( checked on landscape or portrait mode on the both camera ), but video recording it's working like expected !
Click to expand...
Click to collapse
This is fixed by https://github.com/phhusson/huawei_camera_aosp/commit/177459fdb76f0aa68fa4ffb869b633d9460a2fb0
Also with your solution, home button it's working in this way : when I press home button it's open search with a "=" into it
Click to expand...
Click to collapse
Yeah, that's what my footnote basically says
Huawei is defining the meaning of fingerprint evdev in /vendor/usr/keylayout/fingerprint.kl, but the KEYCODE_FINGERPRINT_* it uses doesn't exist in AOSP.
What I'm planning to do there is a daemon listening exclusively to /dev/input/eventX of fingerprint, and launch commands based on the events.
This could have performance issues (input keyevent KEYCODE_HOME takes half a second), so I might switch to creating an uinput.
phhusson said:
This is fixed by https://github.com/phhusson/huawei_camera_aosp/commit/177459fdb76f0aa68fa4ffb869b633d9460a2fb0
Yeah, that's what my footnote basically says
Huawei is defining the meaning of fingerprint evdev in /vendor/usr/keylayout/fingerprint.kl, but the KEYCODE_FINGERPRINT_* it uses doesn't exist in AOSP.
What I'm planning to do there is a daemon listening exclusively to /dev/input/eventX of fingerprint, and launch commands based on the events.
This could have performance issues (input keyevent KEYCODE_HOME takes half a second), so I might switch to creating an uinput.
Click to expand...
Click to collapse
Thank you very much, and good luck
surdu_petru said:
Thank you very much, and good luck
Click to expand...
Click to collapse
Does your fingerprint sensor mechanically click? Or is it just some capacitive sensor?
phhusson said:
Does your fingerprint sensor mechanically click? Or is it just some capacitive sensor?
Click to expand...
Click to collapse
No, the only one withe the click is into Honor 8 ... I already see it this : "key 28 ENTER" into fingerprint.kl ... maybe here we can defined as virtual or something like this if I'm not wrong, but sure need to be tested
EDIT :
I guess it's used only on Honor 8, as fingerprint.kl is almost the same for all devices
surdu_petru said:
No, the only one withe the click is into Honor 8 ... I already see it this : "key 28 ENTER" into fingerprint.kl ... maybe here we can defined as virtual or something like this if I'm not wrong, but sure need to be tested
EDIT :
I guess it's used only on Honor 8, as fingerprint.kl is almost the same for all devices
Click to expand...
Click to collapse
Well, my Device (Mate 9), which doesn't mechanically click, does trigger click event.
The way I'm doing it doesn't require changing vendor partition. But yes, changing vendor/usr/keylayout/fingerprint.kl would be much easier.
xx
Diggin on "my own"
Good evening out there!
First of all: Thank you very much for all of your afford till now.
I own a honor 9 lite and im investigating right now how oreo and treble works.
So i took your reverse_hal and tried to improve it a little bit (see attachment).
Maybe it can keep things easier?
Does it make sense to read out all classes in the so's?
I've uploaded the script (reverse-hal-grork.sh) and an example-output from vendor.huawei.hardware.biometrics.fingerprint.
Please, have a look at it.
greetings
vsrookie
PS: If there are any ideas to improve just tell. I thought about automatically create JavaClasses? Or Smali? Will it work?
vsrookie said:
Good evening out there!
First of all: Thank you very much for all of your afford till now.
I own a honor 9 lite and im investigating right now how oreo and treble works.
So i took your reverse_hal and tried to improve it a little bit (see attachment).
Maybe it can keep things easier?
Does it make sense to read out all classes in the so's?
I've uploaded the script (reverse-hal-grork.sh) and an example-output from vendor.huawei.hardware.biometrics.fingerprint.
Please, have a look at it.
greetings
vsrookie
PS: If there are any ideas to improve just tell. I thought about automatically create JavaClasses? Or Smali? Will it work?
Click to expand...
Click to collapse
Looks good
Could you make a pull-request to https://github.com/phhusson/treble_experimentations/ ?
The ideal target would be to generate the original .hal file, so that we can generate c++ and java code automatically with hidl-gen.
I don't know how big is the gap to be able to do that though...
Hi.
I dont think that it will be earlier then the weekend.
But i will do.
Also i go on with my investigation at weekend.
Greetings
Vsrookie
This is interesting... Going to see if I could extract something useful from the Nabi SE, as I'm curious if it can be Treble'd.
phhusson said:
Project Treble provides a great help in getting access to vendor-specific HALs, I'll try to explain how, and how to exploit it.
Presentation of vendor HIDLs
Thanks to Project Treble, all HALs must be defined through HIDL.
Standard AOSP HALs means that a generic AOSP system works with standard AOSP features.
But, vendor HALs are also going through HIDL!
APIs defined through HIDL are stable, versioned, hashed and easy to access.
Just plug the HIDL inside your build system, and you get easy access from your applications to the HAL behind the HIDL!
Also, APIs defined through HIDL are supposed to be clean, and mostly self-documented, so getting the HIDL can help understand how the HAL works.
To understand how easy it is, here is a real world client usage of an HIDL:
With the HIDL, enabling gestures on the fingerprint sensor on Huawei devices is a two liners! [1]
Browsing vendor HIDLs
Now, the problem is that HIDLs are part of the source code, not the firmware.
So if the vendor doesn't publish it, there is some additional work to do.
Android build system is capable of generating two client APIs for HALs using HIDL. Either a C++ library, or a java library. Not all firmwares will contain java libraries for all APIs, but C++ is almost always available.
Both languages make it fairly easy to reverse engineer the prototype of the functions, which is almost all of HIDL (c++ is missing function arguments)
So, I made a script to reverse engineer those HALs ( https://github.com/phhusson/treble_experimentations/blob/master/vendor-HAL/reverse-hal.sh ).
It is far from perfect, it can't generate a full-blown HIDL, but it makes discovery much easier!
Here are a few examples of APIs it is giving access to:
- Touch screen gives us access to Glove mode and cover mode
- Display gives us access to functions like setColorTemperature, or updateRgbGamma
- Infrared HAL gives us access to learning capability
- fingerprint sensor gives us access to sendCmdToHal
With the first three examples, we can see things can be easy, but the last one makes things trickier. With the last one, there is still a magic value to give to the sendCmdToHal function.
Anyway, that's still quite an improvement compared to before Treble.
Using vendor HALs
So, let's say we've discovered [email protected]::hwTsSetGloveMode(bool) function, and we want to call it.
As I mentioned in the first section, if we have the HIDL, it's a two liners.
But, we don't have it, so what do we do?
Android build system usually generates HIDL client code for C++ and Java, so we just need to piggy-back to this code to be able to call the functions!
Using vendor HALs from Java
For Java, the idea is fairly simple, we need to copy/paste the code from the original firmware (either from an app or framework), and copy it in our own environment.
It's a bit more complicated to realize, here is how I did it:
- grep -rF <name of the function> system # To find where to find the java symbols
This gave me system/system/framework/oat/arm64/hwServices.vdex
- deodex it
- Retrieve all symbols inside proper folder. In this case, vendor/huawei/hardware/tp
- Create a mock of the java class ( here is an example )
- Create the code to call this (here is an example)
- Build the mock and the caller (here is an example)
- Decompile the result into smali
- Replace the mock code by the actual classes from the original firmware
- Recompile the whole
- Run the resulting app/dex
Things to improve
First problem here, is this code is annoying to automate and put into a build system.
Them, we can only partially reverse-engineer the HIDL, which leads to two problems:
- We need to piggy-back previous firmware's APIs
- Calling C++ is much harder (because ABI behaviour when changing headers is tricky)
The cleanest solution would be to fully reverse-engineer the HIDLs.
Though current reverse engineering is so bad that it doesn't even list all the functions available, so a lot of work is needed.
Conclusion
Project Treble's HALs are fun to play with, look at it!
[1] I'm a bit lying here. This is enough to enable event reporting, but there are some additional changes needed to make sense of those events
Click to expand...
Click to collapse
So my theory is.
Trebel is a wrapper for closed source drivers ?
If so. Knowing the calls to the drivers give you the code to make any driver trebel ...

[ROM][OFFICIAL] RattlesnakeOS [Android 9.0]

Intro
This is a bit different than most postings here, as I'm not providing any binaries to install on your phone and instead providing a simple tool, rattlesnakeos-stack, to build your own OS based on AOSP on a regular basis, with your own signing keys, and your own OTA updates. This probably will be interesting to a small subset of users as it does cost money to run this infrastructure in AWS.
What is RattlesnakeOS
RattlesnakeOS is privacy focused Android OS based on AOSP for Google Pixel phones. It is my migration strategy away from CopperheadOS (hence the name similarity) which is no longer maintained.
Features:
Based on latest AOSP 9.0 (Android P)
Support for Google Pixel, Pixel XL, Pixel 2, Pixel 2 XL
Monthly software and firmware security fixes delivered through built in OTA updater
Maintain verified boot with a locked bootloader just like official Android but with your own personal signing keys
Latest Chromium browser and webview
Latest F-Droid client and privileged extension
Free of Google’s apps and services
What is rattlesnakeos-stack
Rather than providing random binaries of RattlesnakeOS to install on your phone, I've gone the route of creating a cross platform tool, rattlesnakeos-stack, that provisions all of the AWS infrastructure needed to continuously build your own personal RattlesnakeOS, with your own signing keys, and your own OTA updates. It uses AWS Lambda to provision EC2 spot instances that build RattlesnakeOS and upload artifacts to S3. Resulting OS builds are configured to receive over the air updates from this environment. It only costs a few dollars a month to run (see FAQ for detailed cost breakdown).
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
How do I set this up?
Head over to the github repo and take a look at the README for full setup, build, and flashing instructions.
I'm confused, why not just compile for us and post the builds? This seems more like something that should go in the guides section of the pixel XL forum?
stebomurkn420 said:
I'm confused, why not just compile for us and post the builds? This seems more like something that should go in the guides section of the pixel XL forum?
Click to expand...
Click to collapse
Yeah, feel free to put this wherever. The entire point of this is to not trust random uploaded binaries and automate the process of creating your own builds, with your own keys, with OTA updates.
dantheman78 said:
Yeah, feel free to put this wherever. The entire point of this is to not trust random uploaded binaries and automate the process of creating your own builds, with your own keys, with OTA updates.
Click to expand...
Click to collapse
I appreciate the concept, just not the right place for it I feel. Hopefully mods can move the thread before further confusion is created and someone tries to flash your build scripts. Lmao.
stebomurkn420 said:
I appreciate the concept, just not the right place for it I feel. Hopefully mods can move the thread before further confusion is created and someone tries to flash your build scripts. Lmao.
Click to expand...
Click to collapse
Ha, I'd be thoroughly impressed if someone managed to flash my build scripts
dantheman78 said:
Ha, I'd be thoroughly impressed if someone managed to flash my build scripts
Click to expand...
Click to collapse
Lmao. Key word ***tries*** and then comes running to your thread complaining "This ROM doesn't work"...
I think this is misleading.
Yousvel said:
I think this is misleading.
Click to expand...
Click to collapse
Not trying to mislead anyone. Just was looking for a place to post this. It seemed like since i developed something for the Pixel XL - it should go in the development section, but I'm fine wherever it ends up.
I wonder why this great project of yours isn't getting more love. For me personally it's because of AWS.
WorldsFastestMango said:
I wonder why this great project of yours isn't getting more love. For me personally it's because of AWS.
Click to expand...
Click to collapse
Me too can't build it locally. Don't wanna f**k around with AWS to compile
WorldsFastestMango said:
I wonder why this great project of yours isn't getting more love. For me personally it's because of AWS.
Click to expand...
Click to collapse
Thanks for the kind words. No worries, I'm definitely not expecting this project to be for everyone, but just wanted to share it in case anyone else was interested. I decided to go the cloud provider route as I don't have a beefy enough machine to do builds myself, and this option provides a cheap way to do automated builds by spinning up and down servers as needed. Also, it allows for hosting OTA updates which is nice.
This is a very concise and well done tutorial. Thanks for all your work, currently building the ROM as I type.
V
This is truly a next gen custom ROM project. Kudos @dantheman78
viridius said:
This is a very concise and well done tutorial. Thanks for all your work, currently building the ROM as I type.
V
Click to expand...
Click to collapse
Thanks! I updated the post to reflect that it supports 9.0 and all Pixel devices now as well.
@dantheman78 do you plan to include any of the hardening found in ROMs like CopperheadOS?
guttsy said:
@dantheman78 do you plan to include any of the hardening found in ROMs like CopperheadOS?
Click to expand...
Click to collapse
@guttsy - probably not unfortunately. Not because I wouldn't like to implement it and have this functionality, but because I know that it's not reasonable for me to maintain especially across releases of new version of Android. Fortunately, there were a lot of great privacy/security features added with the Android P release that overlapped with some of the features of CopperheadOS (e.g. not allowing sensor/camera/mic access in background, mac randomization, etc.)
@dantheman78 I'd be amazing if you included the option to build with MicroG and signature spoofing support.
the.D said:
@dantheman78 I'd be amazing if you included the option to build with MicroG and signature spoofing support.
Click to expand...
Click to collapse
It wouldn't be difficult to do this, although it looks like there isn't an official patch for Android P yet (https://github.com/microg/android_packages_apps_GmsCore/tree/master/patches). While I think MicroG is a neat project, I'm personally not sold on it from a privacy/security perspective. I'd much rather minimize data being sent to Google altogether and avoid unnecessary attack surface by adding software with elevated permissions like this. That said, I'd still be open to a contribution to the project to add it as optional (off by default) flag.
dantheman78 said:
@guttsy - probably not unfortunately. Not because I wouldn't like to implement it and have this functionality, but because I know that it's not reasonable for me to maintain especially across releases of new version of Android. Fortunately, there were a lot of great privacy/security features added with the Android P release that overlapped with some of the features of CopperheadOS (e.g. not allowing sensor/camera/mic access in background, mac randomization, etc.)
Click to expand...
Click to collapse
Good points. Do you have any experience with Wireguard VPN? There appears to be a 9.0 branch for the Pixel 2 XL kernel module and I'm wondering whether it's stable and performant enough (in terms of CPU time / battery drain) compared to OpenVPN to make it worth investigating how to build it for RattlesnakeOS.
guttsy said:
Good points. Do you have any experience with Wireguard VPN? There appears to be a 9.0 branch for the Pixel 2 XL kernel module and I'm wondering whether it's stable and performant enough (in terms of CPU time / battery drain) compared to OpenVPN to make it worth investigating how to build it for RattlesnakeOS.
Click to expand...
Click to collapse
I have used the wireguard userland implementation and I'm a fan of it. I had someone attempt to contribute optional support for the wireguard kernel module on github, but the author of wireguard chimed in and said that the kernel module currently required root still (https://github.com/dan-v/rattlesnakeos-stack/pull/6#issuecomment-400511271). This was a while ago though and I'm not sure if this is still accurate or not. Anyways I'd definitely consider adding optional kernel support for wireguard if it doesn't require root.

Windows 11 Bugs

Since we will be having more and more folks testing Windows 11,
I thought it would be Fun to start a New Thread Dedicated to Posting Windows 11 Bugs!
Please share anything you discover, be it bluestacks being flipped as evidenced below... hahaha!
or how Camtasia cannot properly separate and / or cut audio right now!!
Give the super nerds a Good Chuckle
This Image is from my MANYgH0$t VM Image.
My guide on installing this image should be releasing today...
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
MORE BUGS: AMD CPU USERS CANNOT RUN ANDROID SUBSYSTEM WITHIN THE VIRTUAL MACHINE, I HAVE TRIED MANY COMBINATIONS OF NESTED PAGING, ENABLING AND TURNING OFF VIRTUALIZATION INSIDE THE VM AND OUTSIDE ON THE HOST.
THE INTEL SOFTWARE BRIDGE APPEARS FLAWED IN THE FACT THAT IT DOES NOT DO WHAT IT IS PROPORTED TO DO, ON AN AMD DEVICE. EVEN IF IT WERE TO TRANSLATE THE SUBSYSTEM CORRECTLY, IT IS DOING SO IN A WAY THAT ACTUALLY IS A REGRESSION.
6 YEARS AGO WE COULD RUN AN ANDROID EMULATOR, WITHIN A VIRTUAL MACHINE, FOR 1 GB IN FILESIZE AND MINIMAL RAM.... WHICH IS 7 TIMES LESS THAN WHAT WE ARE WITNESSING NOW....
IN THEORY, THE ANDROID SUBSYSTEM SHOULD BE INSTALLING OUR APKS ON OUR BARE BONES MACHINES, ALLOWING THEM TO BE ABLE TO BE RAN "WITHOUT" AN EMULATOR.... WHICH IN TECHNICAL JARGON, IS AKIN TO THE HYPERVISOR 1...
BUT IN DOING SO, IT REQUIRES IMMENSLY MORE DATA THAN ANYTHING WE'VE SEEN IN THE PAST ON HYPERVISOR 2 EMULATORS... WHY???
Is this not a REGRESSION? In theory shouldn't HYPERVISOR 1 PRODUCTS use LESS RAM AND STORAGE SPACE than a secondary product like bluestacks or a virtual machine image??? SINCE THEY ARE BEING INSTALLED DIRECTLY ON OUR MACHINE?? AND NOT IN A PROGRAM??
AGAIN WHAT IS BEING SAID ABOVE IS THEORY AND INTENDED TO SPARK CRITICAL THOUGHT IN THOSE THAT CHOOSE TO READ AND COMPREHEND WHAT I'M SAYING.
{Mod edit}
AFAIK Windows 11 knows of the following subsystems
WOW64 ( by default )
WSL ( optional - type: Bare Metal Hypervisor )
WSA (optional - type: Bare Metal Hypervisor )
WSL & WSA aren't emulators ( like Bluestacks ) what run on a Hosted Hypervisor.
Why hypervisors are segregated into two types is because of the presence or absence of the underlying OS:
Type 1 runs directly on the hardware with Virtual Machine resources provided. Type 2 runs on top of the host OS to provide virtualization management and other services, hence it SHARES the hardware resources ( CPU-cores, RAM ) with underlying OS.
Type 1 generates lesser overhead, and any malfunction in an individual VM does not harm the rest of the system. it is a more secure option. Unlike the hosted hypervisor, bare-metal hypervisors do not depend upon the underlying OS.
jwoegerbauer said:
AFAIK Windows 11 knows of the following subsystems
WOW64 ( by default )
WSL ( optional - type: Bare Metal Hypervisor )
WSA (optional - type: Bare Metal Hypervisor )
WSL & WSA aren't emulators ( like Bluestacks ) what run on a Hosted Hypervisor.
View attachment 5482875
Why hypervisors are segregated into two types is because of the presence or absence of the underlying OS:
Type 1 runs directly on the hardware with Virtual Machine resources provided. Type 2 runs on top of the host OS to provide virtualization management and other services, hence it SHARES the hardware resources ( CPU-cores, RAM ) with underlying OS.
Click to expand...
Click to collapse
My question is why is this Android Subsystem Program We have to download and run, on an already humungous in storage operating system, is in essence, no better than the technology we have and have had for many years, the hypervisor 2s... What problem is this new "Android Subsystem" Solving, except One That IT Created??

			
				
I appreciate your replies, I am well versed on the differences between the two. What I want to comprehend better is why we need this version of Windows 11. How does having a hypervisor 1 program inbedded in our host OS just to run android apps Help us, and not hinder us?
I have run apps on windows 11 directly and indirectly on emulators, no noticeable difference, whatsoever!
jenneh said:
What I want to comprehend better is why we need this version of Windows 11. How does having a hypervisor 1 program inbedded in our host OS just to run android apps Help us, and not hinder us?
Click to expand...
Click to collapse
My POV:
Nobody is forced to add WSA subsystem to Windows 11 in order to run Android apps.
Anyone can still install an Android emulator ( Type 2 hypervisor ) to run Android apps.
I for one do not use Android emulators like BS anymore: I only use WSA.
jwoegerbauer said:
My POV:
Nobody is forced to add WSA subsystem to Windows 11 in order to run Android apps.
Anyone can still install an Android emulator ( Type 2 hypervisor ) to run Android apps.
I for one do not use Android emulators like BS anymore: I only use WSA.
Click to expand...
Click to collapse
The point is being missed entirely.... that's okay. I feel WSA is inferior to a bare bones emulator, one that you make yourself, and not bluestacks.
I'd love to be proven wrong, but I asked several times, and like I said the point was missed.
It's not about the fact that WSA doesn't have to be installed, it is questioning what benefit does having it installed actually provide in anyone's user experience?
I have seen no performance increase, no extra stability, nothing other than obstacles to do something that we already can do in virtualbox.
It makes me wonder if anbox is as horrifically implemented as this subsystem or if they provide the superior option? https://anbox.io/#collapse2
I'm going to install this on a virtual linux machine now and find out
"Runs Android without hardware virtualization and seamlessly bridges over hardware acceleration features."
We will just see about that!
----My friend Ron Suggested to use a system ram and cpu checking app on all these platforms to add further evidence to my theory, working on that now
jenneh said:
MACHINE
Click to expand...
Click to collapse
jenneh said:
The point is being missed entirely.... that's okay. I feel WSA is inferior to a bare bones emulator, one that you make yourself, and not bluestacks.
I'd love to be proven wrong, but I asked several times, and like I said the point was missed.
It's not about the fact that WSA doesn't have to be installed, it is questioning what benefit does having it installed actually provide in anyone's user experience?
I have seen no performance increase, no extra stability, nothing other than obstacles to do something that we already can do in virtualbox.
It makes me wonder if anbox is as horrifically implemented as this subsystem or if they provide the superior option? https://anbox.io/#collapse2
I'm going to install this on a virtual linux machine now and find out
"Runs Android without hardware virtualization and seamlessly bridges over hardware acceleration features."
We will just see about that!
----My friend Ron Suggested to use a system ram and cpu checking app on all these platforms to add further evidence to my theory, working on that now
Click to expand...
Click to collapse
I'm building upon my thought here, perhaps this hypervisor 1 CAN be useful in the fact that one could run Pentesting apps and executables ambidextrously, no? Like burpsuite.exe to packet sniff apks, and sbgamehacker.apk for mem editing executable programs no? I'm in another project, literally in a kernel RN, so If Anyone Knows or Figures out the Answer before I do.. {Mod edit}
At time of this writing this thread is titled
Windows 11 Bugs
At time of this writing neither You nor anyone else posted here a bug related to Windows 11 OS. You for whatever reason only concentrate to disavow WSA what isn't part of Windows 11 OS by default. WTF?
My recommendation: Change this thread's title to "Any Advantages Using WSA" or similar.
jwoegerbauer said:
At time of this writing this thread is titled
Windows 11 Bugs
At time of this writing neither You nor anyone else posted here a bug related to Windows 11 OS. You for whatever reason only concentrate to disavow WSA what isn't part of Windows 11 OS by default. WTF?
My recommendation: Change this thread's title to "Any Advantages Using WSA" or similar.
Click to expand...
Click to collapse
I have been kind and understanding, that what I am talking about is Going Above What you are comprehending. I do not understand why you continue to post on my thread when you do not understand what it is about. The bluestacks Bug IS A WINDOWS 11 BUG. My disdain for WSA Has Nothing To Do With this Thread. Quit GateKeeping The Windows Thread
It's well known that BS what is based on Oracle VM Virtualbox currently no longer works on Windows 11 due to compatibility problems when Hyper-V or Windows Hypervisor is installed. That's not a Windows 11 bug, it's a Virtualbox ( BS ) bug.
I read somewhere that Oracle is currently working on resolving this known issue with an estimated release date for a compatible VirtualBox version later this year.
That's how it is.
So no bugs then..........??
HipKat said:
So no bugs then..........??
Click to expand...
Click to collapse
HEHEHEHE <3 not from anyone new just yet. i guess we are just tooo pro no-liferz, unlike the rest of the world~ with lifez and such~ unable to test methods~ in the first week~
albeit Even Month Or Two.
Thank God We Don't All Hold Standards to Navi's "Level"
Muahahahhaha!~!
jenneh said:
HEHEHEHE <3 not from anyone new just yet. i guess we are just tooo pro no-liferz, unlike the rest of the world~ with lifez and such~ unable to test methods~ in the first week~
albeit Even Month Or Two.
Thank God We Don't All Hold Standards to Navi's "Level"
Muahahahhaha!~!
Click to expand...
Click to collapse
All that aside I do appreciate your guides on alternative WIndows builds. Try not to let people get you too excited. You make good contributions here. Keep that up! <3
HipKat said:
All that aside I do appreciate your guides on alternative WIndows builds. Try not to let people get you too excited. You make good contributions here. Keep that up! <3
Click to expand...
Click to collapse
Thank You. I wish I could be as Quiet as I once was... but i feel a battle is On and we need to Ready Our Players. Eff People Like Navi, Folks~!
/You/ /US/ /WE/ /TOGETHER/ /CREATE/ THIS
AND I'M SORRY ANYONE READING THESE CURRENTLY THAT CANNOT "ENVISION" WHAT A FUTURE YOUNG MIND MIGHT THINK ABOUT WHAT IS SAID AS OPPOSED TO "CURRENT" TECHNOLOGY...
AGAIN... CHROMA... I TALKED ABOUT IT... THERE ARE ALWAYS MORE THAN 3, "THREE" SOLUTIONS TO ANY EQUATION.
THINK ABOUT IT.
BREAK YOUR BRAIN A LITTLE.
THEN LET'S HOOKUP ON YT <3
May be I'm struck with blindness: I can't see any W11 bug actually pointed out here. Am I the only one?
i Love You Guys <3
mayer2 said:
May be I'm struck with blindness: I can't see any W11 bug actually pointed out here. Am I the only one?
Click to expand...
Click to collapse
No, I too am BLIND

WIn Odin - Quick Facts

Howdy! Since Project Valhalla has gone live, many people are wondering a lot of things about it, so I wanted to write down a quick breakdown of important facts to know about this Windows community port for Odin Base and Odin Pro.
This post will be kept updated if new developments occur.
Project Valhalla
Windows 11 ARM on AYN Odin Port Quick facts​
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Hardware​Project Valhalla allows Snapdragon Odins to run Windows 11. Most of the Odin features don't and do work:
Odin HardwareWorks/Does not workControllers and ButtonsWorks. Sticks have a bit of latency lag reported in some applications.Resolution Presets1080p (default), 900p, 768p, 720p, 648p and 540p (in-game only)Full TouchscreenWorksFanYes, runs at 50% the speed. Fan speed control app is currently in the works.LED LightsStick lights are on. LED Light control app is currently in the works and allow to turn all LED lights (shoulder,sticks) or turn them off.RumbleNo driver for Windows yetGyroscopeWorksDisplayPort (via USB-C)Works (mirror and secondary monitor)HDMI out (via microHDMI)Not supportedChargingQuickCharge and PD protocols workMicro SD Card SlotWorksHeadphone JackWorksSpeakersWorks
Compatible Odin Accessories
Most new USB-C accessories should work out of the box. The SuperDock fully works on the Odin:
PortsWorksEthernet portHDMI portN64 portsGC portsSATA 2.5" Drive slot
However, there are limitations in Windows ARM, these are some things to consider:
Peripherals and devices only work if the drivers they depend on are built into Windows 11, or if the hardware developer has released ARM64 drivers for the device. Learn more here
Software​
Supported APIs
These are some of the following APIs supported on Odin running Windows ARM (as of the publication of this post)
APIWorks/Does not workDirectX11.1OpenCL1.0,1.1OpenGL4.1
However, there are limitations in Windows ARM, these are some things to consider:
In x86 emulation: Games and apps won't work if they use a version of OpenGL greater than 3.3, or if they rely on "anti-cheat" drivers that haven't been made for Windows 11 ARM-based PCs. Learn more here
Supported architectures
Windows on ARM runs all x86, ARM32, and ARM64 apps (including UWP apps).
ARM32 & ARM64 appsRun natively without any emulationx86 appsRun via emulation layer. 32-bit runs the best, while 64-bit was recently added and is a big hit and miss. Microsoft is still developing the x64 layer further
For more information on how Windows on ARM runs apps, or if you are interested in learning to code/compile for ARM, visit Microsoft's Documentation site.
Unsupported features
Android SubsystemThis port does not have Hyper-V support due to licensing issues, thus it won't work.VirtualizationWin Odin cannot visualize Linux or other systems since it lacks WL firmware.
Samples of best running games
To show what the Odin is capable with Windows 11, here are a couple of few game tested by amazing members in our community:
TitlePlayabilityArchitectureNotesBinding of Isaac: RepentancePerfectx86Slight delay loading new rooms and levels. Otherwise perfect 60FPS. Needs OpenGL Compatibility Pack to runHollow KnightsPerfectx86You have to run 1.4.3.2 version since that one is 32-bitJet Set RadioPerfectx86Compatibility SheetSonic ManiaPerfectx86Compatibility SheetStreet Fighter IVPerfectx86Performance clipSkyrimGreatx86Taki Udon's clipTomb RaiderGreatx86Taki Udon's clipWorld of WarcraftPerfectARM64Taki Udon's clip
Community sheet
There are more games being tested in our community sheet. Click here to find more games or request someone to test a game (works best in Desktop)
Emulation on Win Odin
Emulating titles on Win Odin is possible, and there are a couple of options that can work. Here are a couple of things to consider:
Using x86/x64 emulators might not work or give the best performance since you will essentially be doing an emulation of an emulator, emulating a game.
Some emulators might open, but they might not (i,e, CEMU) or be incompatible due to the lack of proper drivers (Citra, NS Emulators)
The best emulators to use would be ARM native apps. Popular emulators can run natively on Windows 11 ARM, but it requires building them.
Fortunately, we do have a couple of few. Additionally, there are some 32-bit emulators that do work decently on Win Odin:
EmulatorUsabilityNotesDolphin EmulatorPerfectDolphin has an ARM compiler, but it needs to be manually built. The Dolphin team does offer compiling instructions in their Github Page.DuckstationGreatHas an official ARM build, but there is reports of sticks having a huge latency issue. This only affects sticks and not buttons.PPSSPPGoodSome games can run well, but others perform poorly in comparison to running them on Android.Retrix GoldGreat - WIPA new universal emulator that runs natively on ARM. Link to official website is here.RetroArch (32-bit version)GoodRuns older titles without issues. N64 and Dreamcast games crash.RetroArch (UWP version)Great - WIPCommunity port made by the same developer of Retrix Gold, with ARM cores. N64 and Dreamcast games are buggy. Check Github for current compatibility.
Click here to find some download links or guides on how to compile ARM emulators (works best in Desktop)
Tips about running games on Win Odin
Not all games are will work on Odin, since some games will not recognize Adreno GPUs (even if the games are x86).
For best compatibility, always use x86 or ARM native games/apps. Many older titles are 32-bit, in comparison to newer titles. However there are 64-bit games with 32-bit versions.
A great way to check if your favourite games use any specific APIs or if they have 32-bit or 64-bit executables, look up your titles in PCWikiGaming
Some games will require tweaking with settings or installing addons, so just be mindful of this as the ARM system is limited.
There are several guides for finding games that could work on the Odin:
List of 32-bit games
List of native ARM Windows games
Power consumption
Note: This is a rough estimation based on the content provided by users and also in reviews. This is an ongoing topic for research and be updated as time goes.
The Odin has a 6600mah battery, but Windows devices tend to show the power in W instead of Ma. In a couple of recent Taki Udon's videos, the overlays in his videos shows it having 27.720 Wh
These are some reported power consumption in the following scenarios. Note that these are scenarios of the Odin running the fan at 50% speed, with LED stick lights on and full screen brightness (to our understanding).
StatusWatt consumptionBattery life estimationIdle~1—2 w~13—27 daysSleepingDuring a 8hr sleep, it was reported the Odin only lost between 2-3% of its power (approximately 0.5—0.8 w )~34—55 daysRunning 2D titles in RetroArch (32-bit)~4—4.5 w~6—7 hoursRunning Borderlands 2 (32-bit, 648p)~6—7 w~4—4.5 hoursRunning Street Fighter IV (32-bit)~5—6 w~5 hoursRunning Skyrim (32-bit, 720p)~8w~3.5 hours
​Quick FAQs​Will the Odin Lite support Windows 11 too?
No. This is because there is no drivers for it or official support. The reason the Odin has it is because the work of this port is based of the Project Renegade's Windows port for Snapdragon 845 devices.
Click to expand...
Click to collapse
Why does the Odin run Windows 11 and not Windows 10?
Windows 11 has better x86 emulation layers, as well as x64 emulation support. Additionally, this version optimized best for touchscreens. Check out some of Windows 11's newest features and also gesture guides here.
Click to expand...
Click to collapse
Where can I find the tutorial to install Windows on Odin?
Project Valhalla has a Github repository, with a complete guide. Video guides will come soon.
Click to expand...
Click to collapse
Is this an official port by AYN?
No, this is a community port. And as such, AYN will not provide support for this operating system and installing this may in fact void your warranty.
Like with many flashing projects, this is a delicate process. We cannot guarantee no issues when attempting to install this port on your Odin. Furthermore, this installation may brick your device. Do so at your own risk.
Click to expand...
Click to collapse
Who's behind this port?
This was done by TJ, an amazing tech developer. If you'd like to support his completed works, feel free to check his profile at Github.
Click to expand...
Click to collapse
Can we dual boot?
Not yet, and not anytime soon. Ideally we would need developers to jump on board and find solutions for this.
Click to expand...
Click to collapse
Is it possible to revert to Android in case I didn't like Win Odin?
Yes. Thor, from Retro Handhelds, developed an easy solution to flash and root our Odins as we await for AYN to provide an official solution for boot-loading/rooting our devices. Firmware backup can be found at the Retro Handheld firmware channel. Join the RH discord to access the file and ask other folks who have flashed their Odin for feedback, or download directly here.
Click to expand...
Click to collapse
What games can't run well?
Much like with Android, we created a compatibility sheet to show which games run the best on Odin, as well as other resources. Check the link here or in the Sidebar widget (Desktop) or in the Info tab in mobile.
Click to expand...
Click to collapse
And one last thing I would ask from you if you are interested is to avoid over-asking the aforementioned developers with features or request since they work during their free time.
If you have any other questions, feel free to ask in the comments and I'll be glad to help with what I know.
If interested in developing/helping this community project with more solutions, please let us know in this thread!​

Categories

Resources