[Q] AirDroid support for linux. - AirDroid

When will there be an AirMirror support for Linux?

Perhaps we can start deconstructing the windows app and then see if we can bring that to wine
---------- Post added at 08:14 PM ---------- Previous post was at 08:13 PM ----------
Perhaps we can start deconstructing the windows app and then see if we can bring that to wine. The feature request has been open for a while. I'd be interested to know how the mirroring works. I would imagine alot of root users run linux

jago25_98 said:
Perhaps we can start deconstructing the windows app and then see if we can bring that to wine
---------- Post added at 08:14 PM ---------- Previous post was at 08:13 PM ----------
Perhaps we can start deconstructing the windows app and then see if we can bring that to wine. The feature request has been open for a while. I'd be interested to know how the mirroring works. I would imagine alot of root users run linux
Click to expand...
Click to collapse
Very useful feature! Native Linux support will be great. Does anyone tried to run it under Wine?
UPD.
Tried to run under Wine 1.7.30 - does not start after installation:
Code:
$ wine AirDroid.exe
fixme:mscoree:ConfigFileHandler_startElement Unknown element L"configSections" in state 2
fixme:mscoree:ConfigFileHandler_startElement Unknown element L"sectionGroup" in state 6
fixme:mscoree:ConfigFileHandler_startElement Unknown element L"section" in state 6
fixme:mscoree:ConfigFileHandler_startElement Unknown element L"system.net" in state 2
fixme:mscoree:ConfigFileHandler_startElement Unknown element L"settings" in state 6
fixme:mscoree:ConfigFileHandler_startElement Unknown element L"httpWebRequest" in state 6
fixme:mscoree:ConfigFileHandler_startElement Unknown element L"servicePointManager" in state 6
fixme:mscoree:ConfigFileHandler_startElement Unknown element L"connectionManagement" in state 6
fixme:mscoree:ConfigFileHandler_startElement Unknown element L"add" in state 6
fixme:mscoree:ConfigFileHandler_startElement Unknown element L"applicationSettings" in state 2
fixme:mscoree:ConfigFileHandler_startElement Unknown element L"iTong.My.MySettings" in state 6
fixme:mscoree:ConfigFileHandler_startElement Unknown element L"setting" in state 6
fixme:mscoree:ConfigFileHandler_startElement Unknown element L"value" in state 6
Unknown heap type: #GUlD
Unknown heap type: #Blop
Unhandled Exception:
System.TypeInitializationException: An exception was thrown by the type initializer for <Module> ---> System.InvalidProgramException: Invalid IL code in gRpfcjfJ9IflOON1qqa.EVhIvFfNiVUIg77JM3y:gUqkvCGVHdK (): IL_002b: brtrue IL_3894
at <Module>..cctor () [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for <Module> ---> System.InvalidProgramException: Invalid IL code in gRpfcjfJ9IflOON1qqa.EVhIvFfNiVUIg77JM3y:gUqkvCGVHdK (): IL_002b: brtrue IL_3894
at <Module>..cctor () [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---

expecting too ...

Still no Linux support...
Still looking forward for some Linux support!

Airdroid client om wine
It looks like the desktop client is a Mono application.
I will make a 32-bit prefix in wine with dotnet45 and try it out.

Run in wine
I have got it to start in wine after installing in a 32-bit prefix with dotnet42.
However it is slow and barly usable.
But it it a step on the way
I'll post my progress here.

Related

anybody has the APK for Gesture Search?

it says here for android 2.0 and up but we might be able to get to work on 1.6 .
I'd like to see this, too. Curious if it'll run on CyanogenMod.
here you go,
got it off the market just this min.
Firerat said:
here you go,
got it off the market just this min.
Click to expand...
Click to collapse
Thanks 10char
Firerat said:
here you go,
got it off the market just this min.
Click to expand...
Click to collapse
Thank you very much.
is there a way to port it back for g1?
ralpho said:
is there a way to port it back for g1?
Click to expand...
Click to collapse
its working on my g1
but I have eclair rom ( CaNNoN Complete 1.2 )
I'm guessing you have a cupcake, donut
make yourself a sig
click/tap edit my sig , in my sig
been using since this morning, its not bad.
I often get frustrated scrolling through the app draw, but now with a gestures icon on home screen I can just open it up and start 'writing'
it is a little slow between letters, but I imagine it will get better as it is developed and it is still faster than messing about in the app draw.
gets a thumbs up from me
Welp, I was so eager to get this working on CyanogenMod I dove in and spent the last few hours trying to figure it out :
Installed VirtualBox and Ubuntu
Installed the SDK, apktool, and other various required bits
Decoded the APK
Edited the AndroidManifest.xml to change minSdkVersion from 5 to 4
Rebuilt the APK
Set up a keystore and resigned the APK with my key (this part took awhile and I still don't really know what other options I have if any...)
INSTALLED THE APP SUCCESSFULLY
Bad news though. Although the app opens and starts giving you the opening wizard, it seems the service that "Queries data sources" in the background freaks out and requires a force close. The logcat:
Code:
I/ActivityManager( 100): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10100000 cmp=com.google.android.apps.gesturesearch/.GShell }
I/ActivityManager( 100): Start proc com.google.android.apps.gesturesearch for activity com.google.android.apps.gesturesearch/.GShell: pid=12360 uid=10097 gids={3003}
W/InputManagerService( 100): Window already focused, ignoring focus gain of: [email protected]
I/ActivityThread(12360): Publishing provider com.google.android.apps.gesturesearch.history: com.google.android.apps.gesturesearch.data.QueryHistoryProvider
I/ActivityThread(12360): Publishing provider com.google.android.apps.gesturesearch.index: com.google.android.apps.gesturesearch.data.IndexProvider
W/dalvikvm(12360): VFY: unable to resolve static field 26 (CONTENT_URI) in Landroid/provider/ContactsContract$Data;
D/dalvikvm(12360): VFY: replacing opcode 0x62 at 0x0025
D/dalvikvm(12360): Making a copy of Lcom/google/android/apps/gesturesearch/search/SearchItemView;.setIcon code (440 bytes)
D/dalvikvm(12360): GC freed 1792 objects / 184456 bytes in 175ms
I/ActivityManager( 100): Displayed activity com.google.android.apps.gesturesearch/.GShell: 2116 ms (total 2116 ms)
W/dalvikvm(12360): VFY: unable to resolve static field 25 (CONTENT_URI) in Landroid/provider/ContactsContract$Contacts;
D/dalvikvm(12360): VFY: replacing opcode 0x62 at 0x0003
D/dalvikvm(12360): Making a copy of Lcom/google/android/apps/gesturesearch/search/DataMultiContacts;.queryPhoneNumbers code (128 bytes)
W/dalvikvm(12360): VFY: unable to resolve static field 25 (CONTENT_URI) in Landroid/provider/ContactsContract$Contacts;
D/dalvikvm(12360): VFY: replacing opcode 0x62 at 0x0016
D/dalvikvm(12360): Making a copy of Lcom/google/android/apps/gesturesearch/search/DataMultiContacts;.prepare code (140 bytes)
W/dalvikvm(12360): threadid=15: thread exiting with uncaught exception (group=0x4001e180)
E/AndroidRuntime(12360): Uncaught handler: thread AsyncTask #1 exiting due to uncaught exception
E/AndroidRuntime(12360): java.lang.RuntimeException: An error occured while executing doInBackground()
E/AndroidRuntime(12360): at android.os.AsyncTask$3.done(AsyncTask.java:200)
E/AndroidRuntime(12360): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
E/AndroidRuntime(12360): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
E/AndroidRuntime(12360): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
E/AndroidRuntime(12360): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
E/AndroidRuntime(12360): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
E/AndroidRuntime(12360): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
E/AndroidRuntime(12360): at java.lang.Thread.run(Thread.java:1096)
E/AndroidRuntime(12360): Caused by: java.lang.NoClassDefFoundError: android.provider.ContactsContract$Contacts
E/AndroidRuntime(12360): at com.google.android.apps.gesturesearch.search.DataMultiContacts.prepare(DataMultiContacts.java:68)
E/AndroidRuntime(12360): at com.google.android.apps.gesturesearch.search.IndexingTask.doInBackground(IndexingTask.java:126)
E/AndroidRuntime(12360): at com.google.android.apps.gesturesearch.search.IndexingTask.doInBackground(IndexingTask.java:23)
E/AndroidRuntime(12360): at android.os.AsyncTask$2.call(AsyncTask.java:185)
E/AndroidRuntime(12360): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
E/AndroidRuntime(12360): ... 4 more
I/Process ( 100): Sending signal. PID: 12360 SIG: 3
I/dalvikvm(12360): threadid=7: reacting to signal 3
I/dalvikvm(12360): Wrote stack trace to '/data/anr/traces.txt'
These logs are a little above my head, though, and beyond my research capabilities at the moment (feeling a little defeated and TIRED ). Do they look like a result of my modification of the app or a framework limitation of CM's 1.6?
I'd appreciate any feedback, even if it's a "NO, STOP TRYING TO MAKE THIS WORK AND JUST SWITCH TO ECLAIR ALREADY" I attached the modified APK if anyone wants to play with it.
mttmllns said:
Do they look like a result of my modification of the app or a framework limitation of CM's 1.6?
Click to expand...
Click to collapse
Second one.
Code:
java.lang.NoClassDefFoundError: android.provider.ContactsContract$Contacts
http://developer.android.com/intl/de/reference/android/provider/ContactsContract.Contacts.html
It was added in API level 5 (Android 2.0) and apparently it wasn't ported to CM1.4.x .
Brut.all said:
It was added in API level 5 (Android 2.0) and apparently it wasn't ported to CM1.4.x .
Click to expand...
Click to collapse
Cool, thanks for the quick response. Thanks for the great app, too!
Google just put it out for 1.6. Woot!
http://googlemobile.blogspot.com/2010/03/gesture-search-now-available-for.html
Thanks for the heads up.
Spot On
I've been wanting an app like this for a while now. It work great. Now to reassign some buttons and shortcuts and remove redundancies...
Just a heads up. Enabling the ability to search music as well led to one hell of a bugfest. After doing so, it led Rings Extended to force close everytime something requiring changing a sound was messed with. That in turn disbaled all notifications I had set. It also completely "removed" my music from the music app. It was still on my card, but the music app did not recognize this. All this happened after enable said feature and THEN rebooting. Taking the music search off made rings extended no longer FC and all my sounds were back and my music once again showed up. Hope this helps out anyone with a similair occurence.
Up!
Anybody has the apk for Gesture Search 2.0 ? (this version presumably is compatible with N7 but is marked as incompatible on the Play Store)
TIA

[Q] Can someone tell me if my adb settings are wrong on phone?

Iv'e tried as many solutions to my problem, as I can find, but still have no adb interface. I have a huawei ascend M860(I know it's old), It's rooted, rom'ed with Playfulgod's CM7.2 rom, and the dalvik was moved to the sdcard. Before I installed this rom, I replaced ADW launcher, with GoLauncher(winzip). I like his rom, except for one thing, since I replaced it from cm6, my adb isn't working. I changed the rom back to cm6, and it started working again, put cm7 back, same problem. Today, I looked into my adbd file, and found alot of errors, and my block file, said I had so many bad blocks, I lost count! This is the end of my adbd file:
ro.debuggable service.adb.root Local port disabled
service.adb.tcp.port persist.adb.tcp.port %d /dev/android_adb OK
failed to allocate an apacket Calling send_connect
host %s:: Calling send_ready
Calling send_close
handle_packet() %d
Enqueue the socket
handle_packet: what is %08x?!
all adb sockets packets rwx usb sync sysdeps transport jdwp %s: select missing fde for fd %d
fd out of range (%d)
fd_table out of sync fde %p not created by fdevent_create()
bogus negative fd (%d)
bogus huuuuge fd (%d)
could not expand fd_table to %d entries
check_header(): invalid magic
check_header(): %d > MAX_PAYLOAD
unknown run_transport_disconnects: %p (%s)
%02x writex: %d %p %d: writex: %d %d %s
writex: %d ok
transport_write_action: on fd %d, error %d: %s
write_packet: %d [%08x %s] %08x %08x (%d) write_packet: %d error %d %d
readx: %d %p %d
readx: %d %d %s
readx: %d ok: transport_read_action: on fd %d, error %d: %s
read_packet: %d error %d %d
read_packet: %d ok: [%08x %s] %08x %08x (%d) transport: %p registered
cannot write transport registration socket
transport: %p init'ing for usb_handle %p (sn='%s')
transport: %p removed
transport: %p R- (ref=%d)
transport: %p kicking and closing
Transport is null Transport is null
cannot enqueue packet on transport socket transport: %p init'ing for socket %d, on port %d
device not found insufficient permissions for device more than one device more than one emulator more than one device and emulator device offline invalid device state cannot open transport registration socketpair cannot read transport registration socket transport: %p removing and free'ing %d
cannot open transport socketpair transport: %p (%d,%d) starting
transport: %p install %d
cannot create input thread cannot create output thread from_remote: starting thread for transport %p, on fd %d
from_remote: transport %p SYNC online (%d)
from_remote: failed to write SYNC apacket to transport %p from_remote: data pump for transport %p
from_remote: received remote packet, sending to transport %p
from_remote: failed to write apacket to transport %p from_remote: remote read failed for transport %p
from_remote: SYNC offline for transport %p
from_remote: thread is exiting for transport %p
to_remote: starting input_thread for %p, reading from fd %d
to_remote: failed to read apacket from transport %p on fd %d
to_remote: transport %p SYNC offline
to_remote: transport %p SYNC online
to_remote: trandport %p ignoring SYNC %d != %d
to_remote: transport %p got packet, sending to remote
to_remote: transport %p ignoring packet while offline
to_remote: thread is exiting for transport %p, fd %d
failed to read packet from transport socket on fd %d
remote local: write terminated
remote local: read terminated (message)
bad header: terminated (data)
remote local: terminated (data)
bad data: terminated (data)
server client transport: local %s init
cannot create local socket %s thread transport: server_socket_thread() starting
server: cannot bind socket yet
server: trying to get new connection from %d
server: new connection on fd %d
host client: connected on remote on fd %d
%s%d emulator- transport: usb
remote usb: 1 - write terminated
remote usb: 2 - write terminated
remote usb: read terminated (message)
remote usb: check_header failed
remote usb: terminated (data)
remote usb: check_data failed
Creating smart socket
cannot allocate socket SS(%d): created %p
Connecting to smart socket
SS(%d): ready
SS(%d): closed
LS(%d): discarding %d bytes
LS(%d): closed
LS(%d): closing
OKAY Connect_to_remote call
destination oversized LS(%d): connect('%s')
Calling remote_socket_ready
Calling remote_socket_enqueue
RS(%d): created
remote_socket_disconnect RS(%d)
Calling remote_socket_close
RS(%d): closed
LS(%d): created (fd=%d)
jdwp track-jdwp LS(%d): bound to '%s'
LS(%d): enqueue %d
LS(%d): not ready, errno=%d: %s
FAIL%04x SS(%d): enqueue %d
SS(%d): overflow
SS(%d): bad size (%d)
SS(%d): len is %d
SS(%d): waiting for %d more bytes
SS(%d): '%s'
unknown failure device offline (x) closed cannot create service socket pair cannot allocate stinfo cannot create service thread service thread started, %d:%d
invalid port
%d service.adb.tcp.port restarting in TCP mode port: %d
EXTERNAL_STORAGE /system/bin/vdc volume unmount force reboot failed: %s
0 restarting in USB mode
/tmp/update FAIL /tmp/update.begin OKAY adbd is already running as root
ro.debuggable 1 adbd cannot run as root in production builds
service.adb.root restarting adbd as root
/dev/ptmx [ cannot open /dev/ptmx - %s ]
[ trouble with /dev/ptmx - %s ]
- fork failed: %s -
- exec '%s' failed: %s (%d) -
/proc/%d/oom_adj adb: unable to open %s
tcp: local: localreserved: localabstract: localfilesystem: dev: framebuffer: recover: jdwp: log: shell: /sbin/sh -c /system/bin/sh - sync: remount: reboot: root: tcpip: usb: sync: failure: %s
mkdir("%s") -> %s
invalid data message: expected ID_DATA oversize data message invalid data message: expected ID_DONE invalid data message sync: waiting for command
command read failure invalid namelen filename read failure sync: '%s' '%s'
unknown command sync: done
not enough memory to create new JDWP process
could not create fdevent for new JDWP process
oops, the JDWP process died really quick
weird accept() failed on jdwp control socket: %s
%d
%04x looking for pid %d in JDWP process list
search failed !!
%s: too many pending JDWP connection for pid %d
%s: socket pair creation failed: %s
weird unknown JDWP process failure: %s
weird end-of-stream from unknown JDWP process
could not decode JDWP %p PID number: '%s'
Adding pid %d to jdwp process list
terminating JDWP %d connection: %s
ignoring unexpected JDWP %d control socket activity (%d bytes)
remove pid %d to jdwp process list
trying to write to JDWP pid controli (count=%d first=%d) %d
sending new file descriptor to JDWP %d failed: %s
sent file descriptor %d to JDWP process %d
could not create vm debug control socket. %d: %s
could not bind vm debug control socket: %d: %s
listen failed in jdwp control socket: %d: %s
could not create fdevent for jdwp control socket
jdwp control socket started (%d)
/dev/graphics/fb0 /proc/mounts %255s %255s %*s %*s %d %d
/system none remount succeeded
remount failed: %s
usb_kick
[ usb_thread - opening device ]
/dev/android_adb /dev/android [ opening device succeeded ]
[ usb_thread - registering device ]
[ read %d ]
ERROR: n = %d, errno = %d (%s)
[ write %d ]
[ done ]
/dev/android_adb_enable failed to open /dev/android_adb_enable
[ usb_init - starting thread ]
cannot create usb thread /dev/log/ /dev/socket/ property_service :
/dev/pts/%u 0123456789ABCDEF Inf 0123456789abcdef (null) NaN 0 . Infinity inf inity nan Unknown error: Operation not permitted No such file or directory No such process Interrupted system call I/O error No such device or address Argument list too long Exec format error Bad file number No child processes Try again Out of memory Permission denied Bad address Block device required Device or resource busy File exists Cross-device link No such device Not a directory Is a directory Invalid argument File table overflow Too many open files Not a typewriter Text file busy File too large No space left on device Illegal seek Read-only file system Too many links Broken pipe Math argument out of domain of func Math result not representable Resource deadlock would occur File name too long No record locks available Function not implemented Directory not empty Too many symbolic links encountered No message of desired type Identifier removed Channel number out of range Level 2 not synchronized Level 3 halted Level 3 reset Link number out of range Protocol driver not attached No CSI structure available Level 2 halted Invalid exchange Invalid request descriptor Exchange full No anode Invalid request code Invalid slot Bad font file format Device not a stream No data available Timer expired Out of streams resources Machine is not on the network Package not installed Object is remote Link has been severed Advertise error Srmount error Communication error on send Protocol error Multihop attempted RFS specific error Not a data message Value too large for defined data type Name not unique on network File descriptor in bad state Remote address changed Can not access a needed shared library Accessing a corrupted shared library .lib section in a.out corrupted Attempting to link in too many shared libraries Cannot exec a shared library directly Illegal byte sequence Interrupted system call should be restarted Streams pipe error Too many users Socket operation on non-socket Destination address required Message too long Protocol wrong type for socket Protocol not available Protocol not supported Socket type not supported Operation not supported on transport endpoint Protocol family not supported Address family not supported by protocol Address already in use Cannot assign requested address Network is down Network is unreachable Network dropped connection because of reset Software caused connection abort Connection reset by peer No buffer space available Transport endpoint is already connected Transport endpoint is not connected Cannot send after transport endpoint shutdown Too many references: cannot splice Connection timed out Connection refused Host is down No route to host Operation already in progress Operation now in progress Stale NFS file handle Structure needs cleaning Not a XENIX named type file No XENIX semaphores available Is a named type file Remote I/O error Quota exceeded No medium found Wrong medium type Operation Canceled Required key not available Key has expired Key has been revoked Key was rejected by service Owner died State not recoverable Stupid C library hack !! abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 :+-._ Local time zone must be set--see zic manual page posixrules ,M4.1.0,M10.5.0 localtime /system/usr/share/zoneinfo / /system/usr/share/zoneinfo/zoneinfo.idx /system/usr/share/zoneinfo/zoneinfo.dat TZ persist.sys.timezone -0 %d %2d %H:%M:%S %e-%b-%Y + - %4d %04d %c Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April June July August September October November December Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday %a %b %e %T %Y AM PM %a %b %e %H:%M:%S %Z %Y /acct/uid/%d/tasks w+ <unknown> /proc/self/exe /dev/urandom ANDROID_PROPERTY_WORKSPACE HTC_RIL /dev/log/main /dev/log/radio /proc/cpuinfo processor /proc/stat cpu /proc/meminfo MemTotal:
Is there a problem that's rom related, and why does my adb interface only show in device mgr, when my phone's in cwm recovery?

[APP][ROOT][5.0+] Persistent MAC Spoofing

Hello,
I would like to present Lollipop Spoofer, which can be downloaded from the Play Store.
It is a simple way to spoof the MAC Address of your device, and make it persistent across reboots.
Unlike other apps, this one will not rely on "ifconfig" bull**** (which does not work anymore, by the way).
Its usage is straighforward. First, you set your new MAC address by using Lollipop Spoofer. Then you reboot your device, and you are good to go!
You can verify that your MAC has been modified by checking "Settings > About phone > Status > Wi-Fi MAC address".
In case you want to revert to your original address, the app will allow you to back it up.
Enjoy!
For me on AICP 9 Android 5.1.1 it opens, asks for root, and just displays a white page. Will change theme and check again
Edit. Not the theme. White page persists.
---------- Post added at 08:53 AM ---------- Previous post was at 08:44 AM ----------
logcat entries
563: Unit not found
06-03 08:48:09.316 3100 3100 I Timeline: Timeline: Activity_launch_request id:com.antoniocarlos.mac_spoofer time:6576830
06-03 08:48:09.316 901 1816 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.antoniocarlos.mac_spoofer/.MainActivity (has extras)} from uid 10057 on display 0
06-03 08:48:12.666 1262 1262 W Settings: Setting adb_enabled has moved from android.provider.Settings.Secure to android.provider.Settings.Global, returning global URI.
06-03 08:48:12.706 1262 1262 W ResourceType: No package identifier when getting value for resource number 0x00000000
06-03 08:48:12.706 1262 1262 W PackageManager: Failure retrieving resources for com.antoniocarlos.mac_spoofer: Resource ID #0x0
06-03 08:48:12.716 1262 1262 W ResourceType: No package identifier when getting value for resource number 0x00000000
06-03 08:48:12.716 1262 1262 W PackageManager: Failure retrieving resources for com.teslacoilsw.launcher: Resource ID #0x0
06-03 08:48:12.716 1262 1262 W ResourceType: No package identifier when getting value for resource number 0x00000000
HTC One M9
Ran it, white screen, nada
looking at SU logs:
system/bin/sh
/data/data/com.antoniocarloc.mac_spoofer/files/spoof.sh show-current
system/bin/sh: <stdin>[1] /data/data/data/data/com.antoniocarloc.mac_spoofer/files/spoof.sh can't execute: permission denied

