ADB + Visual Basic Net Project! - Android General

Hello Friends!
I am developing an application that makes use of adb.exe, with this code I managed to read the model...
Code:
Dim model As New ProcessStartInfo()
model.UseShellExecute = False
model.FileName = "adb.exe"
model.Arguments = "shell getprop ro.product.model"
model.CreateNoWindow = True
model.RedirectStandardOutput = True
Dim adb As New Process()
adb.StartInfo = model
adb.Start()
Dim string_out As StreamReader = adb.StandardOutput()
ListBox1.Items.Add("Model: " & string_out.ReadToEnd())
ListBox1.TopIndex = ListBox1.Items.Count - 1
string_out.Close()
adb.Close()
My problem is I want to detect before if the phone is connected or not, for example, Phone connected!
This code returns me Model: GT-B5510L, GT-B5330L, GT-I9300, etc... but if I disconnect instead of telling me that is not connected, it returns me Model:
Someone guide me?

Faq88 said:
Hello Friends!
I am developing an application that makes use of adb.exe, with this code I managed to read the model...
Code:
Dim model As New ProcessStartInfo()
model.UseShellExecute = False
model.FileName = "adb.exe"
model.Arguments = "shell getprop ro.product.model"
model.CreateNoWindow = True
model.RedirectStandardOutput = True
Dim adb As New Process()
adb.StartInfo = model
adb.Start()
Dim string_out As StreamReader = adb.StandardOutput()
ListBox1.Items.Add("Model: " & string_out.ReadToEnd())
ListBox1.TopIndex = ListBox1.Items.Count - 1
string_out.Close()
adb.Close()
My problem is I want to detect before if the phone is connected or not, for example, Phone connected!
This code returns me Model: GT-B5510L, GT-B5330L, GT-I9300, etc... but if I disconnect instead of telling me that is not connected, it returns me Model:
Someone guide me?
Click to expand...
Click to collapse
I'm also beginner of these type of program. If you find something, please share!
Thanks,:good:

here you can check and make any changes for you adb app.
https://github.com/kidkanjas/ADBGUIV3

Related

[GUIDE] UK "3" USB Modem ZTE MF110/112 Working on ZT-180!

