[TOOL] WAX - WhatsApp Extractor - Android Apps and Games

Some weeks ago, I was using WhatsApp Xtract, but started having some problems with wa.db. On both Windows & Linux, it would allways say my wa.db file was not valid. Also, from some time ago, my extracting process would take too much(more than 30 sec). So, having both problems, I decided to write my own tool for such purpose.
Features:
- Really fast(2 sec for a 4Mb database with contacts)
- Full support for Android data
- Supports use of wa.db for contact data
- Fully supports content types: vCard, GPS
- Thumbnail support for Images & Videos(May not get to see the actual image or video). Also for GPS, when thumbnail included.
- Output similar to WhatsApp Xtract
TODOs:
- Add support for iOS, BB & Windows
- Add support for encrypted databases
- Enhance support for some content types (Image, Videos, etc)
Usage:
wax [a] [c]
"a" Activate the Android mode. It's currently the only working mode.
"c" Use "wa.db" to get contacts information(Name & Status). Otherwise, will use phone number as name, and status will be unavailable.
Must run from command prompt, on a folder where "msgstore.db" resides. Also, if using "wa.db", it should be under the current folder.
Until now, I have only compiled the tool for Windows(I only have Windows at home), but I wrote it with standard C/C++, so there should be no problem to compile it under Linux. I will try from my office, where I have Linux PC, and update here when it works(a Makefile would be a good idea).
Credits:
- Zena Forensics(Fabio Sangiacomo and Martina Weidner), because this tool is somehow inspired on the original WhatsApp Xtract. Also, it uses the same data folder.
- Myself
Download:
- Source: http://www.opensysperu.com/downloads/wax/wax_src_v1.zip (Project and Solution for Visual Studio 2010. Will work on a Linux Makefile)
- Binary(Win x86): http://www.opensysperu.com/downloads/wax/wax_bin_v1.zip
Plz give feedback and comments to make the application better.

Reserved

Related

[Dec 2012] Android SMS Importer from WM PimBackup files

This utility allows to convert PimBackup files to XML one which is
compatible with Android application "SMS Backup&Restore" created by
Ritesh Sahu (* check the author to match the right application on Market *).
After the conversion the XML file contains all your SMS and you can Import
them to you Android smartphone.
This utility doesn't require any installation process or additional DLLs,
in order to start using it, just run the executable file.
WARNING: I've tried to restore about 11,000 SMS with success on "Motorola Atrix 4G" and it seems to freeze many times while running stock "Text Messaging" application.....so I think 11,000 SMS is too much to handle for Android OS
Versions History
=============
* Version 2.0.0.4 (2012-12-13)
- New Draft Folder support
- Messages in Custom Folders are now moved to Inbox or Outbox
- Minor bug fixes
* Version 2.0.0.2 (2012-11-28)
- New option (only for CMS files): Discard self-test messages
- New option to convert not supported folders in In/Outbox
* Version 2.0.0.1_beta1 (2012-11-14)
- New advanced graphic design
- PimBackup binary files (*.pbm) supported!!!!!!
* Version 1.0.1.0 (2011-09-28)
- If it enconters an irreversible error it will asks if you want to continue without stopping conversion
* Version 1.0.0.9 (2011-09-26)
- Managed splitted Conversation/SMS text in multi-rows (messages with Carriage Return)
* Version 1.0.0.8 (2011-07-27)
- Fixed negative values for TimeZone offsets
* Version 1.0.0.7 (2011-07-27)
- Added TimeZone and Date/Time management to increase/decrease according to your local TimeZone
* Version 1.0.0.6 (2011-07-04)
- Fixed bug while using special characters like "&" or quote
* Version 1.0.0.5 (2011-04-21)
- Fixed bug for Inbox messages if SenderName and/or SenderAddress is empty
* Version 1.0.0.4 (2011-04-21)
- Managed empty "SenderName" and "SenderAddress" for Outgoing messages. Now those messages will be considered well.
- Draft, Trash and Outgoing folders (from CSM file) are not converted in any case because Android hasn't got those folders.
* Version 1.0.0.3 (2011-04-19)
- Added "Text Encoding" option to decide output file text encoder ("UTF-8" is the most common)
- Managed empty "SenderName" and "SenderAddress" data from input files. Now those messages will be discarted
* Version 1.0.0.2 (2011-04-19)
- Added an option to stop decodification after have decoded a specified amount of messages
- Managed "line-brakes" in messages. Those line-brakes will be removed from the message
- Managed "self-test" messages. Those self-test messages will not be added to output file
- Fixed a bug that truncates TextMessage at first "semicolon" character
- Added an "Error" section to show occurred errors
* Version 1.0.0.1 (2011-04-18)
- Uncompressed Executable file for better compatibility on multiple Windows OS
* Version 1.0.0.0 (2011-04-06)
- First release
Create a good backup file with PimBackup
=================================
The software is dummy and need a good/perfect file to work fine; in other words it needs
a good PimBackup file.
Let's create that file:
* open PimBackup in your Windows Mobile phone/smartphone
* choose "Backup" from dropdown list
* select sections as you wish but not forget "Messages"!!
* press "Next"
* (if you have a lot of SMS do not select "Create temp files in memory")
* press "Next" and go-on following the Wizard....
Find CSM or PBM file
===================
At the end of procedure above you will have a single PIB file.
This file is compressed and you can open it with WinZip/WinRAR/7Zip.
* So, please open it and look for "*.cms" or "*.pbm" file.
* Extract it from the compressed file.
That's it!!
Start the conversion
==================
Ones located CSM/PBM file you will want to convert it, right?
* Open "PimbackupDroid.exe" (this software of course!)
* Click "Menu --> Open" and select a CSM/PBM file
* [only for CMS] Enter "Your phone number for comparison". This field is necessary because
this is the only way to identify you as the sender of outgoing messages.
You can use simple numbers without international prefix (Ex: 0039 or +39).
* (optional) Check "Only between dates" to force convert just SMS between
two specified dates. It works for both incoming and outgoing messages.
* (optional) Check "Blacklist" OR "Whitelist" radio button if you want to
EXCLUDE (blacklist) some contacts or you just WANT (whitelist) convert
just some specified contacts.
!!WARNING!! - Blacklist and Whitelist using "Partial" input data, in
other words if you will add "Edward" in one of those all
contacts CONTAINS "Edward" word will be blacklisted/whitelisted,
for example also "Edward2" will be affected.
Both Blacklist and Whitelist are case insensitive (no difference between
"Smith" and "SMITH").
* Press "Start" button. It will generate a NEW file with the same name of original
one but with ".xml" extension. (!!WARNING!! - it doesn't ask for overwriting)
Import XML file on Android OS
========================
Now you have an XML file generated with this utility and you need to download
a small (and FREE) application from Android Market:
*SMS Backup & Restore" created by "Ritesh Sahu" (!!!check the author name!!!)
Install it
Before run this new installed utility you need to create a new "SMSBackupRestore"
folder in you Internal Phone Storage's root directory.
Now you can copy your XML file to this new folder and run the new Android application.
This Android utility is very very easy to understand: just press "Restore" button
and select your XML file.
Now wait until errors (ops!!) or successfully popup window!
System Requirements
==================
This utility works properly on all 32-bit/64-bit versions of Windows,
including Windows 98/ME, Windows NT, Windows 2000, Windows XP, Windows
Server 2003, Windows Vista, Windows Seven and Windows 8.
Personally tested on: Windows 7 Ultimate 64bit, Windows XP 32bit and Windows 8 Pro 64bit
Linux users: I think this software will works with "WINE" but not tested.
Disclaimer
==========
The software is provided "AS IS" without any warranty, either expressed
or implied, including, but not limited to, the implied warranties of
merchantability and fitness for a particular purpose. The author will not
be liable for any special, incidental, consequential or indirect damages
due to loss of data or any other reason.
Issues/Limitations
===============
- MMS/e-mails not supported
- Attachments (like images or files) not supported
Screenshot
===========
{
"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"
}
Download at Sourceforge.net
======================
https://sourceforge.net/projects/pimbackupdroid/
Any idea on what to add more to this software??
Post reserved to author
This sounds great. I have a lot of old SMS I'm missing after switching to android. I'm going to test it as soon as I'm with my PC tommorow morning. Will report back then.
Sent from my HTC HD2 using XDA App
emandt, I tried to download your SW from the page you have listed, but it looks like folder is empty...?
As I've wrote in first post: project just opened at SF.net, so be patient
I'm creating a small README as Guide and prepare source code to place it on SF.net very soon.
OK, I was under impression at least test version is available. I'll wait
Released the first version few hours ago.
Check the Limitations (first post) before post a bug
I've realized my PIM backup files are .pib, not .csm. Is there any way how to move it to .csm? Except of restoring and archiving again through WM...I have only one phone
Thanks.
Please read the description at first post or the README file following the EXE.....
The ".CSM" file IS INTO the PIB file.
PIB file is just a compressed file to handle multiple files in single one.
Use WinZip / WinRaR / 7-Zip to open the PIB file and extract CSM one.
If your backup was created with "Binary backup(faster)" options it's impossibile to convert with my software (no any description/protocol about "How To Read" a Binary file created by BimBackup)....so, in this case, I think you need to Restore all messages and start the backup (without THAT option!!) again....sorry.
However I will study (raw mode with thousands of tries) "Binary backups" to allow them as non-binary ones.
I'm sorry I have overlooked this step. The problem is that even when I open .pib file, there is no .csm. Actualy, all extensions begin with .p**. Could be the reason that I have somehow checked "binary backup" in WM PIM?
I'm hot to test your SW but obviously I'm not a good tester
BTW, why don't you move this topic between general android applications, to have it more visible in the forum?
I'm trying to read binary backup files but without any description from author is very very hard to resolve this step. I've not found a schema for the data into binary files yet.
I've studied BINARY backup and already found half-solution, at least for NAME, TELEPHONE_NUMBER and TEXT_MESSAGE.....not I'm stuck at "Date and Time field"....
I've wrote to PimBackup author and I hope he will respond me with the solution.
Stay tuned
Nice initiative
Hi,
first of all, congrats for the iniative. Sorrowfully, it doesn't work for me (Access Violation at address 004ccea0 [...] @ address 00000004
If this helps: W7 x64 Pro @i5
For people who have their backups in binary format, from this same forum (don't remember the threads tho, sorry) came these tips:
1) Download Microsoft Windows mobile 6.5 Professional Developer Tools (goole it or "Windows Mobile 6.5 emulator");
2) run the appropriate version of the emulator;
3) "install PimBackup and restore your backup (set up a "shared Folder" for that, it will appear as a storage card);
4) redo your backup without binary format unchecked;
5) have fun! (if you're reading this thread, you know the rest already )
Also, see this link: Transferring contact list from Windows Mobile to Android SANS OUTLOOK
Have fun! I'll have to wait the next stable version.
It's strange....I'm using Win 7 Ultimate 64bit in italian language.
What OS language?
What is your OS alphabet in use?
I've developed this application quiclky and I don't have considered alphabets and non-latin characters. Maybe it could be this.
I'll spend more time to make it works on other OS settings
@tuliogs: if your Error is generated during startup of application you can try new version (v.1.0.0.1 folder on download section) which has an uncompressed Executable file to increase compatibility on Windows OS.
Otherwise: I need more explanations about that Error.
not yet
I get the error when trying to convert the file. Win7 here is in brazilian portuguese, I guess it's UTF-8 (or else, probably Windows-1251, which in turn is an ISO 8859-1 variant, I guess).
Just tried the new version... same issue, but it now shows where it stops: on a self-test SMS (explained below). It was enough to change the "phone number for comparison" field and _that_ issue was solved. However, please keep reading.
I found some "anomalies" in some messages in my file, though:
some are self-tests I sent to myself or just empty drafts. this seems to be the issue described before;
some contain the whole phone numbers including country codes and the plus sign (no trouble with those ones);
some archived messages contain line breaks: these are plain skipped;
duplicate messages, some within a short interval (3 secs or less) disappear also;
different cellphones use different text encodings so you guess the mess... however, overall text is more important than specific characters, so it's relevant to say I had no problem at all with these, apart from getting alien symbols (which don't bother me).
I had to abandon Android on my Kaiser to revamp it from scratch (therefore, WM again aawwww), so I can't test the final result now, but there's a Samsung Galaxy S (Froyo, I guess) coming in a few days. So if you'd wish to attack those issues in the meantime, I'll gladly test the final result when time comes.
Thank you again and keep up the good work.
Nice to have so detailed error description!!
New version was compiled just without "Compress executable" option because I thought your error were caused on startup and not during conversion.
Can you send me just a complete row (you can manually edit a row to create fake text) of CSM file with many brazilian characters??
Now I'll try with:
- self test messages
- many special characters (also line-breaks)
outgoing SMS is sucessfully converted,
but I cannot found any incoming message in the output files...
Here are the first few line of the output:
Code:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<smses count="196">
<sms protocol="0" address="" date="1284300650000" type="1" body="回到家了啦" read="1" status="-1" contact_name="" />
<sms protocol="0" address="" date="1286260959000" type="1" body="整緊" read="1" status="-1" contact_name="" />
@azothterry: TYPE="1" means "Inbox" but perhaps this wrong decode depends of strange Input data.
I've tested with my latinian-alphabet without special chars (comma, points and few single-quote chars) and it works.
To allow other alphabets/characters I need few lines from your CSM file, expecially with special chars.
Don't forget to set "Number for comparison" field with your partial (without international prefix) phone number.
Hi, emandt
Here are some line of my csm file, many thx.
Code:
0x00,0x00;"";"";;"";"回到家了啦";"";0;"\\%MDF1";"SMS";"IPM.SMStext";;;33;262144;2011,04,13,15,07,28;2010,09,12,22,10,50;1;"524296\;Kat\;99999999\;1\;0\;SMS";0;""
0x00,0x00;"Kain Kwok";"\"Kain Kwok\" <88888888>";;"";"幫我開電腦pls";"";0;"\\%MDF1";"SMS";"IPM.SMStext";;16;1;;2008,01,01,16,38,55;2010,09,22,09,29,45;0;"";0;""
0x00,0x00;"";"";;"";"整緊";"";0;"\\%MDF1";"SMS";"IPM.SMStext";;;1;262144;2008,01,01,16,38,56;2010,10,05,14,42,39;1;"524296\;Kat\;99999999\;1\;0\;SMS";0;""
0x00,0x00;"Kat";"\"Kat\" <99999999>";;"";"飲檸檬茶中..";"";0;"\\%MDF1";"SMS";"IPM.SMStext";;14;1;;2011,04,13,15,07,28;2010,10,05,14,46,55;0;"";0;""
0x00,0x00;"";"";;"";"飲緊燈汁!明天俾一支你!";"";0;"\\%MDF1";"SMS";"IPM.SMStext";;;33;262144;2011,04,13,15,07,28;2010,10,05,14,51,24;1;"524296\;Kat\;99999999\;1\;0\;SMS";0;""
0x00,0x00;"Kat";"\"Kat\" <99999999>";;"";"何時買?";"";0;"\\%MDF1";"SMS";"IPM.SMStext";;8;1;;2011,04,13,15,07,28;2010,10,05,14,52,55;0;"";0;""
0x00,0x00;"";"";;"";"今早";"";0;"\\%MDF1";"SMS";"IPM.SMStext";;;33;262144;2011,04,13,15,07,28;2010,10,05,14,53,23;1;"524296\;Kat\;99999999\;1\;0\;SMS";0;""