[Guide] Running Linux on Android with 3D Acceleration / OpenGL (Root Required)

All credits go to:
Hentacler for making Sparkle
Meefik for making Linux Deploy
Now on to the tutorial!
Requirements:
Sparkle
Linux Deploy
Termux
Now you have all those apps installed lets continue
Open Termux then enter:
Code:
su
Once in root mode enter:
Code:
setenforce 0
Then exit:
Code:
exit
Open Linux Deploy and configure it to your likings
My configuration:
Code:
Distribution: Debian
Architecture: arm64
Distribution Suite: ubstable
-
Installation type: File
-
Image size: 32GB
Then set your username and password, for this tutorial I set my username to:
Code:
android
And im not gonna tell you my password
After you've set up your configuration scroll down and configure init, mounts and ssh
INIT:
Code:
Enable: On
Init system: run-parts
Init settings:
- Init path: /etc/rc.local
- Init user: android
- Async: Disabled
MOUNTS:
Code:
Enable: On
Mount points:
- /data/data/com.sion.sparkle/files - /sparkle
SSH:
Code:
Enable: On
SSH settings:
- Port: 22
- SSH options:
Now you've set this all up go back to the main overview screen of Linux Deploy, hit the tripple dot menu and install!
After the install is done, hit START
Now open Termux and install SSH:
Code:
pkg install openssh
then connect to linux via SSH: (username is the username set in Linux Deploy)
Code:
ssh [email protected]
Now you've connected you need to install some packages:
Code:
sudo apt install weston
sudo apt install xwayland
sudo apt install nano
sudo apt install dbus-x11
Also install your desktop environment of choice, for this tutorial im going with KDE:
Code:
sudo apt install kde-full
Once everything is done installing you need to configure some scripts:
Code:
nano sparkle.sh
Now paste this: (make sure to change "startplasma-x11" to your preferred DE, if you're also using KDE then you don't need to change anything)
Code:
#!/bin/bash
set -e
sudo chmod 777 /sparkle
sudo chmod 777 /sparkle/wayland-0
XDG_RUNTIME_DIR=/sparkle Xwayland &
sleep 1
export DISPLAY=:0
startplasma-x11
Now open Sparkle and click "edit user.sh" and delete everything then hit "save", Go back to the main screen of Sparkle and hit "Start", you should see a notification appear in your status bar
Now to start everything go back to Termux and assuming you're still SSH'ed into Linux type:
Code:
sh sparkle.sh
and enjoy!
Bonus step:
If you want everything to automatically start when pressing "START" in Linux Deploy than you can configure this
Open Termux and connect to Linux via SSH and change the permissions/edit the rc.local file: (edit username to the username set in Linux Deploy)
Code:
sudo chmod +x /etc/rc.local
sudo chmod +x /home/username/sparkle.sh
sudo nano /etc/rc.local
In nano paste: (once again change username to the username in Linux Deploy
Code:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/home/username/sparkle.sh
exit 0
Now every time you want to use Linux just open Sparkle, hit "Start", then go to Linux Deploy and start linux and your DE will automatically load up on your screen without entering a single command!
Unfortunately, this method doesn't give hardware 3d acceleration. Just very slow software emulation. It is much harder or even not possible to achieve true acceleration on android handhelds.
Hi
What version of Sparkle did you use? I've tried this tutorial here but received an error of wayland-0 not found when I try to run my linux installation on my device
I've looked in the folder /data/data/com.sion.sparkle/files and this folder is empty
Thanks for the tutorial!
Got any images or a video you can share?
It works
I managed to use it, but with xfce KDE had a black screen, and I couldn't use the audio even though I made the alsa plugin, and it doesn't rotate the screen, but it's very good.
I have One Plus 8 pro.
So my results with this software 3D acceleration are that the performance really suck but its amazing for now because you need this basic aceleration in almost everything i can now render videos on my phone in kdenlive and the phone has kinda good cpu performace so there is no problem basicly i can now run in this chroot everything that can be runned on raspi and i am also messing around with BOX86 which is a hardware translation of arm to x86 architectures so far i can run x86 apps for linux inside the chroot and now with this little tool i can maybe get wine x86 runnig which means windows apps support on android yeeey of course with this low performace of a gpu i could at best try games before year 2000 and maybe if they start up have some good fps but i highly doubt that because raspi has problem runnig (in twister os) even unreal tournament and raspi has 5 to 6 times higher performance than this software accel.
Benchmarks i did were glxgears i got anywere from 200 to 270 fps which is not really much
Also I used 2 desktop config started the one thats build in vnc from the app and then started sparkle connected to it and had second desktop start up using lxde on my phone on phone the screen really sucks to to work with so i used scrcpy to mirror the screen of phone to pc so basicaly a have full control remotly i hope that this will have future version development to improve on code so that we could get more performace out of this.
Image below.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
I am using LXDE with Sparkle. I would like a lower screen resolution, all things look so small. I can do that with XSDL, how in Sparkle?
@HolyChickenGuy
Thanks for the well done tutorial ! I followed it and it worked out of the box.
However, two issues I came accross to which I did not find the solution, yet:
1. Is there a way to rotate the screen ?
2. How can I bring the X-window to the second screen connected via USB->HDMI adapter ? I tried to set DISPLAY:1 but 1 was not found and :0 is the devices screen.
Cheers mate and keep up the good work.
You can Also use Termux Desktop
Termux desktop is much faster and easier to use and you can experience a complete Linux GUI with termux, and it Is also lightwight.
saad maqsood said:
Termux desktop is much faster and easier to use and you can experience a complete Linux GUI with termux, and it Is also lightwight.
Click to expand...
Click to collapse
The described way basically is using Termux the way you propose. However it adds the 3D acceleration by using sparkle which is definitely a plus.
---------- Post added at 09:49 PM ---------- Previous post was at 09:47 PM ----------
flunkyball said:
@HolyChickenGuy
Thanks for the well done tutorial ! I followed it and it worked out of the box.
However, two issues I came accross to which I did not find the solution, yet:
1. Is there a way to rotate the screen ?
2. How can I bring the X-window to the second screen connected via USB->HDMI adapter ? I tried to set DISPLAY:1 but 1 was not found and :0 is the devices screen.
Cheers mate and keep up the good work.
Click to expand...
Click to collapse
Okay, rotating the screen is done by rotating Termux BEFORE you start the windowmanager.
But - for bringing it up on the external monitor I haven't not found the trick, yet
lower resolution in Sparkle app? relative mouse is possible?
but what if i want to install LXQt on my device
#!/bin/bash
set -e
sudo chmod 777 /sparkle
sudo chmod 777 /sparkle/wayland-0
XDG_RUNTIME_DIR=/sparkle Xwayland &
sleep 1
export DISPLAY=:0
startplasma-x11
what should i change in the script??????
sorry for the probably dumb question but Xsdl seems to work work quite well in my use cases (like watching youtube videos in 360p on my Samsung Tab S5e) ...
... so I am wondering : what are the advantages of Sparkle/Wayland over Xsdl ?? ... will my youtube videos be smoother ??
... does Sparkle/Wayland has better touch support than Xsdl ?? ... for example can you scroll a web browser window by touching inside the window (not the scrollbar) with your finger ??
pierro78 said:
sorry for the probably dumb question but Xsdl seems to work work quite well in my use cases (like watching youtube videos in 360p on my Samsung Tab S5e) ...
... so I am wondering : what are the advantages of Sparkle/Wayland over Xsdl ?? ... will my youtube videos be smoother ??
... does Sparkle/Wayland has better touch support than Xsdl ?? ... for example can you scroll a web browser window by touching inside the window (not the scrollbar) with your finger ??
Click to expand...
Click to collapse
you sure can get 1080 on a tab s5e with xsdl...
sparkle app is for sure more lightweight but in some situatons xsdl is better, at least with some games, at least with my experience
did you compile and use the android-shmem library?
zanfix said:
you sure can get 1080 on a tab s5e with xsdl...
sparkle app is for sure more lightweight but in some situatons xsdl is better, at least with some games, at least with my experience
did you compile and use the android-shmem library?
Click to expand...
Click to collapse
wow 1080 ! that would be awesome ! thanks for the info !!
actually 360p is not so smooth on my S5e without android-shmem library ...
if I understand correctly I just have to compile that in my chroot and then the shared memory feature is already supported in the Xserver xsdl that I installed from the playstore ??
thanks again !!
pierro78 said:
wow 1080 ! that would be awesome ! thanks for the info !!
actually 360p is not so smooth on my S5e without android-shmem library ...
if I understand correctly I just have to compile that in my chroot and then the shared memory feature is already supported in the Xserver xsdl that I installed from the playstore ??
thanks again !!
Click to expand...
Click to collapse
android-shmem library can give you a performance boost if the application you are running can use the x server MIT-SHM extension
For video playback in a web browser, firefox-esr for example, the android-shm library will not give you any performance gain...
Since there is no hardware acceleration in xsdl, In order to put the minimum possible load on the cpu you should match the screen resolution of the xserver with the target max resolution of the videos you are planning to playback.
My tab s6 has 2560x1600 native resolution, i run the xserver at 1920x1200 so I keep the aspect ratio of the screen but match the clip (tube video) native resolution (so that no rescaling will happen)
I can get acceptable youtube video playback also on my old pixelc c, that has a quadcore a57
well I don't know what I did wrong previously ... my youtube videos seem to play nice on 1080 in Xserver xsdl with arm64 vivaldi in my chroot (Tab S5e) with or without
env LD_PRELOAD="/home/pierro78/android-shmem/libandroid-shmem-aarch64.so" icewm&
now !
and I don't see any difference with or without LD_PRELOAD="/home/pierro78/android-shmem/libandroid-shmem-aarch64.so" in vivaldi although it may support x server MIT-SHM extension as you said ??
also I have errors when using /home/pierro78/android-shmem/libandroid-shmem-aarch64.so when I start icewm (same errors if regular user or root) :
[email protected]:/home/pierro78# icewm&
[1] 8527
[email protected]:/home/pierro78# Failed to connect to session manager: Failed to connect to the session manager: SESSION_MANAGER environment variable not defined
shmget: key 0 size 4096 flags 01600 (flags are ignored)
shmget: bound UNIX socket /dev/shm/00002157
listening_thread: thread started
shmget: ID 0 shmid 21570001 FD 7 size 4096
shmat: shmid 21570001 shmaddr (nil) shmflg 0
shmat: mapped addr 0x735094b000 for FD 7 ID 0
shm_remove: deleting shmid 21570001
shm_remove: shmid 21570001 is still mapped to addr 0x735094b000, it will be deleted on shmdt() call
shmdt: unmapped addr 0x735094b000 for FD 7 ID 0 shmid 21570001
shmdt: deleting shmid 21570001
and when I start vivaldi as regular user :
shmctl: cmd 3 not implemented yet!
shmget: key 0 size 2946039 flags 01606 (flags are ignored)
shmget: cannot bind UNIX socket, bailing out
[7437:7437:0426/232122.758794:ERROR:CONSOLE(0)] "Unchecked runtime.lastError: The message port closed before a response was received.", source: chrome-extension://mpognobbkildjkofajifpdfhcoklimli/browser.html (0)
shmget: key 0 size 112140 flags 01606 (flags are ignored)
shmget: cannot bind UNIX socket, bailing out
shmget: key 0 size 368460 flags 01606 (flags are ignored)
shmget: cannot bind UNIX socket, bailing out
or if I start vivaldi as root user :
shmctl: cmd 3 not implemented yet!
shmget: key 0 size 2831220 flags 01606 (flags are ignored)
shmget: bound UNIX socket /dev/shm/00001f6e
shmget: ID 0 shmid 1f6e0001 FD 36 size 2834432
shmat: shmid 1f6e0001 shmaddr (nil) shmflg 0
shmat: mapped addr 0x71b6582000 for FD 36 ID 0
shm_remove: deleting shmid 1f6e0001
shm_remove: shmid 1f6e0001 is still mapped to addr 0x71b6582000, it will be deleted on shmdt() call
shmdt: unmapped addr 0x71b6582000 for FD 36 ID 0 shmid 1f6e0001
shmdt: deleting shmid 1f6e0001
listening_thread: thread started
[7990:7990:0426/232440.532571:ERROR:CONSOLE(0)] "Unchecked runtime.lastError: The message port closed before a response was received.", source: chrome-extension://mpognobbkildjkofajifpdfhcoklimli/browser.html (0)
I am not sure how to check if my libandroid-shmem-aarch64.so is working ??
I would expect some "files" in /dev/shm but there is nothing there ...
pierro78 said:
[email protected]:/home/pierro78# icewm&
[1] 8527
[email protected]:/home/pierro78# Failed to connect to session manager: Failed to connect to the session manager: SESSION_MANAGER environment variable not defined
shmget: key 0 size 4096 flags 01600 (flags are ignored)
shmget: bound UNIX socket /dev/shm/00002157
listening_thread: thread started
shmget: ID 0 shmid 21570001 FD 7 size 4096
shmat: shmid 21570001 shmaddr (nil) shmflg 0
shmat: mapped addr 0x735094b000 for FD 7 ID 0
shm_remove: deleting shmid 21570001
shm_remove: shmid 21570001 is still mapped to addr 0x735094b000, it will be deleted on shmdt() call
shmdt: unmapped addr 0x735094b000 for FD 7 ID 0 shmid 21570001
shmdt: deleting shmid 21570001
Click to expand...
Click to collapse
PS : my bad : these error messages are coming from my xfce4-terminal, not icewm ...
pierro78 said:
well I don't know what I did wrong previously ... my youtube videos seem to play nice on 1080 in Xserver xsdl with arm64 vivaldi in my chroot (Tab S5e) with or without
env LD_PRELOAD="/home/pierro78/android-shmem/libandroid-shmem-aarch64.so" icewm&
now !
and I don't see any difference with or without LD_PRELOAD="/home/pierro78/android-shmem/libandroid-shmem-aarch64.so" in vivaldi although it may support x server MIT-SHM extension as you said ??
also I have errors when using /home/pierro78/android-shmem/libandroid-shmem-aarch64.so when I start icewm (same errors if regular user or root) :
[email protected]:/home/pierro78# icewm&
[1] 8527
[email protected]:/home/pierro78# Failed to connect to session manager: Failed to connect to the session manager: SESSION_MANAGER environment variable not defined
shmget: key 0 size 4096 flags 01600 (flags are ignored)
shmget: bound UNIX socket /dev/shm/00002157
listening_thread: thread started
shmget: ID 0 shmid 21570001 FD 7 size 4096
shmat: shmid 21570001 shmaddr (nil) shmflg 0
shmat: mapped addr 0x735094b000 for FD 7 ID 0
shm_remove: deleting shmid 21570001
shm_remove: shmid 21570001 is still mapped to addr 0x735094b000, it will be deleted on shmdt() call
shmdt: unmapped addr 0x735094b000 for FD 7 ID 0 shmid 21570001
shmdt: deleting shmid 21570001
and when I start vivaldi as regular user :
shmctl: cmd 3 not implemented yet!
shmget: key 0 size 2946039 flags 01606 (flags are ignored)
shmget: cannot bind UNIX socket, bailing out
[7437:7437:0426/232122.758794:ERROR:CONSOLE(0)] "Unchecked runtime.lastError: The message port closed before a response was received.", source: chrome-extension://mpognobbkildjkofajifpdfhcoklimli/browser.html (0)
shmget: key 0 size 112140 flags 01606 (flags are ignored)
shmget: cannot bind UNIX socket, bailing out
shmget: key 0 size 368460 flags 01606 (flags are ignored)
shmget: cannot bind UNIX socket, bailing out
or if I start vivaldi as root user :
shmctl: cmd 3 not implemented yet!
shmget: key 0 size 2831220 flags 01606 (flags are ignored)
shmget: bound UNIX socket /dev/shm/00001f6e
shmget: ID 0 shmid 1f6e0001 FD 36 size 2834432
shmat: shmid 1f6e0001 shmaddr (nil) shmflg 0
shmat: mapped addr 0x71b6582000 for FD 36 ID 0
shm_remove: deleting shmid 1f6e0001
shm_remove: shmid 1f6e0001 is still mapped to addr 0x71b6582000, it will be deleted on shmdt() call
shmdt: unmapped addr 0x71b6582000 for FD 36 ID 0 shmid 1f6e0001
shmdt: deleting shmid 1f6e0001
listening_thread: thread started
[7990:7990:0426/232440.532571:ERROR:CONSOLE(0)] "Unchecked runtime.lastError: The message port closed before a response was received.", source: chrome-extension://mpognobbkildjkofajifpdfhcoklimli/browser.html (0)
I am not sure how to check if my libandroid-shmem-aarch64.so is working ??
I would expect some "files" in /dev/shm but there is nothing there ...
Click to expand...
Click to collapse
looks fine when run as root...
is /dev/shm mounted as tmpfs?
/dev/shm should then have 1777 permissions
zanfix said:
looks fine when run as root...
is /dev/shm mounted as tmpfs?
/dev/shm should then have 1777 permissions
Click to expand...
Click to collapse
It looks like I am good :
[email protected]:/dev$ mount
/dev/block/mmcblk0p57 on / type ext4 (rw,noatime,seclabel,discard,journal_checksum,noauto_da_alloc,resgid=1065,errors=panic,i_version,data=ordered)
proc on /proc type proc (rw,relatime,gid=3009,hidepid=2)
sys on /sys type sysfs (rw,relatime,seclabel)
tmpfs on /dev type tmpfs (rw,nosuid,relatime,seclabel,size=2871960k,nr_inodes=717990,mode=755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,relatime,seclabel)
devpts on /dev/pts type devpts (rw,relatime,seclabel,mode=600,ptmxmode=000)
[email protected]:/dev$ ls -ld shm
drwxrwxrwt. 2 root root 40 Apr 26 23:59 shm
[email protected]:/dev$

Where are Network Unlock Key stored?

I'm in the quest of open lining my SM-G532F. For starters when typing `#7465625*638*#` on my phone keypad, an application pop ups which asks me to enter a number of digits (I assume it to be 8 digits number). This package name is `com.sec.android.app.personalization` when I compared running `sudo ps aux | grep perso` with the application running and one without.
With this, and obtaining the PID from `ps aux`, I managed to attached gdb to the PID and analyze it. It spawns about 8 threads with thread 1 breaking at __epoll_pwait:
Code:
(gdb) info thread
Id Target Id Frame
* 1 LWP 21739 "personalization" 0xb6d4cb18 in __epoll_pwait () from target:/system/lib/libc.so
2 LWP 21744 "Signal Catcher" 0xb6d4cdec in __rt_sigtimedwait () from target:/system/lib/libc.so
3 LWP 21745 "ReferenceQueueD" 0xb6d22738 in syscall () from target:/system/lib/libc.so
4 LWP 21746 "FinalizerDaemon" 0xb6d22738 in syscall () from target:/system/lib/libc.so
5 LWP 21747 "FinalizerWatchd" 0xb6d22738 in syscall () from target:/system/lib/libc.so
6 LWP 21748 "HeapTaskDaemon" 0xb6d22738 in syscall () from target:/system/lib/libc.so
7 LWP 21749 "Binder_1" 0xb6d4cc40 in __ioctl () from target:/system/lib/libc.so
8 LWP 21750 "Binder_2" 0xb6d4cc40 in __ioctl () from target:/system/lib/libc.so
Very not interesting. What I wanted to do now is dump the memory and search for the string, "Enter Network Lock Key", to confirm I'm in the right track. But the problem right now is '/proc/pid/maps' has a ton of memory and it would take days to dump it in. So I only decided to dump only the line containing `stack ` and `libpersona.so` from /proc/pid/maps cat /proc/pid/maps | grep libpersona.so | grep stack > ~/maps
I added libpersona.so because I suspect something fishy with it. (1) It rhymes with package name (very logical I think), (2) it is mapped to /proc/pid/maps, (3) it references symbols of strcmp which used to comparing string,
And then using memdump from https://security.stackexchange.com/a/109068 (Modifying "/proc/%s/maps" to "maps" so it uses the one I catted)
But still, I haven't got a clear sign of it.
As a last resort I would brute force all 1,814,400 permutations.

Categories

Resources