hey guys n gals, iv been reg'd a few days now n thought id make my first post a worth while one
Alot of the credit though must go to Christian Buchner for his initial guide of getting a ZTE usb modem working with vodafone over in Germany.
NOTE: BASED ON ZT-180 SLATE 0929 FIRMWARE (rooted)
To get your ZTE modem working you must be able to use adb confidently!
ok first things first, as Christian pointed out in his guide, if the Flash drive side of the modem is enabled, your slate wont recognise it, so our first job is to disable it.
*Nix Users - Im assuming you have a good knowledge of AT commands already and how to use them so just run
Code:
AT+ZCDRUN=8
Windows Users See Here hxxp://3g-modem.wetpaint.com/page/executing+AT-commands+under+Windows
and execute the above AT command
Right, so now our slate recognises our Modem, now lets get this rocking and get connected.
You will need to Pull the following files from your slate
note: some files may not exist so you will have to create them
/system/etc/ppp/peers/cdma
/system/etc/ppp/peers/cdma_h
/system/etc/ppp/peers/cdma~
/system/etc/ppp/options-3g
/system/etc/ppp/chat-3g-connect
/system/etc/ppp/chat-3g-disconnect
/system/etc/ppp/pap-secrets
/system/etc/ppp/chap-secrets
Now heres what goes in them...
/system/etc/ppp/peers/cdma
Code:
file /system/etc/ppp/options-3g
connect '/system/xbin/chat -v -f /system/etc/ppp/chat-3g-connect'
disconnect '/system/xbin/chat -v -f /system/etc/ppp/chat-3g-disconnect'
user three
/system/etc/ppp/peers/cdma_h
Code:
file /system/etc/ppp/options-3g
connect '/system/xbin/chat -v -f /system/etc/ppp/chat-3g-connect'
disconnect '/system/xbin/chat -v -f /system/etc/ppp/chat-3g-disconnect'
user three
/system/etc/ppp/peers/cdma~
Code:
file /system/etc/ppp/options-3g
connect '/system/xbin/chat -v -f /system/etc/ppp/chat-3g-connect'
disconnect '/system/xbin/chat -v -f /system/etc/ppp/chat-3g-disconnect'
user three
/system/etc/ppp/options-3g
Code:
/dev/ttyUSB3
921600
nolock
crtscts
modem
passive
novj
defaultroute
noipdefault
usepeerdns
noauth
hide-password
debug
nodetach
ipcp-accept-local
ipcp-accept-remote
/system/etc/ppp/chat-3g-connect
Code:
ABORT "BUSY"
ABORT "NO CARRIER"
ABORT "VOICE"
ABORT "NO DIALTONE"
ABORT "NO DIAL TONE"
ABORT "NO ANSWER"
ABORT "DELAYED"
ABORT "ERROR"
REPORT CONNECT
TIMEOUT 10
"" AT
OK AT+CGDCONT=1,"IP","3internet"
OK ATDT*99#
TIMEOUT 20
CONNECT ""
/system/etc/ppp/chat-3g-disconnect
Code:
ABORT "BUSY"
ABORT "ERROR"
ABORT "NO DIALTONE"
SAY "\nSending break to the modem\n"
"" "\K"
"" "\K"
"" "\K"
"" "\d\d+++\d\dATH"
SAY "\nPDP context detached\n"
/system/etc/ppp/pap-secrets
Code:
# client server secret IP addresses
three * three
/system/etc/ppp/chap-secrets
Code:
# client server secret IP addresses
three * three
Now Push all the files back into your slate and reboot.
Once you plug your modem in you will notice it show signal strength, however sometimes it requires you to set an APN up manually, but try a hard reset first if that fails, this is how to do it...
Settings > Wireless & Networks > Mobile Networks > Access Point Names
Name : Anything
APN : 3internet
Username : three
Password : three
Authentication Type : PAP or CHAP
and thats really all there is to it!
nitr0genics said:
hey guys n gals, iv been reg'd a few days now n thought id make my first post a worth while one
Hello !!! I received 180 ZT 1030 and have upgraded the firmware. Now I want to use ZTE 3G modem mf100 follow your instructions but still not on the internet. I live in Russia and the Beeline network using WCDMA. Looking forward to your help. Excuse my English . Thanks !!!
Click to expand...
Click to collapse
Hi nitr0genics,
I tried this with Frojo and it works perfect . Thank you for this also to all other experts.
(google translate, hope you understand )
Hi people
I read the surfstick from german provider 1und1 (ZTE MF110) to run in the ZT-180. Do any of you can experience the driver has to extract? i will use the stick in my gome flytouch2
thx
working on android
hello, does anyone know if this means that we can use the MF110 on any android device with froyo??
thanks
”You will need to Pull the following files from your slate
note: some files may not exist so you will have to create them
/system/etc/ppp/peers/cdma
/system/etc/ppp/peers/cdma_h
/system/etc/ppp/peers/cdma~
/system/etc/ppp/options-3g
/system/etc/ppp/chat-3g-connect
/system/etc/ppp/chat-3g-disconnect
/system/etc/ppp/pap-secrets
/system/etc/ppp/chap-secrets”
How can i make these files, because if iuse notepad those are no more executabiles ?

[Q] execute “su” failed in my fully rooted Android device

while i add this line to my code
Process process = Runtime.getRuntime().exec("su -c");
or
Process process = Runtime.getRuntime().exec("su");
trying to run the"su" command,
process.exitValue() returns 1 which means fail.
This happens to my one Android device while my the other rooted android device works perfectly with this command. (process.exitValue() returns 0)
Can anyone teach me how to trace the error or how to fix it?
I am confused with this error while my two devices are almost in the same condition.
Thanks for your reply in advance.