[TOOL][Forensic] Andriller - data acquisition from Android devices

Moderators: if this thread is in wrong place please forgive and move it to a location best suitable for this thread.
Self-introduction I come from law-enforcement digital forensics background aimed at data extractions from mobile devices.
I would like to introduce a tool that I created.
Andriller
http://andriller.com
Andriller is a Windows GUI forensic tool, that performs read-only, forensically sound, non-destructive acquisition from Android devices. The executable is run from a terminal or by executing directly; it produces results in the terminal window, and a report in a HTML format.
Usage:
Download Andriller from the download page and install. To use the software you need to obtain a license key (free trial available). Instructions on doing this will be provided on the page
Note: Android version 4.2.2+ requires to authorise the PC to accept RSA fingerprint. Please do so, and tick the box to remember for future.
Note: Devices with Superuser or SuperSU App require to authorise root access from an unlocked screen. Please grand permissions if requested.
Description:
Once andriller is executed, it will produce permilinary results in the terminal window; for rooted devices it will download and decode the content automatically. It will produce a new folder in the location where it was executed, where the main "REPORT.html" file can be opened in a web browser.
Supported data extraction:
Non-root devices (Android versions 2.x):
- Android device make and model
- IMEI, build version, OS version
- Wifi mac address
- Time and date check
- SIM card details (for a some Galaxy Sx devices only)
- Synchronised accounts
Non-rooted devices (via backup method, Android versions 4.x and above)
- Wi-Fi passwords (WPA-PSK/WEP)
- Call logs (Samsung) register
- Android browser saved passwords
- Android browser browsing history
- Google Chrome saved passwords
- Google Chrome browsing history
- Facebook* chat messages
- Facebook* user viewed photographs
- Facebook* user notifications
- WhatsApp* contacts list
- WhatsApp* chat messages
- Kik Messenger* chat messages
- BBM* chat messages (Blackberry Messenger)
- Viber* chat messages
Rooted devices (via root adbd or 'su' binary, any Android versions):
- Security lockscreen pattern gesture extraction (decoding online)
- Security lockscreen PIN code cracking (up to 8 digits long)
- Wi-Fi passwords (WPA-PSK/WEP)
- Synchronised accounts and profile picture
- Bluetooth mac address and name
- Phonebook contacts
- Call logs register
- Call logs (Samsung) register
- SMS messages
- Android browser saved passwords
- Android browser browsing history
- Google Chrome saved passwords
- Google Chrome browsing history
- Facebook* friends list
- Facebook* chat messages
- Facebook* user viewed photographs
- Facebook* user notifications
- WhatsApp* contacts list
- WhatsApp* chat messages
- Kik Messenger* chat messages
- BBM* chat messages (Blackberry Messenger)
- Viber* chat messages
* = if an Application is installed
Disclaimer:
Andriller comes with absolutely no warranty. Even though Andriller was written in a way to be a forensically sound read-only utility, I do not take any responsibility to any damage or harm caused to your computer systems or your Android devices, which may be believed to have been caused by executing Andriller. I also do not take any responsibility of any unsolicited, non-consensual or unlawful misuses of this utility. It is the end user's responsibility to believe an appropriate consent or a lawful excuse was obtained if the utility is used with an other's Android devices, and they are aware what the utility does.
Visit http://andriller.com to download the latest software
Andriller performing AB extraction
{
"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"
}
Reporting in HTML
Android Decoders
Password Cracking
Update 14/10/2013
Version 1.0.0a
Python-based compiled executable for MS Windows uploaded.
http://andriller.com
Update 07/11/2013
Version 1.1.0a
Added support to the latest Facebook App.
Minor improvements to decoding method.
Updated 13/01/2013
Version 1.2.0a
Added support for:
- Lockscreen PIN cracking
- Wi-Fi passwords
- Android web browser
--- Saved passwords
--- Browsing history
- Google Chrome web browser
--- Saved passwords
--- Browsing history
- Synchronised accounts
- Kik Messenger
- BBM (Blackberry Messenger)
Improvements to downloading and decoding.
Minor bugs fixed.
Updated 03/02/2013
Version 1.3.0a
Added support for:
- Data extraction via backup method (android version 4.x), no need for root.
Updated 17/02/2013
Version 1.3.1a
Added support for:
- Android (default) E-mail client:
--- Account and passwords
--- E-mails support
Minor bugs fixed.
Updated 21/02/2013
Version 1.3.2a
Improved data handling.
Bugs fixed for PIN cracking.
Updated 01/04/2014
Version 2.0.0
Graphical User Interface (GUI) - for Windows XP/Vista/7/8
Lockscreen cracking for:
--- Pattern
--- PIN
--- Password (using a wordlist file)
Decoding of individual of databases
Also includes all features from previous versions of Andriller
Requires registration, free 7 days license
Updated 19/04/2014
Version 2.0.1
Transferred to andriller.com domain
- Minor bugs fixed
- Added support for decoding Grindr App messages & users (Apple iOS)
- Window size reduced to accommodate smaller resolutions
- Default font changed to Consolas
- License key filename is now stored as the unique id
Updated 29/04/2014
Version 2.0.2
- Installer; Andriller now comes as a Setup Installer for Windows
- Improved PIN and Password cracking speed of up to 48% faster than previously
- Minor bugs fixed
- Some descriptions clarified
Updated ??/05/2014
Version 2.0.3
- Decoders in menus were fixed for error handling
- Typing mistakes corrected (oops)
- Minor improvements all-round
Updated 14/05/2014
Version 2.0.4
- Added support for Viber Messages chat (Android)
- Fixed a bug in Email decoder, so the feature is working now
- Chrome web browser decoding works for any mobile/desktop operating system (Android, iOS, Windows, Unix, Mac)
- Fixed Facebook chat messages decoding for the latest App version
- Decoders; if [Output] if chosen, the decoded data will be saved there; else the decoded data will be displayed in a temporary directory
- Error handling improved within file browsing/saving, license key registration
seriously awesome dude
dude i am working on presentation on forensics ill surely give out your tool in the first place all the others congs :angel::angel::angel:
stealthroot said:
dude i am working on presentation on forensics ill surely give out your tool in the first place all the others congs :angel::angel::angel:
Click to expand...
Click to collapse
Thanks buddy, all the best luck with your presentation and forensics! :good:
Andriller is awesome, customer of yours since half a year, cannot recommend it enough.
This deserves a bump.^^
Hi.
Does your tool support retrieving (at least as a read-only) applications installed and their data from dead Android phones (particularly from those which are not rooted and stuck on boot and showing only logo)?
Do you know any other open-source solution for this?
Thank you.
john2014 said:
Hi.
Does your tool support retrieving (at least as a read-only) applications installed and their data from dead Android phones (particularly from those which are not rooted and stuck on boot and showing only logo)?
Do you know any other open-source solution for this?
Thank you.
Click to expand...
Click to collapse
What you are looking for does not exist (to my knowledge). There isn't a single tool to magically repair half-broken Android devices. It's handset make model dependant. This will require extensive manual interactions to repair boot loops, re-flashing individual partitions, etc. If not successful, the options left are JTAG or even chip-off.
den4uk said:
What you are looking for does not exist (to my knowledge). There isn't a single tool to magically repair half-broken Android devices. It's handset make model dependant. This will require extensive manual interactions to repair boot loops, re-flashing individual partitions, etc. If not successful, the options left are JTAG or even chip-off.
Click to expand...
Click to collapse
Thanks for your reply.
Actually, what I want primarily is not to repair the device itself, but to extract some apps installed with their data which are important.
If there is no a single solution, could you please tell what open source solutions can be used as a complex in this case and what sources would you advise to read (as a starting point and to have a general idea) in order to get a better understanding of possible solutions for this kind of problems?
Andriller is actually working!!!!
Thanks !
Thanks 4 this very useful tool!
At work i use UFED and XRY to aquire and analyse mobile datas...
...but this tool is definitly worth to use beside this two programs.... :good:
greets from austria
chris_forens!c
what is andriller reg. key
Can't extract/decode call logs
I'm able to extract the backup, but I'm not getting call logs for some reason. Is there a different way I should be using the decoder? I ran the adb extraction and got account info, phone MAC, build, wifi passwords and download history. After playing around a bit, I extracted the ab image using 'tools' then parsed the extracted folder which gave me chrome saved passwords and chrome history. I tried parsing .tar and .ab files extracted and didn't get anything useful. Using the call log decoder, i tried to access the com.android.calllogbackup file but theres only a manifest file there (no .db). Any advice on getting call/text logs? Will i need to root the phone? Its a Samsung Galaxy On5, on 6.0.1

