https://www.linuxondex.com/beta-registration
does say "Note9 and Tab S4 devices," i signed up this morning with the hope it will come out for s9+ also
Link does not work for me
Hope will work on my s9+ with dockless dex(In pie update). That will be a game changer for our device
No luck for S9+ yet
If only I could trick the play store and download the app
Leonidas87 said:
No luck for S9+ yet
If only I could trick the play store and download the app
Click to expand...
Click to collapse
https://www.apkmirror.com/apk/samsu...inux-on-dex-beta-1-0-38-android-apk-download/
I already sideloaded the apk and it doesn't work on S9/+. The app checks if you have a supported firmware.
I decompiled the apk on my linux machine and am searching where the check is being performed. to see if i can bypass it.
The response message you get is defined as a string that translates back to an id. This id i traced back to EntryActivity.smali alongside a const v2, whatever that might be. Inside this .smali file there are multiple references to versions, processor so this seems to be where the check is called.
Is there anybody here that actually has programming knowledge that could point me in the right direction on how to do this? I've never really looked into the inner workings of an app before, nor did i ever really program anything except some small python projects.
Aerox912 said:
I already sideloaded the apk and it doesn't work on S9/+. The app checks if you have a supported firmware....
Click to expand...
Click to collapse
If you are on android 9 the app opens and lets you use it. I have not loaded a Linux image yet to fully test it.
If you guys missed out on the Android Beta 9 enrollment early today I have uploaded the OTA update here .
https://forum.xda-developers.com/galaxy-s9-plus/how-to/official-android-9-beta-download-t3867703
I installed it on my S9+ and I can't get it to run "Linux on Dex requires device to have the latest software to support some features."
https://www.androidauthority.com/samsung-linux-on-dex-beta-923435/ Looks like the linux apps for this need to support ARM 64-bit architecture.
Leonidas87 said:
No luck for S9+ yet
If only I could trick the play store and download the app
Click to expand...
Click to collapse
Build.prop (?)
Linux image cannot be downloaded on s9+
I have OneUI beta installed on my s9+ and in the official link, the store says the device is not compatible. When you download it via APK mirror, it doesnt allow you install the linux image. The error message is as follows "the web page at lxd-wv=a.samsungknox.com could not be loaded because net:: ERR_CLEARTEXT_NOT_PERMITTED"
Try to download Linux images from :
https://webview.linuxondex.com
Please tell us if it works
Aerox912 said:
I already sideloaded the apk and it doesn't work on S9/+. The app checks if you have a supported firmware.
I decompiled the apk on my linux machine and am searching where the check is being performed. to see if i can bypass it.
The response message you get is defined as a string that translates back to an id. This id i traced back to EntryActivity.smali alongside a const v2, whatever that might be. Inside this .smali file there are multiple references to versions, processor so this seems to be where the check is called.
Is there anybody here that actually has programming knowledge that could point me in the right direction on how to do this? I've never really looked into the inner workings of an app before, nor did i ever really program anything except some small python projects.
Click to expand...
Click to collapse
S9+ on Android P beta, signed up and accepted for LinuxOnDex beta, installed the apk from apkmirror, downloaded the image and extracted to LoD directory. On starting terminal mode I see this in logcat:
Code:
11-29 22:44:17.901 E/AndroidRuntime(23999): FATAL EXCEPTION: main
11-29 22:44:17.901 E/AndroidRuntime(23999): Process: com.samsung.android.lxd, PID: 23999
11-29 22:44:17.901 E/AndroidRuntime(23999): com.samsung.android.lxd.processor.LxdException: undefined model: SM-G965F, star2lte
11-29 22:44:17.901 E/AndroidRuntime(23999): at com.samsung.android.lxd.a.g.c(ModelTypeUtils.java:77)
11-29 22:44:17.901 E/AndroidRuntime(23999): at com.samsung.android.lxd.a.g.a(ModelTypeUtils.java:40)
so it (was) in ModelTypeUtils.java which has been renamed to a method 'c' in class 'com.samsung.android.lxd.a.g'.
But, I'm going to guess that this needs root access to do its low-level linux things, so the edited apk might need to be signed by Samsung to work
Was super excited there for a moment, I downloaded and unzipped the file to the lod folder in my s9+. The app recognized the file and allowed me to create the container. For using linux visually I needed to use DeX but everytime i clicked run black screen appears and immediately crashes. If u r persistent it is just black screen with "please wait".
Linux on Dex S9+ support
Does anyone find a workaround to make Linux on Dex work on the S9+? When loading the container with the Ubuntu image it get sutck on "Please wait" with a black screen...
Btw i'm using the beta 2 with hotfix of Android pie for S9+ with apkmirror Linux on Dex Beta version.
Skimi said:
Does anyone find a workaround to make Linux on Dex work on the S9+?
When loading the container with the Ubuntu image it get sutck on "Please wait" with a black screen...
Click to expand...
Click to collapse
same results here on S9+...
I've downloaded apk and ubuntu 16 image but after loading container and connecting DEX i see only "Please wait..." notification.
(hint: after installing, uninstalling and one more time installing LoD program won't start - i had to delete LoD folder first)
Are you using a official dex accessory or some generic brand?
Skimi said:
Are you using a official dex accessory or some generic brand?
Click to expand...
Click to collapse
Generic with full support for DEX (android desktop works just fine)
I also use acrobat generic adapter with full support for dex, it could be that Linux on Dex it's only supported by the original adapters...
Related
While browsing for apps I came through a site called www.zuneboards.com and it had a program called Liberate for Zune HD. I downloaded the v1.6.2 zip and extracted it and copied to my HTC 7 Pro and tried to run the native executables. Most of them did not work but there was one named reboot.exe and when I tried to open it from the FileBrowser it actually asked if I wanted to reboot my phone and when I tapped on yes it did reboot.
There was another executable cabinstall.exe and when it was executed gave a message to double tap on the cab file which might mean that it we can open a cab file but need to set the correct registry path for the cabinstall.exe to be called when opening a cab file which I am not able to do.
Any help will be appreciated.
I am not sure what it means but is it now possible to make native executables run on windows phone 7? I am able to open Opera Mobile by ultrashot by directly running the executable instead of the opera launcher as well.
I have added the zip file which has the executables.
Are you on a custom ROM or a stock ROM? Native executables have been possible on custom ROMs for a long time, but if this works on a stock ROM... time to investigate.
EDIT: Your link is going to a 404 error page, not a ZIP file. Re-upload maybe?
GoodDayToDie said:
Are you on a custom ROM or a stock ROM? Native executables have been possible on custom ROMs for a long time, but if this works on a stock ROM... time to investigate.
EDIT: Your link is going to a 404 error page, not a ZIP file. Re-upload maybe?
Click to expand...
Click to collapse
I have updated the attachment. Should work now.
I am on a custom rom so I am not sure if it will work on a stock rom or not.
It uses executables built for WinCE 6.0. This is also a valid way to build native code on WP7 (WP7 uses a CE kernel version somewhere between 6.0 and 7.0) so it's no surprise that at least some of the apps will work.
Is there source code available for this hack? It would be interesting to see what they did. It's probably ZHD-specific (for the general unlock) but it *might* be useful for WP7 hacking too...
GoodDayToDie said:
Is there source code available for this hack? It would be interesting to see what they did. It's probably ZHD-specific (for the general unlock) but it *might* be useful for WP7 hacking too...
Click to expand...
Click to collapse
Source code is in the attachment.
404 error page again (WTF? Never seen that on anybody else's attachments!)
GoodDayToDie said:
404 error page again (WTF? Never seen that on anybody else's attachments!)
Click to expand...
Click to collapse
@GoodDayToDie I am not sure why the attachments are giving the 404 error.
Here is the link to mediafire http://www.mediafire.com/?4g82q2eoww16kgr
@GoodDaytoDie
Did you find anything interesting or useful in the source?
Not yet, but it was a busy weekend. I'm looking through a number of things at the same time and haven't dug into that one yet.
However, it's worth noting that the Zune HD uses a very different security model from WP7. I didn't do any ZHD dev or hacking, so I'm not entirely familiar with how its app model works.
Thanks for the source though! I'll dig into it further and let you know if I find anything. I may have to create an account on that other forum too; it looks like they're doing some WP7 hacking as well.
I tried sources in VS 2008. New project must be created from old source codes and main entry point must be added to properties/link/commandline option, or changed to wmain. See http://forum.xda-developers.com/showthread.php?p=33649737#post33649737 , download zip.
Edit: I've created a xposed module which works with the banking app version 1.7.1 see post below.
---------------------------------------------------
Edit: The changes needed to work with the latest version of the app (1.7.1) are listed in a post below below.
---------------------------------------------------
*There was a error in the diff file. I've uploaded the correct version. Also this patch will definitely not work with the latest version of the app.*
I managed to patch the Barclays mobile banking app version 1.4.2 to make it work with cyanagonmod 10.0 and cyanogenmod 11.
I realize that the current version on play store is 1.7.1 but I haven't updated to the latest version yet. If you do try the latest version please let me know if it differs greatly from the current version in it's root checks
I'm not going to attach the patched apk since using banking app from a stranger on the internet is really not a smart thing . Instead I will detail the work I did which hopefully someone else will find useful.
This guide is geared towards more technical people who already have some experience with android development. It will not give a detailed step by step how to, rather a general information about the process.
Obfuscation methods used in the app
The app obfuscates the names of some but not all of the namespaces/classes/methods which can stump some decompilers.
It seems to generously sprinkle useless switch statements and loops which does nothing but make the code appear way more complicated than it really is. I would guess quite a lot of the bulk in the code is coming through these dummy statements. smali2java-toolkit was of great help to figure this out.
All strings in the app have been encrypted by a simple xor algorithm which is then decrypted at run time just before they are used:
for example rather than
Code:
myfunction(“Hello world”)
the code writes something in the sort of:
Code:
myfunction(decrypt(“Juqqdxidqw”, 'x'))
The decryption function is a static method 'bЮЮЮЮЮЮ' in the class appears to be 'rrrrrr.srrrrr' (the method/class/namespace names are obfusecated)
I extracted the decompiled code from this method to write a console application which let me decrypt any string in the application:
Code:
static String decrypt(String crypStr, char keyChar) {
char[] arrayOfChar1 = crypStr.toCharArray();
char[] arrayOfChar2 = new char[arrayOfChar1.length];
for (int i = 0; i < arrayOfChar1.length; i++)
{
int j = keyChar ^ arrayOfChar1[i];
arrayOfChar2[i] = ((char)j);
}
return new String(arrayOfChar2);
}
Anti root methods used in the app
Checking for 'test-keys' string in the build tag. (/system/build.prop file)
Checking for superuser related package/apk files.
Checking for superuser hider package/apk files.
Checking for existance of 'su' binary
Attempting to execute 'su' binaryThe above checks are done both in the java/dex code and in a native code library.
Defeating the anti-root methods in Java/dex code:
The Java code is fairly easy defeat since changing the strings of the apk/file names which are checked as root related will make it think that no 'bad' apps are on the phone.
A bulk of checks happen in the isRootedDevice method of the com.barclays.android.application.BMBApplication class. While it checks for quite a lot of apk's, for my particular purpose I only needed to patch 2 lines in the method:
Smali file line 306 – which starts the checks for “test-keys” string in the build tag.
Smali file line 407 – which start the check for the string “/system/app/Superuser.apk”.The next method in the same class 'runRootCommand' attempts to execute 'su'
Smali line: 956 – which contains the string “su” which will be passed to java.lang.Runtime.exec
A (mostly?) duplicate of the isRootedDevice function exists in the com.barclays.android.container.DeviceData the relevant lines are :
smali file line 1237: "test-keys" string check
smali file line 1271: "/system/app/Superuser.apk" file checkAll of the above checks can easily be defeated by changing the the string so that it will check for a non existent package or file.
Keep in mind that all the strings listed above are in encrypted form. You can use the decrypt function listed above to decode them. I found the key char/byte needed to decrypt a given string is in the very next line to the one containing the encrypted string.
Defeating the anti-root methods in Native library
From what I can see the exact same tests which were done in the Java code is repeated in the native code library 'libtest_ndk.so'. As this check appears to form part of the authentication mechanism i don't believe it's possible to simply stop this check from being called from the Java code.
Also the com.barclays.android.container.sampler.SharedLibraryLoader which loads the native library appears to be doing some kind of checksum validation. While this probably could be easily worked around, disassembling an arm shared library was non trivial for me.
My approach was to write another native library which would hook into all the system calls such as 'system' 'stat' 'fopen', '__system_property_get' and redirect any operations to non existent targets, or change the return value. This achieves the same thing as what was done for the java code.
I put in some extra code into the smali classes to load my native library and to call it's initializer with the path to the actual native library.
Basic steps performed to patch the library:
Use apktool to decompile the original apk.
Code:
apktool d barclays.apk barclays
Use smali2java as helper to understand the code: This tool cannot decompile the critical check functions due to obfuscation. However it made it easier to understand the smali files generated by the apktool.
Patch the smali files to work around the checks as described above.
Build the hooking native library seperately
Code:
~/adt/adt-bundle-linux-x86_64-20131030/sdk/tools/android update project --path . --target android-19
ndk-build
Include the hooking shared library into the lib/armeabi of the decompiled package and change the smali files to load the new shared library.
Use apktool to rebuild the apk.
Code:
Apktool b barclays barclays.apk
Sign the apk from using your own key.
Create keystore:
Code:
keytool.exe -genkey -v -keystore my-release-key.keystore -alias release -keyalg RSA -keysize 2048 -validity 20000
Sign Keystore:
Code:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore barclays.apk release
Attached is the code for the hook library native project and the diff for the smali changes. Please note that this is for the smali files for generated by apktool (v1.5.2) for the version 1.4.2 of the Barclays mobile banking app.
For Users of other ROMs/SU applications and root hiders.
The app checks for a lot of common packages which I did not bother to patch since I don't use them, but if you do then you should put fixes for all those package/file names in both the smali and native code hook library.
A non exhustive list of files it check are:
Code:
/system/bin/amphoras
/system/bin/su
/system/xbin/su
/system/app/superuser.apk
/data/data/com.amphoras.hidemyroot
/data/data/eu.chainfire.supersu
/data/data/stericson.busybox
/data/data/stericson.busybox.donate
/data/data/com.jrummy.busybox.installer.pro
/data/data/com.jrummy.busybox.installer
/data/data/com.rootuninstaller.free
/data/data/com.rootuninstaller
Hey i will try this out shortly and post a APK (whether you use it or not thats up to you, but i am well known in the xperia play section of this website and should be trusted, Still its up to you.)
EDIT: well i am not a android developer, i can follow almost all this post except the bits about the native library any chance of a bit more information
specifically this bit "Include the hooking shared library into the lib/armeabi of the decompiled package and change the smali files to load the new shared library."
i assume that means just simply copy the built lib file in to that folder then include the file in the code somewhere? where do i do that to?
Sorry about the late reply but I just saw this message.
fma965 said:
EDIT: well i am not a android developer, i can follow almost all this post except the bits about the native library any chance of a bit more information
specifically this bit "Include the hooking shared library into the lib/armeabi of the decompiled package and change the smali files to load the new shared library."
i assume that means just simply copy the built lib file in to that folder then include the file in the code somewhere? where do i do that to?
Click to expand...
Click to collapse
That's pretty much correct. There is already a 'libtest_ndk.so' file in the lib/armeabi folder of the apk. You just have to build my code from the zip file to get the libhooktest.so, which should then be copied into the lib/armeabi folder alongside the libtest_ndk.so.
Edit: Not sure if this is enough instructions. I'm just not good at writing instructions. Steps you need to build the native library are in my post. If you need more info i suggest about building the library http://code.google.com/p/awesomeguy/wiki/JNITutorial#Setup_Environment is a good
Afterwards you have to do the modifications I've listed in the diff to the .smali files.
But i have some bad news about this patch:
The diff file i have attached in the post is wrong. I've mistakenly uploaded the patch to reverse the changes i did . I will update the post with the correct diff file.
It will only work for Barclays app version 1.4.2. it will definitely not work for the latest version of the app which is 1.7.1.
I'm currently going through the code of 1.7.1 I've made some headway into the code but there I'm quite way off from getting it to work.
If you wish I can give you a copy of the original 1.4.2 of Barclays app, the built lib file and the patched app. I would recommend against using the patched app blindly but it might make it easier to figure out the changes i did. I would rather not upload them to xda though.
HiddenRambler said:
Sorry about the late reply but I just saw this message.
That's pretty much correct. There is already a 'libtest_ndk.so' file in the lib/armeabi folder of the apk. You just have to build my code from the zip file to get the libhooktest.so, which should then be copied into the lib/armeabi folder alongside the libtest_ndk.so.
Edit: Not sure if this is enough instructions. I'm just not good at writing instructions. Steps you need to build the native library are in my post. If you need more info i suggest about building the library http://code.google.com/p/awesomeguy/wiki/JNITutorial#Setup_Environment is a good
Afterwards you have to do the modifications I've listed in the diff to the .smali files.
But i have some bad news about this patch:
The diff file i have attached in the post is wrong. I've mistakenly uploaded the patch to reverse the changes i did . I will update the post with the correct diff file.
It will only work for Barclays app version 1.4.2. it will definitely not work for the latest version of the app which is 1.7.1.
I'm currently going through the code of 1.7.1 I've made some headway into the code but there I'm quite way off from getting it to work.
If you wish I can give you a copy of the original 1.4.2 of Barclays app, the built lib file and the patched app. I would recommend against using the patched app blindly but it might make it easier to figure out the changes i did. I would rather not upload them to xda though.
Click to expand...
Click to collapse
No worries about the late reply, yeah you basically told me what i assumed it was i had to do, however when i was trying to do it i didn't have a 1.4.2 apk so was trying ot use 1.7.X and obviously failed .
Yeah the modifications to smali files is easy well when you know what your changing xD
if you could upload the apk for 1.4.2 that would be great, i would assume that as long as the signature matches the official apk its untampered, your modified one will obviously be signed with a different signature though.
:cyclops:
Good news. I've managed to get latest version 1.7.1 patched . I will try to post the patch information this weekend. In the meantime i suggest anyone interested download a copy from the play store and keep a backup of the apk in case they release a new version.
Fix for latest version of the mobile banking app (version 1.7.1)
I've figured out the changes required for the v1.7.1 of the app which is the latest version as of this post.
Changes from the old 1.4.2 are:
Almost all the classes in the app are now obfuscated, whereas before only some of the core class names were obfuscated.
The string encryption has changed. rather than a single encryption function it now uses a group of functions to perform the encryption. rrrrrr/vuuuvu class seems to manage invoking the proper decryptor based on the arguments.
All root checking is now done via the native library.
Native library now does some checks as soon as it's loaded before any methods are called.
The last change is a big problem since its not possible to do the patching of the dll after loading it as was done before. The onload/init of the dll exits the whole application as soon as it detects the phone is rooted.
My solution was to use a modified version of the 'crazy_linker' custom loader library which comes with the ndk to load the library into memory without invoking it's onload/init functions. This lets us hook into the necessary functions before they are called.
I've attached the smali changes as a diff and the new native hook library in this post.
As a side note I think the version 1.4.2 is a far better version. Why on earth would a banking app need to permissions to take pictures, who spends their time 'customizing' a banking app with personal pictures.
Edit: I've fixed a bug where the root was still being detected when used with chainfire su app. Special thanks to lil-diabo for helping me fix the issue. :good:
Xposed module for barclays banking app 1.7.1
Edit: New version (BarcPosed1.1.apk) has some support for barclays pingit. I've not tested this my self as I don't use the application personally. If anyone tries it please let me know.
I've converted my patch into xposed module. This module is compatible with the current banking app (version 1.7.1).
Please consider this as a beta version for now. I've tested it on cyanogenmod but it might have some issues with other roms. If you try it please let me know if it worked.
Assuming you already have a working xposed installation the steps to get the app working are:
1) Install banking app from playstore. Make sure it's version 1.7.1
2) Install the BarcPosed.apk from my post.
3) Run the BarcPosed app and click the 'install' button. You will need to grant it root permissions.
4) Enable the module in xposed and reboot.
5) Use the barclays app as normal.
6) Disable automatic updates for the banking app to prevent it from updating.
I've included the source code for the app.
Thanks, works perfectly. You sir (or madam) are a genius
Sent from my GT-I9300 using XDA Premium 4 mobile app
Works like a charm
Just tested it and it works!
Most excellent, Thanks again for your hard work.
So much easier than having to manually edit the files etc.
It works,excellent job, finally can use Barclays mobile, thank you very much
sent from Samsung Galaxy S4 Active
Just tested and it worked marvellously. Could you please make a fix for pingit as well?
Zell Dinch said:
Just tested and it worked marvellously. Could you please make a fix for pingit as well?
Click to expand...
Click to collapse
HiddenRambler said:
Edit: New version (BarcPosed1.1.apk) has some support for barclays pingit. I've not tested this my self as I don't use the application personally. If anyone tries it please let me know.
Click to expand...
Click to collapse
I've updated my post with version that stops the rooted warning from pingit. Don't use pingit myself so don't know how successful it is. Let me know if you try it.
Brilliant, been struggling in vain with Root Cloak Plus on my N5 but this works perfectly. Many thanks.
Sent from my Xoom Wifi using Tapatalk
Before I switched to KK, I used Barclays App 1.3 doing a small trick with SuperSU. It worked perfectly. I signed the app myself so that it wouldn't update itself from the market and so that I could still use the automatic update in the market.
Do you think it would be possible to make your AMAZING solution work with my v1.3 signed app instead?
thnx
vivelafrance said:
Before I switched to KK, I used Barclays App 1.3 doing a small trick with SuperSU. It worked perfectly. I signed the app myself so that it wouldn't update itself from the market and so that I could still use the automatic update in the market.
Do you think it would be possible to make your AMAZING solution work with my v1.3 signed app instead?
thnx
Click to expand...
Click to collapse
You could try "root cloak" or "root cloak plus" they probably will work.
Actually, what I did, is sign the app with OneClickSigner and it worked fine. Now, the app is not attached to the market anymore since the signature changed, so that means I can continue to use the "automatic update" from the market and it won't ask me to update the app all the time when Barclays upload a new version.
thnx
HiddenRambler said:
...
I've converted my patch into xposed module. This module is compatible with the current banking app (version 1.7.1).
...
Click to expand...
Click to collapse
Hello,
I have a request, can you make it compatible with GingerBread plz?
Thanks.
LoMAX_HUN said:
Hello,
I have a request, can you make it compatible with GingerBread plz?
Thanks.
Click to expand...
Click to collapse
Can you try the attached apk. It's the same code but built as an app for gingerbread version (API lvl 10). I couldn't test it as I don't have a phone for that version.
If it doesn't work please give me a logcat.
Banking Works, but Not PingIt
HiddenRambler said:
Edit: New version (BarcPosed1.1.apk) has some support for barclays pingit. I've not tested this my self as I don't use the application personally. If anyone tries it please let me know.
I've converted my patch into xposed module. This module is compatible with the current banking app (version 1.7.1).
Please consider this as a beta version for now. I've tested it on cyanogenmod but it might have some issues with other roms. If you try it please let me know if it worked.
Assuming you already have a working xposed installation the steps to get the app working are:
1) Install banking app from playstore. Make sure it's version 1.7.1
2) Install the BarcPosed.apk from my post.
3) Run the BarcPosed app and click the 'install' button. You will need to grant it root permissions.
4) Enable the module in xposed and reboot.
5) Use the barclays app as normal.
6) Disable automatic updates for the banking app to prevent it from updating.
I've included the source code for the app.
Click to expand...
Click to collapse
xposed is fantastic!
This worked for me. It's so nice to be able to update my SU binaries without fear of breaking the app.
I'm running Cyanogenmod v10.2.0 on a Samsung Galaxy S3 (International) (i9300).
I tried using the v1.1 of the BarcPosed.apk with PingIt, but it still tried to gain root and then closed itself immediately.
Hi,
Im modded Shaw Canada apk for playing at Android Box
http://199.175.53.21/shawmodhdmi.apk
New Latest Shaw Canada Mod
Fix Crash on Some Device + Leanback Icon
http://199.175.53.21/shawfreerangetv.leanback422001.apk
Never tested. Please leave respond.
This is nothing working anymore, can you mod the latest version of the app ?
The version of the Shaw app I had has stopped working too. Any chance you could mod it and upload or share the workflow you did to mod it?
Thanks!
fillalph said:
The version of the Shaw app I had has stopped working too. Any chance you could mod it and upload or share the workflow you did to mod it?
Thanks!
Click to expand...
Click to collapse
The newest version of the Shaw app can be modded to remove the HDMI check, but it doesn't quite work on Fire TV Stick 4k (guide is missing, searches result in 500 error, and other issues) and I've heard it has the same issue on other FireOS devices as well. I'm currently using a modded version 531004 on my Fire TV stick and it works well, but requires a mouse or the Mouse Toggle app and at least on the Fire TV Stick, location services enable via ADB shell.
My workflow for disabling the HDMI requirement is as follows:
1. Decompile the app using apktool with the -r flag to leave the resources compiled
- I've not been able to successfully recompile the resources, so if anyone has a solution for that, I'd love to know what it is.
2. Edit <decompile folder>/smali_classes2/com/xfinity/cloudtvr/model/video/locks/SecondaryDisplayPlaybackLock$2.smali
3. Find the string "android.intent.action.HDMI_PLUGGED" and replace it with ""
- In other words, delete android.intent.action.HDMI_PLUGGED leaving empty quotes
4. Recompile/build the app using apktool and the --copy-original flag
5. Sign the modded app
6. Side-load it on to your device
Hope this helps!
If anyone knows how to recompile the resources without error, and if it's possible to make it work without the --copy-original flag, please let me know the solution as I'd love to be able to modify the AndroidManifest.xml.
deleted because it was a nood question and I found my answer with research
zer0blivion said:
If anyone knows how to recompile the resources without error, and if it's possible to make it work without the --copy-original flag, please let me know the solution as I'd love to be able to modify the AndroidManifest.xml.
Click to expand...
Click to collapse
I'm almost a decade removed from Java programming, but can't you use a Java Bytecode Editor to do this without having to decompile?
zer0blivion said:
The newest version of the Shaw app can be modded to remove the HDMI check, but it doesn't quite work on Fire TV Stick 4k (guide is missing, searches result in 500 error, and other issues) and I've heard it has the same issue on other FireOS devices as well. I'm currently using a modded version 531004 on my Fire TV stick and it works well, but requires a mouse or the Mouse Toggle app and at least on the Fire TV Stick, location services enable via ADB shell.
My workflow for disabling the HDMI requirement is as follows:
1. Decompile the app using apktool with the -r flag to leave the resources compiled
- I've not been able to successfully recompile the resources, so if anyone has a solution for that, I'd love to know what it is.
2. Edit <decompile folder>/smali_classes2/com/xfinity/cloudtvr/model/video/locks/SecondaryDisplayPlaybackLock$2.smali
3. Find the string "android.intent.action.HDMI_PLUGGED" and replace it with ""
- In other words, delete android.intent.action.HDMI_PLUGGED leaving empty quotes
4. Recompile/build the app using apktool and the --copy-original flag
5. Sign the modded app
6. Side-load it on to your device
Hope this helps!
If anyone knows how to recompile the resources without error, and if it's possible to make it work without the --copy-original flag, please let me know the solution as I'd love to be able to modify the AndroidManifest.xml.
Click to expand...
Click to collapse
I followed your instruction but I am having trouble installing the .apk. Getting App not installed package appears to be corrupted error.
I used apktool b -c command to rebuid the apk and I signed the modded app too
nevermind. i got it figure out. apktool b -c doens't copy the certificate properly, and when i manual sign the apk, there is couple things that error out.
did a little bit of research and able to use the injection method and use the apk studio ediot to pack it back up nicely
i create a github repo with instruction on it.
https://github.com/wtengi/redsquaretvapp
afai1984 said:
nevermind. i got it figure out. apktool b -c doens't copy the certificate properly, and when i manual sign the apk, there is couple things that error out.
did a little bit of research and able to use the injection method and use the apk studio ediot to pack it back up nicely
i create a github repo with instruction on it.
https://github.com/wtengi/redsquaretvapp
Click to expand...
Click to collapse
latest Shaw tv apk for fire sticks aren’t working
Do you have a working one or able to mod the latest version?
I'm not sure if many are aware, but LG TVs running webos (under webos 2.x here) probably contain a *full* installation of Qt ( in my case full Qt 5.2.1 is installed). When I said full, I mean that all Qt quick, declarative, webKit, gui, network, OpenGL, etc. Qt libraries are available .
So far I've managed to successfully test/run the following:
-simple OpenGL ES applications (webos uses the Wayland architecture, see https://wayland.freedesktop.org for details ); I can actually compile and run any client included in Weston 1.2.0, see https://wayland.freedesktop.org/releases/ for what is available.
- Qt QML, Qt GUI applications also with WebKit can all be compiled and run on the TV.
- Kernel modules: compiled CIFS module and I'm able to moutn SMBA shares under SmartShare. Recording to Samba shares not possible unfortunately....
- getevent android tool ported to linux (see https://github.com/ndyer/getevent). Very useful for finding various key events. I used it to write my own 'daemon' to listen to Magic Remote key presses and start other applications.
- I've managed to also compile qemu-i386 (from qemu-stable 2.4) so that I can run the native sopcast linux i386 client (sp-sc-auth) on the TV itself. This in combination with a custom-made Qt application for choosing sop streams and SS IPTV means that I can watch sopcast streams on my TV at the push of a remote button.
- Custom-made ambilight. I capture screen, decode produced jpeg file, do led color computations and spit them via usb (libusb available on the TV) to an arduino controlling the LEDS.
====
Needless to say, but as prerequisites you need a rooted TV, access to TV via telnet and/or ssh/sftp, extracted rootfs from your TV, toolchain and kernel sources (if you need compile additional modules). Toolchain and kernel sources are available for my TV, from the LG open-source website.
If other people are interesting I can post some more details.
I was trying to do the same thing, I compile several sources with curl library after extracting the file system , can you give me more info on the Qt library?
thanks
y=fx said:
I was trying to do the same thing, I compile several sources with curl library after extracting the file system , can you give me more info on the Qt library?
thanks
Click to expand...
Click to collapse
Well, I think that the Qt library version installed on your TV may not be the same with mine; probably it depends on the webos version. On my TV I have Qt 5.2.1 (easy to tell from the file extension,; for instance I have Qt lib files with names such as libQt5Core.so.5.2.1, etc.) By luck I'm running Kubuntu 14.04 which uses, by default, the same Qt version. So this means that I've already had all Qt headers installed under /usr/include.
In your case, you'll need to download all Qt dev library packages matching the libs. from your tv, and extract them manually somewhere. Once you have that generate makefiles using qmake, then modify them to point to your libs. and headers.
Let me know how it goes for you.
xtreme_protector said:
Well, I think that the Qt library version installed on your TV may not be the same with mine; probably it depends on the webos version. On my TV I have Qt 5.2.1 (easy to tell from the file extension,; for instance I have Qt lib files with names such as libQt5Core.so.5.2.1, etc.) By luck I'm running Kubuntu 14.04 which uses, by default, the same Qt version. So this means that I've already had all Qt headers installed under /usr/include.
In your case, you'll need to download all Qt dev library packages matching the libs. from your tv, and extract them manually somewhere. Once you have that generate makefiles using qmake, then modify them to point to your libs. and headers.
Let me know how it goes for you.
Click to expand...
Click to collapse
I did it this way for the sdl2 library, but I had to copy the whole file system and mount it to make a chroot . The problem I encountered for the QT library (the version in use on my TV is 5.4.1) it's with the compiler. I do not have a compiler that supports c++11 , I only found version 4.2.3 of gcc/g++ as a working ipk package ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/gcc_4.2.3-1_arm.ipk
Code:
Target: arm-none-linux-gnueabi
Configured with: ../gcc-4.2/configure --build=i386-pc-linux-gnu --host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi --prefix=/opt --disable-nls --disable-static --with-as=/home/slug/optware/cs08q1armel/toolchain/arm-2008q1/bin/arm-none-linux-gnueabi-as --with-ld=/home/slug/optware/cs08q1armel/toolchain/arm-2008q1/bin/arm-none-linux-gnueabi-ld --enable-languages=c,c++ --disable-multilib --enable-threads --disable-libmudflap --disable-libssp --disable-libgomp --disable-libstdcxx-pch --enable-shared --enable-symvers=gnu --enable-__cxa_atexit
Thread model: posix
gcc version 4.2.3
edit: ok I was able to fill out a small program correctly
y=fx said:
I did it this way for the sdl2 library, but I had to copy the whole file system and mount it to make a chroot . The problem I encountered for the QT library (the version in use on my TV is 5.4.1) it's with the compiler. I do not have a compiler that supports c++11 , I only found version 4.2.3 of gcc/g++ as a working ipk package ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/gcc_4.2.3-1_arm.ipk
Code:
Target: arm-none-linux-gnueabi
Configured with: ../gcc-4.2/configure --build=i386-pc-linux-gnu --host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi --prefix=/opt --disable-nls --disable-static --with-as=/home/slug/optware/cs08q1armel/toolchain/arm-2008q1/bin/arm-none-linux-gnueabi-as --with-ld=/home/slug/optware/cs08q1armel/toolchain/arm-2008q1/bin/arm-none-linux-gnueabi-ld --enable-languages=c,c++ --disable-multilib --enable-threads --disable-libmudflap --disable-libssp --disable-libgomp --disable-libstdcxx-pch --enable-shared --enable-symvers=gnu --enable-__cxa_atexit
Thread model: posix
gcc version 4.2.3
how did you fill out the qt sources ? does the qt source you compiled work?
Click to expand...
Click to collapse
I did not recompile Qt. I simply used all libs from the TV (rootfs) and local additional header files. As I said, I generate makefiles using qmake, modify them to point them to the TV libraries and then compile whatever I need... Btw. I cross-compiled my Qt programs.
Regarding the toolchain, I have version 4.6.4 (dated 20120731).
xtreme_protector said:
I did not recompile Qt. I simply used all libs from the TV (rootfs) and local additional header files. As I said, I generate makefiles using qmake, modify them to point them to the TV libraries and then compile whatever I need... Btw. I cross-compiled my Qt programs.
Regarding the toolchain, I have version 4.6.4 (dated 20120731).
Click to expand...
Click to collapse
I have always used the dynamic libraries present, however I managed to compile and package a test program. Now the next step is to do some porting, eg kodi .
good news www.cnx-software.com/2018/03/19/lg-releases-webos-open-source-edition-optimized-for-raspberry-pi-3/
y=fx said:
I have always used the dynamic libraries present, however I managed to compile and package a test program. Now the next step is to do some porting, eg kodi .
good news www.cnx-software.com/2018/03/19/lg-releases-webos-open-source-edition-optimized-for-raspberry-pi-3/
Click to expand...
Click to collapse
Regarding kodi, I've already started . I've started with Jarvis since it has support for wayland. Unfortunately even this requires g++ 4.7.x or better. Not sure if teh standard arm gcc toolchain (4.7 on ubuntu 14.0.4) produces runnable executables. Will try this evening, though.
Edit: The arm cross-compiler installed by default in ubuntu 14.0.4 works. So, most likely any " arm-linux-gnueabi" will work for you. I'm using now "arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.7.3-12ubuntu1) 4.7.3"
If you have ideas regarding kodi porting, let me know. It would be just great to have it running on our TVs.
===
Also the link you posted regarding webos on RPI looks promising, indeed. Question is what is inside .
Edit: kodi already starts but cannot create the window system. I know what happened: the modified configure script failed to enable building the wayland back end. Will try again, although my TV uses really old wayland ( version1.1.0). I'll keep you posted...
Well, regarding kodi, I enabled wayland, libraries load fine, but now I get a "Illegal instruction" error. This is a tough one since without proper tools (gdb, strace), it's difficult to figure out what's going on.
If anyone could help figuring this one out, let me know.
Hi this morning I ported a small application. I posted the app on github https://github.com/Sputkin/uMario_Jakowski .
xtreme_protector said:
Well, regarding kodi, I enabled wayland, libraries load fine, but now I get a "Illegal instruction" error. This is a tough one since without proper tools (gdb, strace), it's difficult to figure out what's going on.
If anyone could help figuring this one out, let me know.
Click to expand...
Click to collapse
How are you connecting dynamic libraries ? how you have configured the project
y=fx said:
Hi this morning I ported a small application. I posted the app on github https://github.com/Sputkin/uMario_Jakowski .
Click to expand...
Click to collapse
Nice, will have a look. How did you manage to pack it as an ipk ? Where does it install ? Is a native app, i..e, does it appear in the webos start menu ?
y=fx said:
How are you connecting dynamic libraries ? how you have configured the project
Click to expand...
Click to collapse
Right, so it's a mix of existing libs from TV (rootfs) and my own compiled ones. The process was as follows:
- configure kodi for wayland, cross-compilation, arm arch, etc. Of course the configure script would stop in some missing library.
- Whenever the above happens, patch/modify the configure script to skip checking for the installed lib. If the library exists in the rootfs, nothing to do.
- Else, download source of the library, cross-compile it for arm, install it in some dir.
- In the end, the configure script finishes...
- Trying then to make kodi, the linking process stops for missing libraries (on my TV the libs. names end in libxxx.so.ver.subver_etc.so, so no way for the patched build system to find the proper name for the *.so file). In this case, I've manually modified the Makefile to point to the library (using -l:libxxx.so.ver.subver_etc.so). It's a very cumbersome process, but hey, for now it's good enough...
===
I could upload my configure file for kodi Jarvis. Also, the main modified Makefile might help, to get you an idea about what I mean...
My point is that I;m just trying to see if kodi 'can' work, without lots of source code modifications. If this succeeds, of course, we need to take a step back and build a sound build system for the webos.
One more update regarding kodi: I now have gdb and strace running on the TV, and i can trace where the "illegal instruction" happens. Unfortunately it is in the boost library, in function try_lock() (which has different implementations for different architectures). I'm going to try to bypass the error by forcing to use the pthread library. Let's see what comes out .
xtreme_protector said:
Nice, will have a look. How did you manage to pack it as an ipk ? Where does it install ? Is a native app, i..e, does it appear in the webos start menu ?
Click to expand...
Click to collapse
I used the tools provided in the sdk, ares-package ares-install ..... etc . here you can find my template https://github.com/Sputkin/uMario_Jakowski/tree/master/webos_ipk
if you can, upload the configuration file for jarvis branch
Well, kodi starts now !!!
Let's see what works .
Well, no 'magic remote' input, so cannot tell ....
y=fx said:
I used the tools provided in the sdk, ares-package ares-install ..... etc . here you can find my template https://github.com/Sputkin/uMario_Jakowski/tree/master/webos_ipk
if you can, upload the configuration file for jarvis branch
Click to expand...
Click to collapse
Please see my prev. questions. How did you pack it ? What it uses (SDL maybe ???). Up to my head in the kodi stuff. I need to get them 'magic mote'' working, just to see where the next crash is....
you can connect an HID device
---------- Post added at 06:51 PM ---------- Previous post was at 06:40 PM ----------
xtreme_protector said:
Please see my prev. questions. How did you pack it ? What it uses (SDL maybe ???). Up to my head in the kodi stuff. I need to get them 'magic mote'' working, just to see where the next crash is....
Click to expand...
Click to collapse
uses the SDL2 library entirely so it should work on any version with this library . To package, you must use the ares-package script provided in the LG SDK , copy the appinfo.json file and the images in the folder where you have compiled kodi , change the name of the executable in the appinfo.json file and then exec
Code:
ares-package .
Ok, clear, thanks. Will try.
===
Now, any idea how to get some 'input' into kodi ?
Edit: How could I force kodi to use the magic mote (which I suppose/hope is some touch/mouse interface) ??? Is there a kodi setting ?
xtreme_protector said:
Ok, clear, thanks. Will try.
===
Now, any idea how to get some 'input' into kodi ?
Edit: How could I force kodi to use the magic mote (which I suppose/hope is some touch/mouse interface) ??? Is there a kodi setting ?
Click to expand...
Click to collapse
...
Even with a usb keyboard connected, I cannot get kodi to respond to keys (no crashes though ...
What's going on ? Ideas ?
xtreme_protector said:
Even with a usb keyboard connected, I cannot get kodi to respond to keys (no crashes though ...
What's going on ? Ideas ?
Click to expand...
Click to collapse
please upload the configuration file so that I can test it directly
y=fx said:
please upload the configuration file so that I can test it directly
Click to expand...
Click to collapse
That's not going to be so simple I mean I did not have to modify only the configure script but lots other places. I'll update the whole sheebag; will bet back with the link.
https://github.com/Microsoft/winfile was open source recently, so I built it for rt.
It doesnt ran under WinRT8.1 with same error like WinDjView "number 1566 didn't fnd in the library". Rebuilded new one WinDjView with leaked MFC from VS2001beta works well (with some limitation). Please research this bug. I need an 2window file manager for my RT. How can I help ya?
any chance to get the error as shown in the English ui? would be more familiar to me.
I don't think this project uses mfc.
my guess is some linked dll has an ordinal of 1566 which moved in the dll between rt8.0 and rt8.1. if i get some time I'll recreate the libs from custom def and avoid including ordinal values, so the linker will be forced to load by symbol name.
a note to remind myself how to do that:
lib.exe /def:libfile.def /out:libfile.lib
Please look at there its my opened issue
https://github.com/Microsoft/winfile/issues/6
Unfortunately even when I install English UI some parts of UI still in prenstalled language (Russian in my case) ecen when it sets to English and reboot. This error is still in Russain and Im not sure how it sounds correctly in English.
hooddy said:
Please look at there its my opened issue
https://github.com/Microsoft/winfile/issues/6
Unfortunately even when I install English UI some parts of UI still in prenstalled language (Russian in my case) ecen when it sets to English and reboot. This error is still in Russain and Im not sure how it sounds correctly in English.
Click to expand...
Click to collapse
Privet! Yes, thanks, I am in that github thread also.
Please try this one if you have the time and willingness.
TLDR; Made libs without ordinals to force the system to load libraries and symbols by name. Based upon your error message containing a numerical value and not knowing whether the system will fail if incorrect ordinal or will retry by name.
Steps to produce are different from these: http://www.wanderinghuman.com/blog/archives/000123.html
In addition to that workspace, here's the changes:
Linked without each library individually to see which symbols were used
For each library
created a library.def file with the missing symbols obtained from linked errors
used this command: lib /def:library.def /out:library.lib /MACHINE:ARM
If First time;Observed linker error on resulting library about 0x1c0 (MACHINE:ARM) and remembered that's the Windows CE ARM thumb1
Hex edited library.lib to replace 0x1c0 with 0x1c4 (THUMB2) where relevant
end
Adjusted linker properties to hard code my libraries, so it didn't search default libraries.
Linked and produced what is attached here.
Edit, had typo in a def file, so fixing binary after fixing it/
smb_gaiden said:
any chance to get the error as shown in the English ui? would be more familiar to me.
I don't think this project uses mfc.
my guess is some linked dll has an ordinal of 1566 which moved in the dll between rt8.0 and rt8.1. if i get some time I'll recreate the libs from custom def and avoid including ordinal values, so the linker will be forced to load by symbol name.
a note to remind myself how to do that:
lib.exe /def:libfile.def /out:libfile.lib
Click to expand...
Click to collapse
NEVER LINK WITH ORDINALS, JUST NEVER. That made me lose a metric ton of time reporting stuff which was already ported to RT otherwise. It's a very bad idea, it's worse having builds with ordinals than no builds at all; a fixed version is attached by the way.
Why are you doing it by generating .libs? that's not required anymore, just add the ARM desktop SDK in individual components on VSinstaller
black_blob said:
NEVER LINK WITH ORDINALS, JUST NEVER. That made me lose a metric ton of time reporting stuff which was already ported to RT otherwise. It's a very bad idea, it's worse having builds with ordinals than no builds at all; a fixed version is attached by the way
Click to expand...
Click to collapse
Thanks for the build. I miss some dll to run it. Can ya share it please?
And please share your Far manager build. I really miss them.
smb_gaiden said:
Privet! Yes, thanks, I am in that github thread also.
Please try this one if you have the time and willingness.
TLDR; Made libs without ordinals to force the system to load libraries and symbols by name. Based upon your error message containing a numerical value and not knowing whether the system will fail if incorrect ordinal or will retry by name.
Steps to produce are different from these: http://www.wanderinghuman.com/blog/archives/000123.html
In addition to that workspace, here's the changes:
Linked without each library individually to see which symbols were used
For each library
created a library.def file with the missing symbols obtained from linked errors
used this command: lib /def:library.def /out:library.lib /MACHINE:ARM
If First time;Observed linker error on resulting library about 0x1c0 (MACHINE:ARM) and remembered that's the Windows CE ARM thumb1
Hex edited library.lib to replace 0x1c0 with 0x1c4 (THUMB2) where relevant
end
Adjusted linker properties to hard code my libraries, so it didn't search default libraries.
Linked and produced what is attached here.
Edit, had typo in a def file, so fixing binary after fixing it/
Click to expand...
Click to collapse
Privet! Ill try this new build and it's not workd with the same error as early was. What about all you write there I not really undasttod what can I do for you to improve it Im sorry for my stupidility(((
black_blob
can you tell me more about that please?
hooddy said:
Privet! Ill try this new build and it's not workd with the same error as early was. What about all you write there I not really undasttod what can I do for you to improve it Im sorry for my stupidility(((
Click to expand...
Click to collapse
you'll have to install the ucrt compatibility update
smb_gaiden said:
black_blob
can you tell me more about that please?
Click to expand...
Click to collapse
Windows 10 SDKs for VS2017 have the full set of ARM .libs these days. Set the SDK version to 10.0.16299
black_blob said:
you'll have to install the ucrt compatibility update
Click to expand...
Click to collapse
Where I can get it? Some msu file please. I try to obtain this dll form powershell and dot.net at github with no luck.
@black_blob thank you
@hooddy don't try to understand, just some development information.
smb_gaiden said:
@black_blob thank you
@hooddy don't try to understand, just some development information.
Click to expand...
Click to collapse
I thinks it's an https://support.microsoft.com/en-us/help/3118401/update-for-universal-c-runtime-in-windows I didn't get it over WU. Can ya share direct link for KB3118401 and KB2919355 msu for WinRT please?
Maybe this can help to build proper
https://github.com/Microsoft/winfile/issues/102
Well how about working RT build? Nope?
hooddy said:
Well how about working RT build? Nope?
Click to expand...
Click to collapse
Ended up choosing the nuclear option, and that seems to work alright.
black_blob said:
Ended up choosing the nuclear option, and that seems to work alright.
Click to expand...
Click to collapse
Ya make my day! Thank ya really much!
black_blob said:
Ended up choosing the nuclear option, and that seems to work alright.
Click to expand...
Click to collapse
Oh cool, you saved my future self some time! I ordered a surface RT in order to run 8.1 and leave my main one undisturbed. However, still have some work to do elsewhere, so can you elaborate on the nuclear option in order to save my future self more time? Thank you very much!
Static linking for everything + LTCG + removal of all unused code. It ends up working so well that it has the same size as the binary with outside depends.
I got my new (used) surface rt a few days ago, spent 3 days discovering the service pack update black screen error, installing all the service packs, then using the tool provided by Qiangong et. all.
Reproduced the error with my Winfile and realised that there was one critical library that was being linked with ordinals. Drum roll... kernel32.lib due to not using /NODEFAULTLIBS.
Anyway, it has been corrected and attached is a dynamically linked winfile.exe which runs on Windows RT 8.1. It has already been signed.