Could someone please post this bug report to the correct thread for me?

Hi, I joined up to post a quick bug report but I don't have the right permissions and I don't have the time to hunt around for 10 worthwhile posts to make. If someone with the right permissions sees this could you be so kind as to copy and paste it to where it belongs? I'd already typed this out as an edit, but it seems there was an error with the previous post.
Thanks!
Thread: http://forum.xda-developers.com/showthread.php?t=1899865
Bug report!
I'll keep this short because I already typed up a pretty detailed error report once and lost it.
Behaviour: Oblytile creates an invalid VBScript with certain program strings:
Error: When the script is run the following error results;
Script: Launcher.vbs
Line: 4
Char: 12
Error: Expected end of statement
Code: 800A0401
Source: Microsoft VBScript compilation error
The program string I'm trying to launch is;
C:\Program Files (x86)\TriDef 3D\TriDef\TriDefIgnition\TriDefIgnition.exe
This is the script that Oblytile creates;
Code:
On Error Resume Next
Set objShell = CreateObject("Wscript.Shell")
strApp = ""C:\Program Files (x86)\TriDef 3D\TriDef\TriDefIgnition\TriDefIgnition.exe""
arrPath = Split(strApp, "\")
For i = 0 to Ubound(arrPath) - 1
strAppPath = strAppPath & arrPath(i) & "\"
Next
objShell.CurrentDirectory = strAppPath
objShell.Run """"C:\Program Files (x86)\TriDef 3D\TriDef\TriDefIgnition\TriDefIgnition.exe"""" & ""
If Err.Number <> 0 Then
If InStr(1, strApp, "/") > 0 then
Else
If InStr(1, strApp, "www.") > 0 then
Else
MsgBox strApp & " not found", 16, "OblyTile"
End If
End If
Err.Clear
End If
If I modify the script like so, I can get it to run; This script contains a command line argument that the other doesn't, but that's not part of the solution.
Code:
On Error Resume Next
Set objShell = CreateObject("Wscript.Shell")
strApp = "C:\Program Files (x86)\TriDef 3D\TriDef\TriDefIgnition\TriDefIgnition.exe"
arrPath = Split(strApp, "\")
For i = 0 to Ubound(arrPath) - 1
strAppPath = strAppPath & arrPath(i) & "\"
Next
objShell.CurrentDirectory = strAppPath
objShell.Run """C:\Program Files (x86)\TriDef 3D\TriDef\TriDefIgnition\TriDefIgnition.exe""" & "-a ""Borderlands 2"""
If Err.Number <> 0 Then
If InStr(1, strApp, "/") > 0 then
Else
If InStr(1, strApp, "www.") > 0 then
Else
MsgBox strApp & " not found", 16, "OblyTile"
End If
End If
Err.Clear
End If
Originally I thought that attempting to create a tile with a program string already containing its own quotation marks was causing the problem, but creating the same tile without quotes results in the same error. Not sure why it's getting its formatting wrong in this case since I can't see the source, but it should be a simple enough fix for the next version.
Thanks for reposting this if someone does!
Bonesplitter said:
Originally I thought that attempting to create a tile with a program string already containing its own quotation marks was causing the problem, but creating the same tile without quotes results in the same error. Not sure why it's getting its formatting wrong in this case since I can't see the source, but it should be a simple enough fix for the next version.
Thanks for reposting this if someone does!
Click to expand...
Click to collapse
Hello
Thanks you for the feedback! :good:
I'll fix this on the next version.
Argony

[HOW TO] Make your own Android Toolkit for Windows in C# - Make it to your liking!

[HOW TO] Make your own Android Toolkit for Windows using C#​
In this tutorial it will show you how to use Windows C# to create your very own toolkit for use of simple ADB commands.
Such as:
- Rebooting your Device.
- Rebooting to Recovery/CWM or Bootloader.
- Installing APK's directly to your device.
- Installing general files to the SDCARD
- Pushing and Pulling files
Or if you look into it enough you can Implement such features as:
- Rooting your Device.
- Unlocking/Locking Bootloader.
- File Permissions.
( These won't Be covered in this Tutorial, as they require much more time, especially Rooting. )
Knowledge required​
- A set up Visual C# Studio ready to use on your PC. It can be downloaded here : http://www.microsoft.com/visualstudio/eng/downloads
- General knowledge about C# such as using buttons, text boxes and the actual studio.
Getting Started​
So once you have set up your Visual C# studio, create a windows Form application and mess around with the user interface a little if you like to make it to your taste. :highfive:
So here is a picture of my preview:
I have applied a few different ADB tasks buttons as you can see, Including APK install using a Textbox to store your chose directory of the selected file.( As well as a few colour and form name changes to make it more appealing )
{
"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"
}
Writing the ADB commands to the chosen Buttons in your application.​
Now we want to click on the ADB reboot button until it changes to the code layout as such...
Now we have this layout we want to add the namespaces :
using System.IO;
using System.Diagnostics;
These will allow use for CMD and Process features.
Adding ADB commands to the Buttons​
How you have your ADB reboot button code ready to write to.
Use this function: and insert it in between the two Curly brackets
{
var process = Process.Start("CMD.exe", "/c adb reboot");
process.WaitForExit();
}
[/B]
Such as:
MessageBox.Show("Device is Now Rebooting..");
The line uses CMD.exe as the process which will run it as an application and use the /c (command) to execute "adb reboot".
Which will reboot the connected device as long as it's android..
So once you have gone through using the correct ADB commands your application code will look like this..
The ADB wont work yet when running a debug version, so don't try and execute any commands yet.. The adb.exe and a couple of other files need to be stored in the same folder as your toolkit as a resource for ADB to run off of.
Using Textboxes and OpenFileDialog to Install .APK files.​
So once you have clicked the two buttons and textbox.
Setting you up ready to code it will look like this:
ADDING CODE
Assuming you have added OpenFileDialog to your Form Design!
We can now add code to the 2 buttons and text box.
It will look like this after adding the following to segments of code.
Add this to Open APK button:
openFileDialog1.InitialDirectory = @"C:\";
openFileDialog1.Title = "Select your APK..";
openFileDialog1.FileName = "Choose File..";
openFileDialog1.CheckFileExists = true;
openFileDialog1.CheckPathExists = true;
openFileDialog1.Filter = " .APK|*.apk";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = openFileDialog1.FileName;
}​
And add this to Install APK file button:
var process = Process.Start("CMD.exe", "/c adb install " + textBox1.Text);
process.WaitForExit();
MessageBox.Show(".APK is Installed", "", MessageBoxButtons.OK, MessageBoxIcon.Information);​
Now' that is almost it!
Once you have saved and Built a release version of the tool.
Put the .exe from release of the saved directory into a folder ALONG with ADB.exe, ADBWinAPI.DLL and ADBWINUSBAPI.DLL
These ADB files a part of the Android platform tools from the SDK manager. You should already have these if you want to do this process
- If not just google them or download the SDK manager and find them.
Now That's it!
I think I have covered most parts if you want to write your own processes for ADB to execute feel free to do so..
I thought it maybe nice for people who liking personalizing their devices to also personalize toolkits for themselves also!
Thanks and Enjoy if you have any Issues or problems feel free to ask!
Enjoy, QuantumCipher
You can keep upto date on anything I'm doing via Facebook http://www.facebook.com/Quantumcipher
or Youtube https://www.youtube.com/user/QuantumCipher
Thanks for the feedback everyone (Y) ....
Not sure if everyone has no idea what C# is or Just like using developer stuff..
Thanks....
Thanks Man.. i was looking for the same... Can you give me tutorials for rooting and other aspects... Im wating for you....
Also, you could show them how to integrate my AndroidLib .NET library into it to handle all of the adb stuff
Nice!! Reserved below Also!! I don't have experience with C# but I can learn by mistakes!
Very nice tutorial!
As long it is a nexus device the rooting and flash cwm thing is the same thing except you're using fastboot commands.
kind regards
How can I get output text from cmd.exe? For example, if I have another textbox, and I want to display text. Text can be
Waiting for device ......(in case device not found)
Adb server start......depend on cmd.exe output.
Sent from my Spirit S using xda premium
regaw_leinad said:
Also, you could show them how to integrate my AndroidLib .NET library into it to handle all of the adb stuff
Click to expand...
Click to collapse
+1 on that, it's the shortest way and it was the reason behind Droid Manger existence, thus this tutorial shows what goes inside your lib and it's useful for those who are learning C# for the first time, or never interacted with a process in their app :good:
OP keep up the good work
@menglim:
To get out put from a process, here is an example:
Code:
Process process = new System.Diagnostics.Process();
ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.UseShellExecute = false;
startInfo.FileName = "cmd.exe";
process = Process.Start(startInfo);
process.StandardInput.WriteLine(Command_You_Want_To_Give_To_Your_Process);
outputTextBox.Text = process.StandardOutput.ReadToEnd();
Hope this helps
DeepUnknown said:
+1 on that, it's the shortest way and it was the reason behind Droid Manger existence, thus this tutorial shows what goes inside your lib and it's useful for those who are learning C# for the first time, or never interacted with a process in their app :good:
OP keep up the good work
@menglim:
To get out put from a process, here is an example:
Code:
Process process = new System.Diagnostics.Process();
ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.UseShellExecute = false;
startInfo.FileName = "cmd.exe";
process = Process.Start(startInfo);
process.StandardInput.WriteLine(Command_You_Want_To_Give_To_Your_Process);
outputTextBox.Text = process.StandardOutput.ReadToEnd();
Hope this helps
Click to expand...
Click to collapse
yes, it works but there is cmd.exe window pop up....after I close this window, then I can get the output. it is not in real time...thanks
DeepUnknown said:
+1 on that, it's the shortest way and it was the reason behind Droid Manger existence, thus this tutorial shows what goes inside your lib and it's useful for those who are learning C# for the first time, or never interacted with a process in their app :good:
OP keep up the good work
@menglim:
To get out put from a process, here is an example:
Code:
Process process = new System.Diagnostics.Process();
ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.UseShellExecute = false;
startInfo.FileName = "cmd.exe";
process = Process.Start(startInfo);
process.StandardInput.WriteLine(Command_You_Want_To_Give_To_Your_Process);
outputTextBox.Text = process.StandardOutput.ReadToEnd();
Hope this helps
Click to expand...
Click to collapse
Thanks for sharing this code!
Is it possible for the output to show as it appears on cmd?
Thanks
Saw this last week, never programmed with C# but thought what the hell i have already done C++ at uni, some java for making an android app
so i downloaded VS2012 opened up google and went nuts, i now have a toolkit so far, downloads the sdk, extracts the sdk ( yea i know i could just pack the adb .dll's and .exe but while learning the language i might as well learn other stuff.) and i have backup/restore options for /sdcard/ and /dcim/ folders and a folder picker for backing up, contacts backup/restore ( looking to create something that will export it as a CSV or something)
so a big thanks for shedding some light on where to get started on this, now i cant stop and want to make a toolkit will loads of features lol :victory:
0lzi said:
Saw this last week, never programmed with C# but thought what the hell i have already done C++ at uni, some java for making an android app
so i downloaded VS2012 opened up google and went nuts, i now have a toolkit so far, downloads the sdk, extracts the sdk ( yea i know i could just pack the adb .dll's and .exe but while learning the language i might as well learn other stuff.) and i have backup/restore options for /sdcard/ and /dcim/ folders and a folder picker for backing up, contacts backup/restore ( looking to create something that will export it as a CSV or something)
so a big thanks for shedding some light on where to get started on this, now i cant stop and want to make a toolkit will loads of features lol :victory:
Click to expand...
Click to collapse
Thanks very much for the kind remarks everybody, it's extremely nice to know that this tutorial has helped you get into C# and this exact comment you made is what is going to get me back into this scene :good:
I will start looking into rooting devices and how I can incorporate them into ADB programs and maybe other things.
DeepUnknown said:
+1 on that, it's the shortest way and it was the reason behind Droid Manger existence, thus this tutorial shows what goes inside your lib and it's useful for those who are learning C# for the first time, or never interacted with a process in their app :good:
OP keep up the good work
@menglim:
To get out put from a process, here is an example:
Code:
Process process = new System.Diagnostics.Process();
ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.UseShellExecute = false;
startInfo.FileName = "cmd.exe";
process = Process.Start(startInfo);
process.StandardInput.WriteLine(Command_You_Want_To_Give_To_Your_Process);
outputTextBox.Text = process.StandardOutput.ReadToEnd();
Hope this helps
Click to expand...
Click to collapse
Hey all together,
1st THX for this great thread!
-
I have some problems to get the "fastboot" output in my c# programm...
i tired it with adb and some other cmd tools all give me an output but fastboot not
Here my cmd launcher:
//Launch silent CMD
private string run_silent_cmd(string args, bool w = true, bool o = true)
{
string request = "";
Process process = new System.Diagnostics.Process();
ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.UseShellExecute = false;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/Q/C" + args;
process = Process.Start(startInfo);
if (o)
{
request = process.StandardOutput.ReadToEnd();
}
if (w)
{
process.WaitForExit();
}
return request;
}
can some1 gimme a kick in the right direction?
Regards,
Sebastian
k1ll3r8e said:
Hey all together,
1st THX for this great thread!
-
I have some problems to get the "fastboot" output in my c# programm...
i tired it with adb and some other cmd tools all give me an output but fastboot not
Here my cmd launcher:
//Launch silent CMD
private string run_silent_cmd(string args, bool w = true, bool o = true)
{
string request = "";
Process process = new System.Diagnostics.Process();
ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.UseShellExecute = false;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/Q/C" + args;
process = Process.Start(startInfo);
if (o)
{
request = process.StandardOutput.ReadToEnd();
}
if (w)
{
process.WaitForExit();
}
return request;
}
can some1 gimme a kick in the right direction?
Regards,
Sebastian
Click to expand...
Click to collapse
Have you added the Fastboot.exe to your resources - for the program your making?
QuantumCipher said:
Have you added the Fastboot.exe to your resources - for the program your making?
Click to expand...
Click to collapse
Nope, its just in an subfolder so that the user can upgrade the version if a new 1 comes out
i call the function like run_silent_cmd(KIT + "adb\\fastboot.exe some commands")
@k1ll3r8e
k1ll3r8e said:
Hey all together,
1st THX for this great thread!
-
I have some problems to get the "fastboot" output in my c# programm...
i tired it with adb and some other cmd tools all give me an output but fastboot not
Here my cmd launcher:
//Launch silent CMD
private string run_silent_cmd(string args, bool w = true, bool o = true)
{
string request = "";
Process process = new System.Diagnostics.Process();
ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.UseShellExecute = false;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/Q/C" + args;
process = Process.Start(startInfo);
if (o)
{
request = process.StandardOutput.ReadToEnd();
}
if (w)
{
process.WaitForExit();
}
return request;
}
can some1 gimme a kick in the right direction?
Regards,
Sebastian
Click to expand...
Click to collapse
Your variable "args" should include the path for Fastboot.exe or your code should be like this (I'm using an example path in this example, you must replace it with your own path):
startInfo.Arguments = "/Q/C " + @"C:\AdbTools\fastboo.exe " + args;
OR
startInfo.Arguments = String.Join(" ", "/Q/C", Path.Combine("C:","AdbTools","fastboot.exe"), args);
(The first parameter passed in String.Join refers to separator string)
-------------------------------------------------------
@menglim
menglim said:
yes, it works but there is cmd.exe window pop up....after I close this window, then I can get the output. it is not in real time...thanks
Click to expand...
Click to collapse
try this, enter it after you define ProcessStartInfo (let's say you named it just like in the code snippet I gave)
startInfo.CreateNoWindow = true;
now window should disappear.
if not, remove this line and keep the one I gave you in this comment: startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
-------------------------------------------------------
@squabbi
squabbi said:
Thanks for sharing this code!
Is it possible for the output to show as it appears on cmd?
Thanks
Click to expand...
Click to collapse
it's possible but a bit tricky, you can start by making the "Label" / "TextBlock" / "TextBox" or whatever UIElement you are using and set it's background to black and it's foreground to white, then choose "Console" font family, this should get you "Close enough" to the same output style
Note for anyone passing by this page:
When dealing with Directories in C#, ALWAYS use this code snippet, I will explain why at the end of this comment:
Path.Combine("Root Dir","SubDir1","SubDir2","File_You_Want_To_Use");
Where: Root Dir could be any logical partition you have on your HDD or the root dir of your application.
in my case in Droid Manager I have an internal variable (called: ExecutablePath) that saves the path of Droid Manager after installation, so in my case when I want to call an Init.d script example I use the following code snippet:
Path.Combine(ExecutablePath,"Initd_Scripts", "File_Name");
When wanting to add multiple strings together use this following code snippet:
String.Join(Separator String, params string Arguments);
Those ensure the best result, by that I mean be sure system will read them they way they are intended to be read, if you use "+" or "\\" or "@" there might be some misunderstanding by the system which happened to me when I started learning programming 7 years ago.
Good Luck
DeepUnknown said:
@k1ll3r8e
Your variable "args" should include the path for Fastboot.exe or your code should be like this (I'm using an example path in this example, you must replace it with your own path):
startInfo.Arguments = "/Q/C " + @"C:\AdbTools\fastboo.exe " + args;
OR
startInfo.Arguments = String.Join(" ", "/Q/C", Path.Combine("C:","AdbTools","fastboot.exe"), args);
Click to expand...
Click to collapse
Thx for the info
but... "Path.Combine" tells me only 2 strings can be combined so its useless for me coz i get the path via "Application.StartupPath" and i have 2 subfolder this means i have 3 strings to combine^^
thats why i set some vars in my form...
//KIT Vars
private static string KIT = Application.StartupPath + "\\";
private static string ADB = KIT + "adb\\adb.exe";
private static string FBT = KIT + "adb\\fastboot.exe";
also fastboot will not output anything
i googled a bit and found some threads... in this threads they say fastboot dun use the "flush" command (!?) this will mean the output is not grab able...
i think they are right^^ coz adb or cmd it self will output something via my function only fastboot returns nothing...
menglim said:
yes, it works but there is cmd.exe window pop up....after I close this window, then I can get the output. it is not in real time...thanks
Click to expand...
Click to collapse
squabbi said:
Thanks for sharing this code!
Is it possible for the output to show as it appears on cmd?
Thanks
Click to expand...
Click to collapse
k1ll3r8e said:
Thx for the info
but... "Path.Combine" tells me only 2 strings can be combined so its useless for me coz i get the path via "Application.StartupPath" and i have 2 subfolder this means i have 3 strings to combine^^
thats why i set some vars in my form...
//KIT Vars
private static string KIT = Application.StartupPath + "\\";
private static string ADB = KIT + "adb\\adb.exe";
private static string FBT = KIT + "adb\\fastboot.exe";
also fastboot will not output anything
i googled a bit and found some threads... in this threads they say fastboot dun use the "flush" command (!?) this will mean the output is not grab able...
i think they are right^^ coz adb or cmd it self will output something via my function only fastboot returns nothing...
Click to expand...
Click to collapse
Nope not true, Path.Combine takes more than two args. I've passed to it 4 args in Droid Manager, here is a screenshot about it:
Also be sure that you remove this:
using System.Windows.Shapes;
and replace it with:
using System.IO;
so that the correct "Path" class is being called. if it's not there then no need to do anything just be sure System.IO is added.
Also "Flush" command means the same as in the image below:
Fastboot does show output but on certain commands, for example when you type: Fastboot devices
you will get an output IF AND ONLY IF you have a connected device in Fastboot mode.
Or when you unlock a Sony Xperia bootloader you will get output.
DeepUnknown said:
Nope not true, Path.Combine takes more than two args. I've passed to it 4 args in Droid Manager, here is a screenshot about it:
Also be sure that you remove this:
using System.Windows.Shapes;
and replace it with:
using System.IO;
so that the correct "Path" class is being called. if it's not there then no need to do anything just be sure System.IO is added.
Also "Flush" command means the same as in the image below:
Fastboot does show output but on certain commands, for example when you type: Fastboot devices
you will get an output IF AND ONLY IF you have a connected device in Fastboot mode.
Or when you unlock a Sony Xperia bootloader you will get output.
Click to expand...
Click to collapse
Thx for the fast reply
My doc beginning is
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Reflection;
but see img below
the thing with the streamwriter i dun understand^^ - tried it yesterday a few times but with no luck
Finally i think im too dumb... coz "adb.exe version" give me an output and "adb start-server" brings my proggy to hangup^^
k1ll3r8e said:
Thx for the fast reply
My doc beginning is
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Reflection;
but see img below
the thing with the streamwriter i dun understand^^ - tried it yesterday a few times but with no luck
Finally i think im too dumb... coz "adb.exe version" give me an output and "adb start-server" brings my proggy to hangup^^
Click to expand...
Click to collapse
Hmmm... Windows Form, to be honest the last time I worked with Windows Form application was two years ago, since 2011 I program WPF projects, which Microsoft is focusing on + it is more flexible when it comes to App UI and data bindings, that's why I use it.
There are differences between Windows Form and WPF unfortunately :-/
By the way if you consider switching to WPF you need to also learn XAML language (not XML, it's XAML) so you can play with the UI the way you want.
Good luck

[DoS] System crash caused by thread spamming (non root/rooted device)

Making a screen capture application in c# and while doing so i discovered a.. bug?
Update: been classed as a DoS by google. be cautious of the PC and android apps you use as one spamming "screencap" at boot could render a NON rooted device useless.
Fix: none available yet, how could we stop the same command being executed hundreds of times on different threads?
while using
Code:
new Thread(() =>
{
Thread.CurrentThread.IsBackground = true;
Process screencap= new Process();
ProcessStartInfo screencapinfo= new ProcessStartInfo();
screencapinfo.WindowStyle = ProcessWindowStyle.Hidden;
screencapinfo.CreateNoWindow = true;
screencapinfo.UseShellExecute = false;
screencapinfo.RedirectStandardOutput = true;
screencapinfo.FileName = "cmd.exe";
screencapinfo.Arguments = " /c \" adb shell screencap -p /sdcard/screen.png & adb pull /sdcard/screen.png\"";
screencap.StartInfo = screencapinfo;
screencap.Start();
}).Start();
while looping a thread containing "adb shell screencap -p /sdcard/screen.png & adb pull /sdcard/screen.png"
after 10 seconds the device is glitching, 30 seconds the device is unusable, after 1 minute if you take out the usb the device reboots instantly.
Ive attached a logcat of the processes running.
Logat of screencap
Additional device info-
manufactur: ZTE
model: blade v0720
android version: 6.0
kernel version: 3.18.19
root: no
custom recovery: no
unlocked bootloader: no
Provides a DoS style attack, further updates will be posted HERE on the official google bug tracker

Categories

Resources