[APP] Paste Over Net - 1.0

Hello everyone. This is my vision of sharing clipboard over local network.
I found a lot of similar things however they were not good for me. Let me explain.
I have couple netbooks at home with linux/windows. I have desktop running linux. I have 3 androids around...and sometimes I have friend coming with Mac.
I want be able to just send link / password / picture/ video from one device to another fast-right-now without worrying to setup / configure /reading manuals for anything.
And here PasteOver.Net comes. Written for own use mostly, works strictly inside local IP subnets, uses AES-128/RSA-1024 encoding in case you want to launch it in school, sends clipboard content (content is unified, so PrintScr on windows will paste on unix devices like android too) and (or) files etc.
PasteOver.Net comes in 2 versions:
Desktop Edition
Android Edition
Desktop edition is a java "jar" and can run anywhere with JavaFx 1.8._u40 or better. Also I made some bundles for easy use on Intel CPUs (on website).
Android edition is hosted by google play market, also it has 2 additional features:
Empty Clipboard - floods clipboard with trash so it removes things like password (Samsungs keep last 20 items, your password may stay there forever).
Picture&Send - single button "do a picture, send to other device now".
You can get desktop bundles/jar and read more on: pasteover.net
Android version is on: play.google.com/store/apps/details?id=net.pasteover

[APP][4.0.3+] Facebook Patcher 100+ -Avoid using Messenger, send messages from FB app

