Native programming of webos LG TVs using Qt 5.2.1 - WebOS Software and Hacking General

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.

Related

Recompile and overwrite applications in system/app

As an experiment I am trying to rebuild some standard android applications and replace them in system/app on the G1. I have been through all the steps to get the source code and build for the dream platform and have built the various .apk files of interest (e.g. AlarmClock.apk, Browser.apk etc)
To put the files on the device I delete the old .apk and .odex files and copy my newly built .apk file on to the device. However when I try to run the application it crashes with the following message.
The application Alarm Clock (process com.android.alarmclock) has stopped unexpectedly. Please try again.
I know that replacing the applications like this is possible, because the AutoRotating Browser build works fine when copies over in this manner.
I'm using JF1.31 (RC8)
My initial reaction was that I was not signing the applications properly but having read some posts I think the default built .apk should have the right key already in it.
Another theory I have is that perhaps the applications from the head of the source tree are not compatible with the RC8 (or RC30) Android OS releases. Can anyone tell me how to get the source tree which corresponds to this baseline, I've done some reading around but cannot figure it out. I presume I need to do a repo init -u git://android.git.kernel.org/platofrm/manifest.git -b BASELINE but I can't figure out what BASELINE should be.
Many thanks in advance for any help you can give me!!!
There are some branches in android sources:
master
cupcake
release-1.0
Apps from the first two will not run on default G1, you need to reinstall a whole system. I think by default, following google docs you'll get master. So you need to download a release-1.0 sources.
I may be wrong, but that is what I'm see from my experience.
Thanks for that, I'll get the 1.0 branch downloaded and have a go with that.
Cheers for your help!
I was also trying to recompile some of the built-in apps, specifically the browser, but I can't even get it to build. I get a bunch of import errors, stating that it can't find some of the android libraries, such as android.net.http.AndroidHttpClient, android.os.AsyncTask, etc. I've got the android.jar from the SDK in my build path, and it finds some of them, such as android.webkit.URLUtil.
Can anyone shed some light on what I need to do to get it to see the missing libraries? Thanks.
UndeadCretin said:
Thanks for that, I'll get the 1.0 branch downloaded and have a go with that.
Cheers for your help!
Click to expand...
Click to collapse
There are around a dozen build breaks in release-1.0... all of them are due to missing header #includes in various .c and .h files. So, when it doesn't work, don't give up. Fix the breaks and everything will build properly.
Are you resigning the .apk files? Cuz you have to do that for them to work correctly.
Koush said:
There are around a dozen build breaks in release-1.0... all of them are due to missing header #includes in various .c and .h files. So, when it doesn't work, don't give up. Fix the breaks and everything will build properly.
Click to expand...
Click to collapse
Yep I fixed these problems but I have now hit upon the following problem:
(unknown): error 17: Field android.hardware.SensorManager.LIGHT_NO_MOON has changed value from 0.0010f to 0.001f
******************************
You have tried to change the API from what has been previously released in
an SDK. Please fix the errors listed above.
******************************
I've been in and modified SensorManager back to 0.0010f and that let me build get further but I hit the same error again later in the build.
Given that release-1.0 should be a stable branch is it normal to get all these build issues?
Managed to fix the java issue by modifying public_api.xml. Then hit several more C++ problems which I fixed and finally I can build the lot!
Just tried building the AlarmClock application and running on the G1 and it works fine. Thanks everyone for your help!
>Managed to fix the java issue by modifying public_api.xml. Then hit several more C++ problems which I fixed and finally I can build the lot!
Can you write, what did you fix?
^ Agreed, let us know which files need modifying and what needs doing, i've been trying to get my release-1.0 build root working too!
Alternatively, UndeadCretin, could you build the firmware (release-1.0) with a modified framework-res i can send you?
Ok, I managed to compile it without any editing of xml.
Just added stdlib, string, vector headers to dozen of cpp/h.
worry said:
>Managed to fix the java issue by modifying public_api.xml. Then hit several more C++ problems which I fixed and finally I can build the lot!
Can you write, what did you fix?
Click to expand...
Click to collapse
To fix the java issue, I modified frameworks/base/core/java/android/hardware/SensorManager to change the LIGHT_NO_MOON value to 0.0010f (from 0.001f) and in out/target/common/obj/PACKAGING I modified the <field name="LIGHT_NO_MOON" to have value-"0.0010f">
After this there were several other c++ files which were missing relevant includes. I'm afraid I didn't keep a note of these so cannot provide much detail but mostly they were missing one of the following
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
I think one file needed the following include
#include <string>
and there were a couple of other files that needed other includes. The best way to find these is to google for the function name that isn't building and you should be able to find the appropriate include (that's how I did it).
Hope that helps a bit!
were you able to repo sync after adding the local_manifest.xml?
ximonx said:
were you able to repo sync after adding the local_manifest.xml?
Click to expand...
Click to collapse
I did try that previously but it didn't work. I don't think the relevant files for the dream build are available in the release-1.0 branch. This wasn't a problem for me since I'm only interested in building the applications which work fine with the generic build.
I would like to do the same for the mms application. Could you give me the steps or a link how to do it? I mean do I need the whole sources from android platform to do it? How can I just compile one application?
Phlogiston said:
I would like to do the same for the mms application. Could you give me the steps or a link how to do it? I mean do I need the whole sources from android platform to do it? How can I just compile one application?
Click to expand...
Click to collapse
I downloaded the whole Android source (the release-1.0 branch) and compiled the lot. It may be possible to just build the individual application but I do not know how. It is not vital to build for the dream platform if you only care about the applications since they will work fine with the generic build.
So the basic steps to start are:
Get yourself a Linux or Mac OS platform (I use Ubuntu running in VMWare on my XP box).
Follow the instructions here: http://source.android.com/download but when you come to repo init add the flag -b release-1.0
Fix various build problems
When recompiling individual apps to replace system apps is there a way of just building a single application or does the entire thing need making?
ximonx said:
When recompiling individual apps to replace system apps is there a way of just building a single application or does the entire thing need making?
Click to expand...
Click to collapse
My experience is that you have to do the whole thing if you are building from source. There is one way I know of to get around this, which is to use baksmali and smali.
Just to be clear, making the entire thing = build from source root?
ximonx said:
Just to be clear, making the entire thing = build from source root?
Click to expand...
Click to collapse
If you are asking me--yes, that's what I mean. Make sure to build for dream-open as the target (it's generic by default).

[app port] MikTex2.9

Hi all,
Since several people have PM'd me about it, here is my port of MikTeX 2.9 for Windows RT. I've been out with the flu and ... I'll be rather busy this week, so I won't have much time to support it, but basically extract into your program files directory and run MikTeX-TexWorks.exe in the miktex\bin\arm directory. You might have to perform some configuration.... I haven't had the chance to figure out what those steps are from clean install, but it might involve running initexmf and having it initialize the file cache.
Automatic package install seems to work out of the box. Also, the JavascriptCore from Qt is compiled in interpreter mode (not JIT mode), but it seems to run just fine, even for running texworks scripts. Finally, I didn't get XeTeX compiled, so that isn't included.
http://ge.tt/8omfzEW
Awesome work! Thanks man!
awesome, this is exactly what I need to be able to bring my surface to the next conference.
sorry for this post but i was not able to compile the tex files. I got the error about dump file not found. I ran initexmf but nothing happens. Can you give me some pointer please?
Thank you.
illidanx said:
sorry for this post but i was not able to compile the tex files. I got the error about dump file not found. I ran initexmf but nothing happens. Can you give me some pointer please?
Thank you.
Click to expand...
Click to collapse
Same error
Really nice to see MikTex, although I am getting the same error.
Any chance you can fix this?
I'm trying to compile MiKTeX myself, hopefully to get Xetex as well. But I'm stuck -- plenty of CMake's generated scripts don't work well in a cross-compile environment. Any tips?
lowjoel said:
I'm trying to compile MiKTeX myself, hopefully to get Xetex as well. But I'm stuck -- plenty of CMake's generated scripts don't work well in a cross-compile environment. Any tips?
Click to expand...
Click to collapse
CMake cannot be used for windows RT at this time. Visual Studio 2012 (possibly 2013 aswell) is the only way to build for Win32 with THUMB2 at the moment.
Yeah, I tried both. The vcxproj generated by CMake seems even more broken than the Makefiles. The main evil thing is that MiKTeX generates bootstrap binaries to generate some outputs. In a cross-compile environment you can't run the generated tools to produce the necessary outputs. So unless someone knows all the different binaries, or if I'm missing something major...
Sledgehamma said:
Really nice to see MikTex, although I am getting the same error.
Any chance you can fix this?
Click to expand...
Click to collapse
I found the fix.
Just make sure you unzipped the entire directory to C:\Program Files\MiKTeX 2.9 (exactly); there are some hardcoded configuration that assumes it's installed there.
And to get the package manager working, fire up a shell
Code:
cd C:\Program Files\MiKTeX 2.9\miktex\bin\arm
initexmf --update-fndb
---------- Post added at 08:51 AM ---------- Previous post was at 08:45 AM ----------
Oh; the package manager does not work properly when running in a non-administrator TexWorks. Make sure you run TeXWorks as admin if you need to install packages (should be one-off)
Hello,
i'm interessed in running MiKTeX on jailbroken Windows rt 8.1, but can't get it properly signed. Anyone got a working Version and mind sharing?
Greetings, zedi
Hello from 2023, my friend! It looks like ge.tt does not work here. Could you please upload MikTex somewhere else?