PATCHED APK'S HERE - by @wolfballz
What to do if you don't want to use Messenger, rather to send messages from the Facebook app itself?
a) If you'd like to use the voip function, use 55.0.0.18.66 patched.
Do NOT use the unpatched app with Messenger 1.0 because it won't let you see your messages, instead it will ask you to update Facebook.
b) If you don't care about voip calls, but need Facebook's new features and a rich messaging interface like in Messenger, use either 85.0.0.0.18 patched or 78.0.0.16.67 patched (both for ARM only).
It also offers some extra features that the APK patched with 2.9 doesn't have:
● Version modified to 999 so the app won't ask you to update.
● Fixed crash when opening gallery from composer.
● No duplicate emoji buttons in composer.
● Bubble style delivery state icons like in Messenger.
● Blue title bar to fit FB's design (v85 only).
c) If you'd like to stay up-to-date, you can always patch the latest version using Facebook Patcher 100+. The latest version where message notifications work is 106.0.0.26.68. Note that you'll only see the mobile messaging site in the in-app browser on the latest versions!
● 106.0.0.26.68 patched for ARM devices (51.9 MB)
● 106.0.0.26.68 patched for x86 devices (54.8 MB)
FEATURES
● Send messages directly from the main Facebook app without the need to install Messenger.
● Send emojis and stickers.
[The following features aren't offered by Facebook Patcher 100+, just by FBPatcher 2.9 up to version 85.0.0.0.18]
● Use QuickCam to capture & send images and short videos instantly.
● Edit images and videos before sending them.
● Share images from conversations to Facebook.
● Send hot likes, audio clips, events and locations.
● See cool snow fall and floating hearts when sending the appropriate emojis.
● Play Messenger's basketball and soccer game (unfortunately, without score submission).
[The following features are only applicable to Facebook Patcher 100+]
● No matter what variant you download, the patched APK will be a 4.0.3+ one.
● Removes lots of junk from the APK and compresses it --> much smaller app size!
USAGE
0. Install the latest Java runtime if you don't have it yet.
1. Download a Facebook APK from apkmirror.
2. Download the patcher (from V100, use Facebook Patcher 100+), start it with double click and follow the instructions.
3. Uninstall the official Facebook app.
4. Copy the patched apk to your device, install and enjoy!
TROUBLESHOOTING
Can't start the patcher
Firstly, update to the latest Java -- the patcher requires version 1.8 at least. If you can't start it with double click on Windows, you should associate jar files with 'javaw.exe' (NOT 'java.exe' as it won't work). It's in the bin folder of your Java installation (typically 'Program Files\Java\jre*').
On Linux/Mac, you should use 'chmod +x' on the jar file before the first run to get execution permission. Google it if you're not familiar with that command.
Got an error while patching
● Most likely: Facebook changed something in the code, please wait for patcher update.
● Very unlikely: you don't have enough space (<100MB) for the patcher's temporary files.
● Very unlikely: APK file is corrupted, try to download it again.
If nothing helps, post a log or screenshot here.
Can't install patched APK
● You have the official Facebook app installed, you should uninstall it first.
● You have it preinstalled (flashed on 'system') -- you can only get rid of it with root, sorry, not my fault.
● You're trying to install a 4.0.3+ variant over a 5.0+ one and vice versa, uninstall the app first.
● You're trying to install a 5.0+ variant on a pre-Lollipop system, try patching & installing a 4.0.3+ variant.
Patched app quits on start
● If you've just updated to a patched alpha, you may have to clear app data before first start. Some alphas may get in an infinite loop on start if old app data is present. This is not the patcher's fault, the original app also has this issue.
● It's very likely that you've downloaded an APK built for an architecture that's different from your device's one. For example, you have an x86 device and installed an ARM APK that won't work. Since x86 mobile devices are rather rare, you could hardly find any x86 APK's. To obtain one for your device, you should install it from Google Play and save the APK with a backup application or Total Commander. Then you can pull it to your PC and patch it. Don't forget to uninstall the original app before trying to install the patched one!
KNOWN ISSUES
These issues are known and can't/won't be fixed.
● On some versions prior to 75.0.0.23.69 the app crashes when scrolling down 20 messages in thread list, this is not the patcher's fault, use a later version to avoid this bug (85.0.0.0.18 is recommended).
● Back and info buttons on title bar, GIF and Payment buttons don't do anything.
● On Android 6.0+, clicking the blue button in the Messenger permission request window causes a crash. Grant the permissions for the app from Settings/Apps.
● Your basketball and soccer score won't be submitted to the thread.
● From v107, message notifications don't work because Facebook messed up something - use v106 stable instead.
QUESTIONS & ANSWERS
Q: What does it do to the Facebook app?
A: FBPatcher is a desktop Java application that needs a Facebook APK file as input and will provide you a patched APK as output, with Messenger functionality. It only does minimalistic (but yet not trivial) modifications to some classes and the manifest, new code isn't inserted into the app -- the Messenger window with all of its resources and code is in the original APK, this patcher just makes it accessible.
Q: Will the patched app be updated via Play Store?
A: No, you should always download, patch and install the latest version manually to be up-to-date.
Q: Is there any way to make VoIP calls working?
A: From V56, no. Use 55.0.0.18.66 if you need free calls.
DESCRIPTION
Operations performed by the patcher
● Extracts manifest and dex files.
● Finds patchable classes in the dex files by searching for patterns that identify those classes.
● Disassembles dex files that contain patchable code, automatically modifies the classes and reassembles the files.
● Patches the manifest to remove FB specific permissions and modify the Messenger window's theme.
● [100+ only] Reduces app size by removing unused files.
● Updates the APK with the patched files and signs it.
List of patched stuff
● AndroidManifest.xml -- modifies ThreadViewActivity's theme and removes FB specific permissions to allow other FB apps to be installed, also adds CreateThreadActivity again.
● ForceMessenger -- enables in-app messaging.
[The following classes don't exist from a specific version / aren't touched by Facebook Patcher 100+]
● MessengerMSiteUriIntentBuilder -- creates entry points for Messenger code instead of mobile messaging site, also enables some features.
● DiodeMessengerActivity -- replaces the 'Install Messenger' Fragment with Messenger thread list.
● ThreadListFragment -- defines an on-click event for thread list items (ThreadViewActivity will be opened with the selected thread / mobile site will show up when tapping message request).
● FacebookActivityDelegate(Impl) -- crash fix for ThreadViewActivity.
● MuteThreadWarningNotification -- crash fix for ThreadViewActivity.
● BballView(.3) -- crash fix for basketball game.
● SoccerFeedbackEmojisView -- crash fix for soccer game.
● MessagesVideoConfigModule -- Enables gallery video sending/transcoding.
● InboxFilterManager.NoSaveStateBehavior -- was missing, added again
● TwoLineComposerView -- remove Payment button action
● ThreadListContextMenuHelper -- remove 'Mute thread' option
Included third party libs
● XZ for Java by Tukaani
● smali/baksmali by JesusFreke
● SignApk (part of AOSP)
Click to see licenses.
Licensing of XZ for Java
All the files in this package have been written by Lasse Collin and/or Igor Pavlov. All these files have been put into the public domain. You can do whatever you want with these files.
This software is provided "as is", without any warranty.
Licensing of smali/baksmali
[The "BSD licence"]
Copyright (c) 2010 Ben Gruver (JesusFreke)
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in thedocumentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Licensing of SignApk
Copyright (C) 2007 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.
FOR ADVANCED USERS ONLY -- If you place a file called 'fbpatcher.dev' next to the FBP100+ jar file, containing the following text: 'I want my intern settings menu!', internal settings will be enabled in the Facebook app.
Free of Facebook code.
WHAT'S NEW
Version 2.9, 07-21-2016
● Support for latest versions (web view messaging only)
Version 2.8, 07-06-2016
● Fixed crashing new message option (mobile site fallback)
● Patchability check (does not proceed if Messenger code is missing)
Version 2.7, 06-25-2016
● Support for message requests
Version 2.6, 06-17-2016
● Fixed new message option for 83.0.0.0.39
Version 2.5, 06-16-2016
● OS native look and feel with support for high DPI displays
● Sticker search feature
● Fixed new soccer game
● Removed crashing options (mute thread & payment)
Version 2.4, 06-08-2016
● Same as 2.3 but has a GUI
● Reduced size (425KB)
Version 2.3, 06-04-2016
● Support for latest versions (tested up to 81.0.0.0.49 alpha)
● Reduced size thanks to proguard
Version 2.2, 06-01-2016
● Support for latest versions (tested up to 81.0.0.0.20 alpha)
● Removed aapt without losing backwards compatibility
Version 2.1, 05-30-2016
● Support for latest versions (tested up to 80.0.0.0.44 alpha)
● Much faster patching (dex files are assembled in memory)
Version 2.0, 05-26-2016
● 'New message' function: tap [<-] button on title bar in thread list
Version 1.9, 05-25-2016
● Support for latest versions (tested up to 80.0.0.0.18 alpha)
● Resource name obfuscation resistance
Version 1.8, 05-21-2016
● Bugfixes for latest stable and beta versions
Version 1.7, 05-21-2016
● Support for latest versions (tested up to 79.0.0.0.52 alpha)
Version 1.6, 05-20-2016
● Support for latest versions (tested up to 79.0.0.0.39 alpha)
● Basketball game re-fix
● Much faster and error-free patching
● APK verification
● Reduced size (removed apktool, wrote own manifest hacking routine)
● Improved cleanup method - requires less free space
Version 1.5, 05-07-2016
● Better logging and error handling
● Other Facebook apps can now be installed
● Backwards compatibility down to V59
Version 1.4, 05-04-2016
● Video sending from gallery
● Inline video playback
● Floating hearts
● Linux aapt permission fix
Version 1.3, 05-01-2016
● Easy starter batch file included for Windows users
● Reduced size
● No more separate 'tools' directory, everything is within 'fbpatcher.jar'
● More readable and structured command line output
● Error codes
Version 1.2, 04-30-2016
● Apktool/smali logging
● Safety cleanup on start
● Support for latest versions (tested up to 76.0.0.0.49 alpha)
● Messenger thread list instead of mobile site
● QuickCam video sending
● Basketball game fix
Version 1.1, 04-27-2016
● Support for latest versions (tested with 73.0.0.18.66 stable and 76.0.0.0.19 alpha)
If you like FBPatcher, you can support its development, or simply click Thanks or share this thread on social media sites.
Instructions
To keep all discussion on this thread I'm coping my reply here as well.
How do I do that?
2. Run the patcher: java -jar fbpatcher.jar <input_apk> <output_apk>
Click to expand...
Click to collapse
Here is step by step instructions i followed to get it work on windows ( i think linux users knows how to do this simple things )
this guide was written for earlier version of patcher, but @lorantm is providing much easier automated patcher version now (from v1.3+ ) so just follow OP's USAGE GUIDE
still you can go through my guide for some deeper details and reference it wouldn't hurt and you will learn some history of patcher !
1. you need JAVA installed in PC if not install it from here https://java.com/en/download/
2. Download official (Not patched ) apk of latest stable Facebook(for now v76 here ) or as per recommendation of OP according to patcher version.(USE V75+ TO AVOID THE THREAD LIST SCROLL DOWN BUG! )
3. download patcher by @lorantm from OP
4. extract patcher in fbpatcher folder (use extract to fbpatcher/ )
5. put donloaded FB version form 2nd point in this folder and rename it to fb.apk for ease.
6(new). hold Shift and right click on empty space, then select open command prompt here in empty space of your folder that contains fb.apk & fbpatcher.. now No need to copy cmd.exe at that folder...this method will open your system inbuild cmd so skip directly to Point 9
8. now your folder should look like this
{
"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"
}
9. open cmd.exe and write java -jar fbpatcher.jar fb.apk fbpatched.apk (mind on spaces... see below pic for clarity )
10. wait for 5-10 min and let patcher do its job you will get fbpatched.apk as patched file.
Install & enjoy
Tomi_Ohl said:
Nice guide! Only one thing: I think it would be enough to hold Shift and right click on empty space, then select open command prompt here (in step 6).
@lorantm köszönöm szépen, nagyszerű!! (Thanks, it's awesome!)
Working fine with the suggested FB version on Xiaomi Mi3 with Marshmallow
Waiting for the version with that message icon, right now I can't access groups from app if there are no new messages.
Click to expand...
Click to collapse
that's nice suggestion ! actually i forgot about it while writing guide.
How do you patch the apk on a mac?
Smoking Monkey said:
How do you patch the apk on a mac?
Click to expand...
Click to collapse
I never had a Mac, but I think you should do it just like on Windows or Linux. Install Java, open a command line and run it from there.
So when using patched facebook app, when we click on msg icon, msg interface is loaded in mobile web mode inside the fb app itself. But i am using latest fb app, and latest facebook chat enabler , and it do the same thing. What's the benefit of patching ?
Sent from my MI 3W using XDA-Developers mobile app
a.broken.star said:
So when using patched facebook app, when we click on msg icon, msg interface is loaded in mobile web mode inside the fb app itself. But i am using latest fb app, and latest facebook chat enabler , and it do the same thing. What's the benefit of patching ?
Sent from my MI 3W using XDA-Developers mobile app
Click to expand...
Click to collapse
I replied in the other thread.
lorantm said:
I never had a Mac, but I think you should do it just like on Windows or Linux. Install Java, open a command line and run it from there.
Click to expand...
Click to collapse
I don't think .exe files work on mac, so where would i be able to find the mac .dmg equivalent of the cmd.exe file?
Smoking Monkey said:
I don't think .exe files work on mac, so where would i be able to find the mac .dmg equivalent of the cmd.exe file?
Click to expand...
Click to collapse
It's Terminal. Open it, navigate to the directory (with the cd command) where you have extracted the patcher and the official apk. Then run java -jar fbpatcher.jar FB72.apk FB72P.apk.
Smoking Monkey said:
I don't think .exe files work on mac, so where would i be able to find the mac .dmg equivalent of the cmd.exe file?
Click to expand...
Click to collapse
http://www.wikihow.com/Get-to-the-Command-Line-on-a-Mac
personally even i never used Mac so i don't know how to open it in any specific folder (like windows has Shift+right click in empty space of folder ) but you can try to navigate to your folder via cd/ commands ( try to google it )
For anyone doing this on a mac you open up terminal and type cd /
Then drag the fbpatcher folder into terminal and press enter.
Copy and paste java -jar fbpatcher.jar FB72.apk FB72P.apk then press enter again.
Work perfect thanks
I use the latest version Facebook*73.0.0.18.66 APK and it work perfect thanks
Sent from my LG-H631 using XDA-Developers mobile app
:crying::crying::crying::crying:
guys i have problem.. when i try cmd.exe i get error saying it isnt compatible with my windows..
i searched and to fix i do run command scf/scann something like that and after scan it found conflict but it didnt fix it. :crying:
am very bad at command prompt if i go to accessories and use the comand promt there it works , is there a way for me to do it from there or it must have the cmd.exe in folder.?
if not can osme upload it and share please.. or help fix why cmd says its not compatible.? windows tiny7.
raptorddd said:
:crying::crying::crying::crying:
guys i have problem.. when i try cmd.exe i get error saying it isnt compatible with my windows..
i searched and to fix i do run command scf/scann something like that and after scan it found conflict but it didnt fix it. :crying:
am very bad at command prompt if i go to accessories and use the comand promt there it works , is there a way for me to do it from there or it must have the cmd.exe in folder.?
if not can osme upload it and share please.. or help fix why cmd says its not compatible.? windows tiny7.
Click to expand...
Click to collapse
hold Shift and right click on empty space, then select open command prompt here in empty space of your folder that contains FB.apk & fbpatcher..No need to copy cmd.exe at that folder...this method will open your system inbuild cmd
jineshpatel30 said:
hold Shift and right click on empty space, then select open command prompt here in empty space of your folder that contains FB.apk & fbpatcher..No need to copy cmd.exe at that folder...this method will open your system inbuild cmd
Click to expand...
Click to collapse
thanks it worked :highfive:
Hi, I want to ask, there is no call function on this "messenger"?
and when are you going to release the one with working messenger button?
Thanks!!
Guys Plz Share ur Patched APK file I want to use on Android Lollipop
New version!
V1.1 is out! I successfully patched 73.0.0.18.66 and 76.0.0.0.19 alpha with it and they worked perfectly.
The new version of FBPatcher can be downloaded from the first post, I updated the link.
Explanation: a method in com.facebook.messaging.banner.MuteThreadWarningNotification had to be dummied to make it work.
motfis said:
Hi, I want to ask, there is no call function on this "messenger"?
and when are you going to release the one with working messenger button?
Thanks!!
Click to expand...
Click to collapse
You can't make calls. Facebook removed WebrtcIncallActivity from the manifest and its theme from the resources so even if the voip code is still in there, it's not possible. Also, native library fb-webrtc-jni that is needed to make calls was removed. Earlier I tried to add it from Messenger's apk and hack the code to be able to start a call. It was ringing out, but the conversation could not be started because the in-call UI theme was not present and the app crashed immediately.
I plan to add Messenger thread list feature at the weekend or next week but I already wrote that it will not work on all devices.

[TOOL] ADB-Overlay [2.2.2.0 - .Net 6]

Heyho together,
after my P9-Lite and P10-Lite toolkit i thought, it's time to build a more generic version. Here it is, the ADB-Overlay!
The main point of this project is to serve a GUI for ADB. Currently, there is a File-Explorer, Remote-Desktop, Shell interface and APK installer implemented. You can also READ the contacts if your device is rooted and has sqlite3 installed. But a picture tells more as 1000 words... So here is a preview of what you'll get.
{
"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"
}
But anyways, i'm not responsible for any damage done to your device! For example, if you delete some files/folders on root lvl etc.
Component Info
Remote-Desktop:
Left-Click = Touch
Right-Click = Swipe with duration
The keyboard is nearly fully supported, i have written a kind of WPF -> Android key-mapper. So even combos like SHIFT+A-Z, SHIFT+0-9, ALT+A-Z and ALT+0-9 should work. The base for the key-mapping is a 102 keys keyboard with en-GB or de-DE layout. If you have another setup, some keys may on other positions.
The screenshots will be created under "ADB-Overlay\Screenshots\Screenshot.yyyy-MM-dd_HHmmss.(bmp | gif | jpg | png | tiff | wmp)".
-
If the device is booted in the recovery, the Remote-Desktop is only a viewer, because the recoveries doesn't support "input tap x y" nor "input keyevent XXX".
Shell:
The input box supports CTRL-A-Z, so you'll have the ability to send for example CTRL+C to stop a remote process. If you want use Copy & Paste onto the input box, use the Right-Click menu.
Tested OS
Win 7 | 8 | 8.1 | 10 | 11 (32Bit/64Bit in VM-Ware)
Win 7 | 8 | 8.1 | 10 | 11 (64Bit Native)
Tested Devices
Android Emulator some Versions (min. 2.x) in AVD
Android x86
HTC Sensation -/ XE (non-/rooted)
HTC One M9 (non-/rooted)
Huawei P9 Lite (VNS-L21, 22, 23, 31, etc.) (non-/rooted)
Huawei P10 Lite (WAS-LX1A, etc.) (non-/rooted)
Huawei Mate 9 (THX to @Tecalote)
Huawei Mate 10 Lite (THX to @Chisetdel31260)
Huawei P9 (EVA-al10) (THX to @reynard1)
Sony Xperia X (THX to @FoxTheLegend)
Pixel 4 (THX to @squabbi)
Requirements
Android: min. 2.x
Platform: x86/x64 (Windows)
Frameworks: min. .NET 6 / .NET 6 Desktop Runtime x86/x64
(Installed ADB/Fastboot driver)
Download
Mirror: See attachments
Mirror #1: My FTP [USR/PW=ADB-Overlay]
Mirror #2: GoogleDrive
Mirror #3: Dropbox
Mirror #4: Mega
DO NOT MIRROR MY FILES! DO NOT COPY MY THREADS!
Bug-Tracker
If you can't use the SDK-Updater or the Version is 0.0, just close the ADB-Overlay delete the "platform-tools" directory and restart the ADB-Overlay.
If the device won't connect via W-/Lan, check which version of android you are running... the latest version "SP2A.220505.002, May 2022" seems to break "Developer settings -> USB-Debugging -> Debug over W-/Lan"... To get it working anyways, just open a cmd prompt in the "platform-tools" folder, connect your device via USB and execute the following command: "adb tcpip 12345" (or some other port). After that, you should be able to connect your device via W-/Lan.
App Freeze
If the ADB-Overlay freezes during startup or by connecting a rooted device, the solution is to update the su binary. I encountered this problem yesterday on an older device running Android N. After an update to Magisk Canary [build 21005] the problem was solved.
Changelog
DD.MM.YYYY | (A) = Added | (C) = Changed | (D) = Deleted | (F) = Fixed | (R) = Recoded | (U) Updated
----------------------------------------------------------------------------------------------------------------------------------------------------
30.04.2022 [2.2.2.0]
(F) The SDK updater.
27.04.2022 [2.2.1.0]
(F) A freeze which occured on some FTP-Servers which doesn't implement RFC 959 properly.
11.04.2022 [2.2.0.0]
(U) General improvements in terms of speed and connectivity.
(U) The FTP config is now AES-256 encrypted for better security.
29.11.2021 [2.1.0.0]
(U) To .Net 6
(U) General improvements in terms of speed and connectivity.
25.07.2021 [2.0.2.0]
(A) ADB-Sideload
(U) ADB and Fastboot binaries.
(F) Some transfer issues (Binary <-> Socket)
(F) The platform-tools updater.
12.01.2021 [2.0.1.0]
(F) All freezes on the Tree-/ListView.
(A) ColumnHeader sorting on the Explorer and Apk-Manager ListView.
(A) Sort options for all header not only Name, Size, Date and Type.
(C) Sorting happens now in the background (So no more freezes here too.).
.-Older changes-.
12.12.2020 [2.0.0.0 - .Net 5]
Switched to .Net 5.0
(F) FTP-Updater timeout issue
(C) Brotli compression to .Net native
17.09.2020 [1.18.46.0]
(A) sendrecv_v2 for Android 11
(A) Brotli compression for file transfers on Android 11
29.03.2020 [1.17.46.0]
(A) Cut (via Context-Menu and "Ctrl+X")
(A) Copy (by default and via Drag'n'Drop by holding "Ctrl" during drop)
(A) Move (via Drag'n'Drop by holding "Shift" during drop)
(NOTE: Move is now enabled for on-device, device-to-device, local-to-device and device-to-local transfers.)
(C) The copy window, it will now display "Copy" or "Move" depending on the current operation.
16.03.2020 [1.16.46.2]
(F) The updater buttons, now they are also disabled during an download/check.
15.03.2020 [1.16.46.1]
(F) File/Folder interaction with those which contains "\s _ - ' , * & ~ | < > ( ) [ ] { }" in their names.
07.03.2020 [1.16.46.0]
(C) The synchronous IO to fully asynchronous IO.
(A) The Edit-Window, this will temporary download the file and open it locally in an application defined for this file type or with the "OpenAs" dialog.
(C) The UI, buttons which can't be used are now "grayed out".
12.02.2020 [1.15.46.1]
(F) The re-connection bug on the FTP-View. (Which also caused the updater to fail.)
(F) The (2 sec) freezes after copy/delete/tar.
(C) The info bar, added the modify date.
31.01.2020 [1.14.46.0]
(F/A) The timestamps for access, changed, modify.
(C) The "Properties Window", added the mentioned fields and resized the height a bit.
(A) Create File on the FTP-View.
30.12.2019 [1.13.46.0]
(F) The FTP TLS/SSL problem, now all procedures (implicit/explicit) should work without problems. (I tested this the last days with multiple servers, also the proxy's socks4/a|5 should now work with TLS/SSL.)
(U) All 3 explorers, they relay now on an shared generic base explorer which implements most of the features for all 3 views. So it's guaranteed that all views will behave the same.
(U) All 3 explorer views, changed the spacing's and the "edit textbox" (on rename) a bit, so that they look a bit more like the default explorer.
(A) IComparable<T> and IEquatable<T> to all List-/TreeViewItems so you get a pre-sort during item parsing. (I thought it would work a bit nicer, but hey, now it's implemented^^)
(R) Optimized the item (file/folder) parser for both Android & FTP.
18.12.2019 [1.12.46.1]
(F) The broken SDK-Updater, where you saw in the log file a "BindingException".
(F) The "SocketException" on app close. Reason for this was, that i disposed the "DeviceMonitor" after i killed the adb-server, but the monitor tried to check in some cases (10 sec refresh rate) for changes, after the server was already down.
(A) The "remount" option for mounts to the properties window. (You'll get also a little warning, each time you attempt to remount a mount point.)
(C) Resized the properties and the updater windows a bit.
17.12.2019 [1.11.46.0]
(F) The remote desktop for 16-Bit devices.
(R) Root detection
(R) Mount detection (added support for Android 2.x)
(R) The properties view, as mentioned, there is now a more valuable overview.
14.12.2019 [1.10.46.0]
(A) A version banner to the title bar.
(R) Nearly the whole caching logic inside the local ,Android and FTP explorer.
(R) The mount ([Device]) overview, now you'll see all mounts returned from "mount" and the assigned "df" data, if available. (The next build will include a more valuable overview in the PropertiesWindow. Like the mount options etc.)
(R) The remote desktop, i moved the "color correction" inside the pixel-buffer copy process. This will save a lot of time and boost the FPS in my TWRP up to 80++ per sec.. (That was so much, that .Net even couldn't dispose the sockets so fast as i requested a new one... This ended in an waiting queue overflow... So i decided to limit the FPS to 30-40 this is enough to have a clean view.) - Also NOTE: BOOTED IN ANDROID, WILL DECREASE THE FPS TO 2-3 DEPENDING ON THE RESOLUTION OF YOUR DEVICE! THE ONLY SOLUTION FOR THIS IS, START ADB WITH ROOT RIGHTS. (I added a internal switch, which will detect if adb runs as root, if so, i don't relay on the frame-buffer-service of adb. Instead, i use the bare metal (/sys/class/graphics/fb0/) to get the correct buffer values and then i read directly from "/dev/graphics/fb0".) AGAIN, NOTE: THIS WILL NOT RAISE THE FPS UP TO 80++, BUT THE FPS WILL INCREASE UP TO 15-25.
11.12.2019 [1.9.46.1] (HotFix)
(A) The mistakenly removed overwrite protection on item rename. (Android)
(R) The Copy & Delete view, the media-scanner, if activated, will now only run once at the end of an copy or delete action.
(R) Sym-/Directory/File detection, there was in rare cases a wrong detection where a SymDirectory was treated as an SymFile.
(F) The "Create New Textfile" action. (Android)
10.12.2019 [1.9.46.0]
(F) An ArgumentNullException which was raised during "mount" parsing. (On the "device" view.)
(F) The renaming issue, where you got, "The element couldn't be renamed!", if the name hasn't changed.
(A) Windows shortcuts to the TreeView of the Windows explorer. (Even the original one hasn't that feature )
(A) Hiding the ".lnk" extension on any Windows shortcut.
(A) Internal auto updates to the remote explorers (Android/FTP). So you have a kind of "pseudo" FileSystemWatcher.
(A) The re-sorting of the items after an rename action.
(D) Some code duplication. (Saved all together ~12 kb)
(R) Unnecessary refreshes and replaced them with internal cache logic's.
02.12.2019 [1.8.46.0]
(F) An ObjectDisposedException which was sometimes raised after symlink parsing and/or file transfers.
(C) The channeling on the ADBSocket, from an ConcurrentDictionary to an simple array with locks, this increased the transfer speed.
(U) The dlls to the latest versions.
24.07.2019 [1.7.46.0]
(R) The config files, both, the config.xml and the config.ftp.xml got an structure update. The old/current config files will be migrated to the latest version. So there should be no data loss in any way.
(A) A version banner to the Android and FTP view
(C) The adb directory from "ADB-Overlay\adb" to "ADB-Overlay\platform-tools"
(A) The SDK-Updater
(A) Auto-SDK-Update - If activated, this will check once every 24h for an update, but only on startup of the ADB-Overlay. (NO Tasks or something)
Info
The updater will only check "https://dl.google.com/android/repository/repository-11.xml". This XML gets downloaded and parsed, if the "platform-tools" version is newer as the used one, you'll get an popup which offers the download for the latest version.
The Auto-SDK-Update is by default disabled.
28.06.2019 [1.6.46.0]
(F) A memory leak which occurred by removing a device (Android View -> Closing an tab)
(F) A memory leak which occurred by removing a server (FTP View -> Closing an tab)
(R) Improved the directory parsing speed
(A) A progress bar to the copy window (green during transfer and on completion | red on failure or cancellation)
04.06.2019 [1.5.46.0]
(C) The versioning:
1 = Major
5 = Minor
46 = Framework Version (4.6)
0 = Hotfix
(A) A few speed improvements to the Remote-Desktop.
(A) The updater/-menu
(A) Auto-Update - If activated, this will check once every 24h for an update, but only on startup of the ADB-Overlay. (NO Tasks or something)
Info
The updater will only check my FTP for a ".version" file. This gets downloaded and parsed, if the version is newer as the used one, you'll get an popup which offers the download for the latest version. (NO logs and NO telemetry!)
The Auto-Update is by default disabled.
28.05.2019 [0.0.0.5]
(A) The "APK Manager" to the Android -> Tools menu
(A) {<-} & {->} buttons to the addressbar
(A) The "Install" option to the remote explorer -> ListViewItem context menu (only shown if the item is a apk)
(R) Added the missing options to the APK Installer (e.g. Downgrade, Test-Package, etc.)
(R) Optimized the "symlink" parsing
01.05.2019 [0.0.0.4]
(F) An exception which was raised after you tried to open any "Tool" on an disconnected device.
(A) A Battery Monitor to the Android -> Tools menu
29.04.2019 [0.0.0.3]
(A) Remote-Viewer when booted in the recovery
(A) A screenshot format selector (bmp | gif | jpg | png | tiff | wmp) to the Remote-Desktop
(A) A color correction switch to the Remote-Desktop
(A) Links to the German forum post
20.04.2019 [0.0.0.2]
(F) An issue during item renaming - Reason was maybe the switch from .NET 4 to .NET 4.6, seems the UI updates on textboxes are no longer only on focus got/lost, instead they are now after any change.
(A) Contextmenu (Listview) -> New -> Text Document
(A) Replacements for "New Directory", "Group (New)", "Server (New)" to the german language, so you get now after such an action the correct "Neuer Ordner", "Neue Gruppe", "Neuer Server".
(C) The FTP Copy/Delete action, you can now close the control connection and leave only those windows open until they are done. Both, the Copy and Delete action using now their own connection which is no longer bound to the control connection.
(C) Moved the "Keep Alive" checkbox (FTP -> Servermanager -> Account) to FTP -> Servermanager -> Connection
13.04.2019 [0.0.0.1]
Initial release
Great job. my huawei mate 10 lite is recognized. currently my smartphone is on rom original stock rne - l21c432b340 emui 8.0 not rooted. and my PC is a windows 7 64.
Works for my Xperia X - and thanks for your help!
I'm flattered to be in your contacts screenshot I was still using your prototype you had sent to me years ago!
Works very well on my Pixel 4!
squabbi said:
I'm flattered to be in your contacts screenshot I was still using your prototype you had sent to me years ago!
Works very well on my Pixel 4!
Click to expand...
Click to collapse
Hey Bro
long time not seen. Hehe yeah the good old Multi-Explorer ;p - Still using it my self, it's more or less my playground before i implement things in this tool.
If you want and have some spare time we can modify this beauty. I also reworked nearly the whole AndroidCtrl.dll, there you have now solid filestreams, strongly typed FilesystemInfos (Like the one from the .NET fw) and lots of other handy stuff. Like framebuffer access in Android and recovery mode. I also implemented a ADBridge class which is an instanced wrapper for the 2 static ADB classes (binary/socket).
Best Regards,
Sebastian
this is what im looking for a while
Thank you very much
here is some suggestion
1.better ui
2.edit build prop in the realtime
btw my phone is Huawei P9(eva-al10) rooted android 8.0 work very well
k1ll3r8e said:
Hey Bro
long time not seen. Hehe yeah the good old Multi-Explorer ;p - Still using it my self, it's more or less my playground before i implement things in this tool.
If you want and have some spare time we can modify this beauty. I also reworked nearly the whole AndroidCtrl.dll, there you have now solid filestreams, strongly typed FilesystemInfos (Like the one from the .NET fw) and lots of other handy stuff. Like framebuffer access in Android and recovery mode. I also implemented a ADBridge class which is an instanced wrapper for the 2 static ADB classes (binary/socket).
Best Regards,
Sebastian
Click to expand...
Click to collapse
Sounds great! I'm looking to get back into toolkit making later this year, I'm keen to see the improvments to your library! :good:
Great job. we can navigate and copy files efficiently.
Only one thing is missing. Why not keep file timestamp for last access and modifie dates? or let us choose the option to keep it or not.
skyrail01 said:
Great job. we can navigate and copy files efficiently.
Only one thing is missing. Why not keep file timestamp for last access and modifie dates? or let us choose the option to keep it or not.
Click to expand...
Click to collapse
Heyho,
which Android version are you using and on which action (pull/push) does the timestamps get lost?
Normally i preserve the timestamps but on some Android versions the "timestamp" field in the ADB-Protocol is ignored.
Maybe i can set the timestamps on an other way, but therefore i need to know the version.
Regards,
Sebastian
PS:
Some code where i set the timestamps
Upload
Code:
public void Close(DateTime fileCreationTime)
{
if (_ch?.IsConnected ?? false)
{
if (CanWrite)
{
int o = 0, w;
byte[] d = new byte[8];
d.SetUInt32LE((UInt32)SyncCmd.DONE, 0);
d.SetUInt32LE(ToUnixTime(fileCreationTime), 4);
//...
}
_ch.Close();
}
}
Download
Code:
//...
using (FileStream dfs = destination.Open(FileMode.Create, FileAccess.Write))
{
using (AFileStream sfs = OpenRead())
{
sfs.CopyTo(dfs, DMAX, msg, cancellationToken);
ct = sfs.CreationTime;
}
}
//...
if (msg.State == TransferState.Done)
{
destination.CreationTime = ct;
transferEventHandler?.Invoke(Client.ID, new FileTransferEventArgs(Client.ID, msg));
return true;
}
//...
Thank you really great program keep it up
Hey,
I am operating under lineageOS 16 on Galaxy S5 (klte), using adb 1.0.39 on windows 10 64-bits, either via wifi or usb connect.
I check file dates under Windows, in console mode with far manager (M: last write time, C: creation time, A: last access time).
I am using linux command ls -l under adb shell from Windows command line to list files pushed to Android.
When pushing files from Windows to Android, only M is preserved, with a 2 hours offset (ES file explorer tells it is modified date) Maybe daylight issue or bad timezone.
When pulling files from Android, only C is preserved
When I pull back to Windows, files pushed to Android, all original date is lost.
But I am pretty sure we can preserve last access, modified and creation date as I could see Adbexplorer (another project) pull files keeping M and A (adb pull -a).
Hope I give you enough details.
k1ll3r8e said:
Heyho,
which Android version are you using and on which action (pull/push) does the timestamps get lost?
Normally i preserve the timestamps but on some Android versions the "timestamp" field in the ADB-Protocol is ignored.
Maybe i can set the timestamps on an other way, but therefore i need to know the version.
Regards,
Sebastian
PS:
Some code where i set the timestamps
Upload
Code:
public void Close(DateTime fileCreationTime)
{
if (_ch?.IsConnected ?? false)
{
if (CanWrite)
{
int o = 0, w;
byte[] d = new byte[8];
d.SetUInt32LE((UInt32)SyncCmd.DONE, 0);
d.SetUInt32LE(ToUnixTime(fileCreationTime), 4);
//...
}
_ch.Close();
}
}
Download
Code:
//...
using (FileStream dfs = destination.Open(FileMode.Create, FileAccess.Write))
{
using (AFileStream sfs = OpenRead())
{
sfs.CopyTo(dfs, DMAX, msg, cancellationToken);
ct = sfs.CreationTime;
}
}
//...
if (msg.State == TransferState.Done)
{
destination.CreationTime = ct;
transferEventHandler?.Invoke(Client.ID, new FileTransferEventArgs(Client.ID, msg));
return true;
}
//...
Click to expand...
Click to collapse
skyrail01 said:
Hey,
I am operating under lineageOS 16 on Galaxy S5 (klte), using adb 1.0.39 on windows 10 64-bits, either via wifi or usb connect.
I check file dates under Windows, in console mode with far manager (M: last write time, C: creation time, A: last access time).
I am using linux command ls -l under adb shell from Windows command line to list files pushed to Android.
When pushing files from Windows to Android, only M is preserved, with a 2 hours offset (ES file explorer tells it is modified date) Maybe daylight issue or bad timezone.
When pulling files from Android, only C is preserved
When I pull back to Windows, files pushed to Android, all original date is lost.
But I am pretty sure we can preserve last access, modified and creation date as I could see Adbexplorer (another project) pull files keeping M and A (adb pull -a).
Hope I give you enough details.
Click to expand...
Click to collapse
Heyho,
THX for that info, i'll check the "adbd" source which LOS uses, maybe there is the prob. According to "adb pull -a" i'll also have a look at the adb source, because i think they do some "touch" stuff. Because the ADB-Protocol it self only supports creation/last modified time. In the source is a another "struct" for "STA2" (stat 2) command. But i have never seen a adb binary which supports this. (All binaries use the "STAT" command.)
EDIT 1:
Just checked the adb source again, seems they changed it a bit...
(This is the current STAT (v1) header)
Code:
# cmd name STAT or STA2 // 4 bytes
st->st_mode = msg.stat_v1.mode; // 4 bytes
st->st_size = msg.stat_v1.size; // 4 bytes
st->st_ctime = msg.stat_v1.mtime; // 4 bytes
st->st_mtime = msg.stat_v1.mtime; // 4 bytes
My HTC-One M9, Sensation, VM-Ware (Kitkat - Nougat) none of them has a 20 byte header. ALL of them return a 16 byte header.
Code:
CMD // 4 bytes
Mode // 4 bytes
Size // 4 bytes
CTime // 4 bytes
So it seems the protocol is highly inconsistent... I'll check how much time gets lost by calling touch on each file, because, currently i open a sync channel via an smart-socket, transfer the file and read all data provided by the protocol header. This is really fast, but if i have to spin up each time another channel to get a shell for the touch, this will increase the time each copy needs. Because, a shell depending on the version (v1, v2), has a lot checks you need to perform, specially the shell_v2 because it's like a ssh protocol.
EDIT 2:
Just for completeness, i'm pretty sure your device also sends only a 16 byte header for the stat v1 command, because:
(This is a cut of my implemented "Stat(byte[] bytes)" class)
Code:
if (c == (uint)SyncCmd.STA2 && bytes.Length >= 72)
{
ID = SyncCmd.STA2;
Error = bytes.GetUInt32LE(4);
Dev = bytes.GetUInt64LE(8);
INode = bytes.GetUInt64LE(16);
Mode = bytes.GetUInt32LE(24);
NLink = bytes.GetUInt32LE(28);
UID = bytes.GetUInt32LE(32);
GID = bytes.GetUInt32LE(36);
Size = bytes.GetUInt64LE(40);
ATime = bytes.GetInt64LE(48);
MTime = bytes.GetInt64LE(56);
CTime = bytes.GetInt64LE(64);
}
else if (c == (uint)SyncCmd.STAT && bytes.Length == 16)
{
ID = SyncCmd.STAT;
Mode = bytes.GetUInt32LE(4);
Size = bytes.GetUInt32LE(8);
CTime = bytes.GetUInt32LE(12);
}
As you can see, the both structures differ in there field order, if your device would send a 20 byte header, the test (bytes.Length == 16) wouldn't match. And you couldn't download a file.
EDIT 3:
After playing a while with "stat" and "touch" on some Android versions, i decided to rely on those functions. The next build should restore and write the correct timestamps.
EDIT 4:
Well, setting timestamps on the SD-Card doesn't work, also, setting timestamps on the "internal" SD-Card doesn't work either. Seems that it's related to the underlying FS. If i try to set the timestamp on an ext4 partition, it works. So it doesn't make sense to rewrite the push/pull functions because the return of touch for 99% of the time will be "touch: '/sdcard/TWRP/test.pdf': Operation not permitted". So it's simply a time waste during the copy procedure. BUT, i'll implement it at least for the download, so u'll get the correct timestamps on Windows.
EDIT 5:
Added a screenshot of the new "Properties Window" which also proves that the download timestamps are now correct.
(Btw. C doesn't mean created - it means changed)
Code:
stat /sdcard
File: `/sdcard' -> `/storage/self/primary'
Size: 21 Blocks: 0 IO Blocks: 512 symbolic link
Device: 1h/1d Inode: 4432 Links: 1
Access: (777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 1970-01-01 01:00:00.000000000
Modify: 1970-01-01 01:00:00.000000000
Change: 1970-01-01 01:00:00.360063176
Little update about the "creation time". After a bit research i found this post on Stack Exchange, there is explained that the so called "birth time" is stored since ext4 as part of the INode field. But it seems you need a special version of "stat" to read this info, it's called "statx". But so far i could see, Android doesn't support this feature, maybe some kernel does but it seems that it's more the rare case.
Regards,
Sebastian
Thanks for the update!
I was wondering what could be causing a small delay in copying files over, once the progress finishes, the transfer dialog remains frozen for a 1-2 seconds. I'm copying over a photo, so around 2MB.
squabbi said:
Thanks for the update!
I was wondering what could be causing a small delay in copying files over, once the progress finishes, the transfer dialog remains frozen for a 1-2 seconds. I'm copying over a photo, so around 2MB.
Click to expand...
Click to collapse
Heyho ,
yup i still working on it. It seems that the "Task.Delay()" isn't performed inside the Task itself, instead it's executed on the main thread. The reason for the freeze is, that i try to show the last result, otherwise the copy window would close immediately after the last element and you couldn't see if it's transferred or not. So i keep it like windows, wait 1,5-2,5 sec before closing the window.
The delay you might feel extremely is the "Media-Scanner". It runs on the end of each copy/delete action, the reason for this is, that files pushed/copied by adb are not reported to the MTP interface. So you couldn't see those files if you connect your device after such an adb copy via MTP. Also files/folders deleted by adb are also not reported to the MTP interface. So you will see those elements via MTP if you don't perform manually the "Media-Scanner" lookup. - But if you work only with adb for example, you could turn the "Media-Scanner" off. All device based explorers and of course adb will see those files/folders at any times. (But if you need those files/folders for exchange you should keep the "Media-Scanner" on )
EDIT:
This is executed for every file which is copied/pushed/deleted.
Code:
_adb.Device.Manager.ActivityManager.Broadcast("android.intent.action.MEDIA_SCANNER_SCAN_FILE", "-a", string.Concat("-d 'file://", remotePath, "' > /dev/null"));
EDIT 2 (a bit off-topic):
You could also simply use the "Media-Scanner" with my AndroidCtrl.dll. The calls are:
Code:
//"_adb" is a instance of "ADBClient"
_adb.Device.IO.MediaScanner.CreateScanList(string remoteDirectory, MediaScanMode mode);
_adb.Device.IO.MediaScanner.CreateScanList(string remoteDirectory, MediaScanMode mode, CancellationToken cancellationToken);
_adb.Device.IO.MediaScanner.CreateScanList(string remoteDirectory, IList<string> files, MediaScanMode mode, CancellationToken cancellationToken);
_adb.Device.IO.MediaScanner.ScanDirectory(string remotePath, MediaScanMode mode);
_adb.Device.IO.MediaScanner.ScanDirectory(string remotePath, MediaScanMode mode, CancellationToken cancellationToken);
_adb.Device.IO.MediaScanner.ScanDirectory(IEnumerable<string> remotePaths, MediaScanMode mode);
_adb.Device.IO.MediaScanner.ScanDirectory(IEnumerable<string> remotePaths, MediaScanMode mode, CancellationToken cancellationToken);
_adb.Device.IO.MediaScanner.ScanFile(string remotePath, MediaScanMode mode);
_adb.Device.IO.MediaScanner.ScanFile(IEnumerable<string> remotePaths, MediaScanMode mode);
_adb.Device.IO.MediaScanner.ScanFile(IEnumerable<string> remotePaths, MediaScanMode mode, CancellationToken cancellationToken);
_adb.Device.IO.MediaScanner.ScanObject(ITransferMessage message, MediaScanMode mode);
EDIT 3:
Found the bad boy, seems "Task.Delay()" only works when used in "async" context. Now the "freeze" is gone, you can move the window until it vanishes. So, in the next update those "freezes" are gone.
---
Little Update:
@squabbi
The next update includes a little editor as suggested by @reynard1. A screenshot can be found as attachment.
Regards,
Sebastian
k1ll3r8e said:
**snip**
EDIT 3:
Found the bad boy, seems "Task.Delay()" only works when used in "async" context. Now the "freeze" is gone, you can move the window until it vanishes. So, in the next update those "freezes" are gone.
---
Little Update:
@squabbi
The next update includes a little editor as suggested by @reynard1. A screenshot can be found as attachment.
Regards,
Sebastian
Click to expand...
Click to collapse
Woohoo! Thanks for digging into it! I'm glad you found the culprit haha.
Looking forward to that editor feature! Do you know if it's possible to integrate with Windows Explorer? It's probably a little harder, but something like how WinSCP can drag files from the remote to a local Explorer window.
If that's a little difficult, would this be possible to implement? If I drag and drop a folder/file onto the local pane, it will change directory (and highlight the file if a file was dragged onto the local pane). Just to make it easier to work with folders I have already open.
Still using Windows 7?
squabbi said:
Woohoo! Thanks for digging into it! I'm glad you found the culprit haha.
Looking forward to that editor feature! Do you know if it's possible to integrate with Windows Explorer? It's probably a little harder, but something like how WinSCP can drag files from the remote to a local Explorer window.
If that's a little difficult, would this be possible to implement? If I drag and drop a folder/file onto the local pane, it will change directory (and highlight the file if a file was dragged onto the local pane). Just to make it easier to work with folders I have already open.
Still using Windows 7?
Click to expand...
Click to collapse
Heyho
Yes its definatly possible, we need to use the so called "VirtualFileDataObject". I tried to implement it some time ago, but doesn't worked as expected. But i'll give it another try.
-
Yup, i still use Win 7 as my main system, but i have some VMs running, like my Debian server which serves the documentation and some test sites for my php projects, a few Android x86 Versions and of course a legit Win10 installation to test If everything works.
*Never change a running system! - Currently my main hdd has a uptime of 2689 days with 216 restarts, i think that tells a lot *
---
Little Update:
As the screenshot shows, the editor is working fine so far. (Added also a few more controls.) The only problem i still have is, that if ADB doesn't run as root you can't edit for example the "build.prop". Because ADB can't write the file directly back, so i need to build a kind of "tmp" file. The next problem will be, that you (the user) have to remount the mount point, before you start editing those "root" and "write protected" files. There is also a problem with "binary" files, because the "RichTextBox" screws up when it gets "binary to ASCII/UTF8" transformed data, which ends in an app freeze... So i have to check on some way if the stream contains really text-data, the file extension doesn't help here much because, you know, linux uses also a lot of txt files without any extension.
Update 2:
Just got the "binary" files running... With a super BIG drawback, 248 kb (4069 rows) text results in 269,364 mb memory utilization by the "RichTextBox". - The prob here is, that the ADB filestream doesn't support seek, so i need to load the whole doc in one, which is quiet to much for the "RichTextBox"...
Update 3:
Soo, i wrote a kind of paging for the "RichTextBox" which works so far really nice, at least when it comes to the memory (even during scrolling, with free running wheel, only 15 - 27 mb increase), there is now a fixed amount of rows (40) which will be shown, all other rows are hidden from the "RichTextBox". This opens a few new issues^^ - Currently there is no selection possible which goes beyond the 40 rows. Also insert and delete are a little challenge because, i need to "overwrite" the default behavior with the some "PreviewKeyDown/etc." events... - Looks all a bit hacky, but lets see if it works in the end.
Update 4:
Well, the "RichTextBox" is out of the race^^ - It triggers events more or less random instead when you expect it, it removes blank lines (for example you have 3x "\n", this gets wrapped to 1x "\n") and the best, you remove "\r" during stream reading and the RTB adds it again, also random (some paragraphs get an "\r" some not). Editing text in a solid way without losing something isn't possible with this thing... So i'll try the "TextBox".
Last Update before release:
So, after testing the "RichTextBox" and "TextBox" i ask myself why those controls are there^^. Both can't edit text with more than a few hundert lines, the "TextBox" is at least much better as the "RichTextBox" but it also screws up when i comes to more as 250 kb text. So the "Editor" will be one of your installed applications. I add a little tool window, which offers the temporary download to the windows temp folder, after that i launch the windows "OpenAs" dialog that you can choose the editor you want. Also, i'll attach a "FileSystemWatcher" to the file that the upload automatically happens when you press save in your editor.
Little Info:
It take a few more days for the "edit" update, because i started also to implement the TAP pattern, this increased for example the download speed by factor 6. But to implement it the right way, i have to rewrite a lot of code in the AndroidCtrl.dll and AndroidCtrlUI.dll.
Regards,
Sebastian
k1ll3r8e said:
Heyho
Yes its definatly possible, we need to use the so called "VirtualFileDataObject". I tried to implement it some time ago, but doesn't worked as expected. But i'll give it another try.
-
Yup, i still use Win 7 as my main system, but i have some VMs running, like my Debian server which serves the documentation and some test sites for my php projects, a few Android x86 Versions and of course a legit Win10 installation to test If everything works.
*Never change a running system! - Currently my main hdd has a uptime of 2689 days with 216 restarts, i think that tells a lot *
** snip **
Click to expand...
Click to collapse
That'll be great to see haha, and that does make sense keeping your system as is, if it works, it works.
Thanks for your hard work in checking out what's best for the new edit function. Maybe there's a library out there that can implement a text viewer better? I'm not familiar with WPF libraries, or how many there are.
squabbi said:
That'll be great to see haha, and that does make sense keeping your system as is, if it works, it works.
Thanks for your hard work in checking out what's best for the new edit function. Maybe there's a library out there that can implement a text viewer better? I'm not familiar with WPF libraries, or how many there are.
Click to expand...
Click to collapse
Heyho,
i have had a look on Avalon Texteditor but on StackOverflow is also a discussion about how to open a file bigger than 20 mb. It seems WPF is not that great for such things. I found also another one, written by a lonely dev like me , but it's not maintained since 7 years. So the best way might be, open a installed App which is well designed for that purpose.
A bit off-topic
I nearly finished the TAP implementation for the AndroidCtrl.dll, so far it brought a great speed increase. Also, it consumes less CPU time, for example the remote desktop uses only 3-7% on an Intel I5 with 32 GB memory (but up to 36% on an single-core Intel Pentium M with 1,5 Ghz and 1 GB memory - my old well working Laptop, also with Win7 ). So you might be happy to see all the new "real async" overloads in the lib. (I implemented all from scratch, so there is NO Task.Run() or Task.StartNew() in those functions.)
Edit:
Soo, after a few horrible days, the TAP pattern is now fully integrated! But there is still a little issue with the Remote-Desktop recovery viewer. It seems that everything got a speed boost except the recovery viewer, the viewer is currently nearly 4x slower as before... After i fixed this last problem, i'll release the new asynchronous version.
Regards,
Sebastian

Categories

Resources