[Guide]Barclays mobile banking anti-anti-rootcheck patching

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' binary​The 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 check​All 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.

ext2/3/4 filesystem create/fix tools (e2fstools pkg) static build for arm64 devices

e2fstools package, statically built for arm64 devices from Google's googlecode.com Oreo branch
NOTE: These will support ANY version of android's filesystems that use ext2 or ext3 or ext4. I built them from oreo branch as that one was the closest to compiling without any editing of the Makefiles. Don't let the name throw you off
I needed to run a modern fsck on a rooted device I have that I have been doing some hacking on.
The filesystem was in bad shape and the on-device e2fsck absolutely refused to check it while it was even mounted, even with the force option. Out of part desperation part determination I decided I would just build one myself. So I went and dug up the sources from googlecode.com, transfered them to my linux workstation, and after much fighting with gcc for cross compilation, finding a place in the google git repo where they actually build (hence going with orero), and having to tweak the c code even in a few places (mostly fixing includes and whatnot, no actual coding on my part), I succeeded.
As it says in the title, these are all the e2fstools binaries built from Google's googlecode.com source tree in their Oreo release branch. They are also compiled statically (no libraries are needed for them to function) so they should work absolutely fine on any device that has a 64bit arm (aarch64) processor. I have tested a handfull of them and they work perfectly fine on my Samsung Galaxy s8. In fact I used the fsck.ext4 binary to repair my system partition which it did perfectly.
https://www.dropbox.com/s/owb76hohnjzjdwe/e2fstools-oreo-aarch64-static.tar.gz?dl=0
Hope they come in as handy to someone else as they did me.
List of files follows:
Code:
[email protected]:~> tar tzf e2fstools-oreo-aarch64-static.tar.gz
e2fsbin/
e2fsbin/e2undo
e2fsbin/e2image
e2fsbin/badblocks
e2fsbin/mkfs.ext3
e2fsbin/fsck.ext4dev
e2fsbin/e2initrd_helper
e2fsbin/fsck.ext3
e2fsbin/e4crypt
e2fsbin/e4defrag
e2fsbin/mke2fs
e2fsbin/e2fsck
e2fsbin/fsck.ext4
e2fsbin/filefrag
e2fsbin/tune2fs
e2fsbin/e2freefrag
e2fsbin/uuidd
e2fsbin/e2label
e2fsbin/mkfs.ext2
e2fsbin/blkid
e2fsbin/logsave
e2fsbin/lsattr
e2fsbin/uuidgen
e2fsbin/findfs
e2fsbin/mklost+found
e2fsbin/dumpe2fs
e2fsbin/mkfs.ext4
e2fsbin/debugfs
e2fsbin/fsck.ext2
e2fsbin/mkfs.ext4dev
e2fsbin/resize2fs
e2fsbin/chattr
e2fsbin/fsck
PS: Now that I have a working arm64 cross compilation system setup, if anyone else desperately needs a working static binary for anything relatively simple to build (as in not 50 million dependencies for me to track down and install) and can send me or link me the sources for it and its dependencies, I would be happy to oblige.
Unfortunately, my device is armv7
buengeut said:
Unfortunately, my device is armv7
Click to expand...
Click to collapse
I forget, is that 32bit? If so i could fairly easily build new ones that are 32bit. Did you try them and they didnt work? If its 64bit they may work anyway, as these dont use any fancy instructions, and i did not build them even with -O1. I thought the main differences between the different "v"s of the same arch (32v64) was in libc and friends, of which these dont use as they are completely static so libc is built in.
I was even thinking of making this a flashable zip, but i hadnt bothered as no one replied to my initial post so i didnt think anyone cared ?️
partcyborg said:
I forget, is that 32bit? If so i could fairly easily build new ones that are 32bit. Did you try them and they didnt work? If its 64bit they may work anyway, as these dont use any fancy instructions, and i did not build them even with -O1. I thought the main differences between the different "v"s of the same arch (32v64) was in libc and friends, of which these dont use as they are completely static so libc is built in.
I was even thinking of making this a flashable zip, but i hadnt bothered as no one replied to my initial post so i didnt think anyone cared ?️
Click to expand...
Click to collapse
ARMv7 is ARM 32bit, 64bit program will not work on a 32bit system.
Can you build e2fstools for ARMv7.
Sadly your link is down.
would you care to reupload?
LNQ said:
Sadly your link is down.
would you care to reupload?
Click to expand...
Click to collapse
Sure. I'll even make it flashable this time ?
Thanks alot, good sir!
Legend! I'd been dealing with not being able to repair my /data errors for the past few days since my Oreo update. The current TWRP (3.2.3.4) still has an ancient e2fsck that doesn't support the ext4 quota option that LG formats their Oreo data partition with. The updated version in /system/bin works while the OS is running which is why I knew I had errors, but I couldn't get it to run in TWRP to fix them because of the incompatible library files.
I was all set to reinstall my Android SDK and compile another version with inbuilt libraries when I decided to do one last search and found this thread where you'd already done it. So thanks for saving me a few hours of downloading/installing/remembering how to compile for Android all over again
I guess I can also vouch for it working on an LG V20. I don't know if it's just LG's version of Oreo that needs the later e2fsck or others too, but anyone who can't repair errors on their ext4 partitions in TWRP due to needing a newer e2fsck version should be able to use this version. I just copied the file fsck.ext4dev to /cache and ran it from there on my data partition.
Your link is dropbox banned...
Any chance you could attach the zip here...?
quotient said:
Your link is dropbox banned...
Any chance you could attach the zip here...?
Click to expand...
Click to collapse
Seconded!
@partcyborg
Any chance you could put this file somewhere else? The above link is banned.
Thanks!
Hi,
I have a Oneplus 3 that after 3 years of use became sluggish as hell at file system access.
After reading thus document https://www.usenix.org/system/files/conference/hotstorage16/hotstorage16_ji.pdf
I would give a try to your e2fstools build.
Can you repost a link to download?
Thanks in advance
partcyborg said:
I forget, is that 32bit? If so i could fairly easily build new ones that are 32bit. Did you try them and they didnt work? If its 64bit they may work anyway, as these dont use any fancy instructions, and i did not build them even with -O1. I thought the main differences between the different "v"s of the same arch (32v64) was in libc and friends, of which these dont use as they are completely static so libc is built in.
I was even thinking of making this a flashable zip, but i hadnt bothered as no one replied to my initial post so i didnt think anyone cared ?️
Click to expand...
Click to collapse
Late to this thread, great work!
I have the exact same problem.
Could you please post flashable zip and/or instructions how to load this into android?
Thank you
I found a binary on website, tested on Nexus 5 (ARMv7L 32bits)
GitHub - FerryAr/e2fsprogs-arm: Static build of e2fsprogs for Android Magisk Module
Static build of e2fsprogs for Android Magisk Module - GitHub - FerryAr/e2fsprogs-arm: Static build of e2fsprogs for Android Magisk Module
github.com
partcyborg said:
e2fstools package, statically built for arm64 devices from Google's googlecode.com Oreo branch
NOTE: These will support ANY version of android's filesystems that use ext2 or ext3 or ext4. I built them from oreo branch as that one was the closest to compiling without any editing of the Makefiles. Don't let the name throw you off
I needed to run a modern fsck on a rooted device I have that I have been doing some hacking on.
The filesystem was in bad shape and the on-device e2fsck absolutely refused to check it while it was even mounted, even with the force option. Out of part desperation part determination I decided I would just build one myself. So I went and dug up the sources from googlecode.com, transfered them to my linux workstation, and after much fighting with gcc for cross compilation, finding a place in the google git repo where they actually build (hence going with orero), and having to tweak the c code even in a few places (mostly fixing includes and whatnot, no actual coding on my part), I succeeded.
As it says in the title, these are all the e2fstools binaries built from Google's googlecode.com source tree in their Oreo release branch. They are also compiled statically (no libraries are needed for them to function) so they should work absolutely fine on any device that has a 64bit arm (aarch64) processor. I have tested a handfull of them and they work perfectly fine on my Samsung Galaxy s8. In fact I used the fsck.ext4 binary to repair my system partition which it did perfectly.
https://www.dropbox.com/s/owb76hohnjzjdwe/e2fstools-oreo-aarch64-static.tar.gz?dl=0
Hope they come in as handy to someone else as they did me.
List of files follows:
Code:
[email protected]:~> tar tzf e2fstools-oreo-aarch64-static.tar.gz
e2fsbin/
e2fsbin/e2undo
e2fsbin/e2image
e2fsbin/badblocks
e2fsbin/mkfs.ext3
e2fsbin/fsck.ext4dev
e2fsbin/e2initrd_helper
e2fsbin/fsck.ext3
e2fsbin/e4crypt
e2fsbin/e4defrag
e2fsbin/mke2fs
e2fsbin/e2fsck
e2fsbin/fsck.ext4
e2fsbin/filefrag
e2fsbin/tune2fs
e2fsbin/e2freefrag
e2fsbin/uuidd
e2fsbin/e2label
e2fsbin/mkfs.ext2
e2fsbin/blkid
e2fsbin/logsave
e2fsbin/lsattr
e2fsbin/uuidgen
e2fsbin/findfs
e2fsbin/mklost+found
e2fsbin/dumpe2fs
e2fsbin/mkfs.ext4
e2fsbin/debugfs
e2fsbin/fsck.ext2
e2fsbin/mkfs.ext4dev
e2fsbin/resize2fs
e2fsbin/chattr
e2fsbin/fsck
PS: Now that I have a working arm64 cross compilation system setup, if anyone else desperately needs a working static binary for anything relatively simple to build (as in not 50 million dependencies for me to track down and install) and can send me or link me the sources for it and its dependencies, I would be happy to oblige.
Click to expand...
Click to collapse
Hi nice compilation job! I know it's not always easy to compile these binaries from source...
Can you please reupload you archive here as attachment? Thanks!
lebigmac said:
Hi nice compilation job! I know it's not always easy to compile these binaries from source...
Can you please reupload you archive here as attachment? Thanks!
Click to expand...
Click to collapse
There's a Magisk module that does cross-compilation specifically, you should get it.
By the way, the link for that drop box is dead.

Linux on Dex open beta enrollment

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...

Categories

Resources