Related
Hi everyone,
There has been a few questions on how to compile native android code (for exploits and such). Easy enough.
Go to http://source.android.com/download. You will need to be running Linux. Ubuntu is easiest. Follow the directions to get the source code for android downloaded and compiled.
Run this command
export PATH=/path/to/android/source/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin
Run arm-aebi-gcc or arm-aebi-g++ (depending on the language, c or c++) followed by
-o (OUTPUT) (INPUT)
So, for example, test.c would be:
arm-aebi-gcc -o test test.c
And test.cpp would be
arm-aebi-g++ -o test test.cpp
Just a note, this will make STATICALLY linked files. Meaning any headers will be included INSIDE the executable. Simply put, this means the files will be HUGE for large projects. There is a program, named agcc, which fixes this and can be found here:
http://plausible.org/andy/agcc
Put it in /bin by:
Code:
cd /bin
sudo wget http://plausible.org/andy/agcc
chmod 755 agcc
chmod +x agcc
Run agcc -o (OUTFILE) (INPUT) to compile. Be warned though, if a header is in the file that isn't in bionic (android's smaller libc) it won't compile.
Hope this helps!
+1
Awesome
............(stuipid mistake >>was<< here)..............
Thanks man...
now i can break out my bootable 50 meg linux disc and play around.
love that thing used to use it to crack windows passwords
should see the guys face when you crack his 20 char password in 5 mins without ever needing to use it.
well not really cracking but changing it. used to work at the pentagon. this one guys who used to be support for one dept. thought it would be funny to change all the admin passwords in his office. so when one of the pc's was beyond his repair. i showed up and he was like give me 10 min and i'll log you in. well 5 mins later i was fixing the machine while he was screwing off. boy was he pissed.
how big's gcc? cause i'll need to compile it for my linux.
rigamrts said:
how big's gcc? cause i'll need to compile it for my linux.
Click to expand...
Click to collapse
Massive. You're definitely better off using the prebuilt toolchain found in the Android (N|S)DK.
I would like to add something to this.
libc is essentially derived from the kernel. So, if you take agcc, and make changes to use the libc directory (I don't remember it atm) and NOT bionic, the app won't compile. Simple enough, libc is based of the kernel, so bionic is based of the android kernel. Things missing in bionic that are in libc WON"T work simply because certain kernel calls in glibc DON'T exist on the Android platform.
My exploit relied on the fact that I would be able to compile exploits using glibc, instead of using bionic. So it failed. Thats what I've figured out so far anyways.
zifnab06 said:
My exploit relied on the fact that I would be able to compile exploits using glibc, instead of using bionic. So it failed. Thats what I've figured out so far anyways.
Click to expand...
Click to collapse
Would you be willing to share the code for that exploit, even if it doesn't work? (sorry if you already have, I didn't see it anywhere)
I may be able to help.
Look up anything in our old thread, especially when we were talking about "sys/personality.h". The one I was working with exploited a hole that was patched (min_map_addr).
This blog post
honeypod.blogspot.com/2007/12/dynamically-linked-hello-world-for.html
(Sorry, my account isn't allowed to post links yet.)
gives a minimalist approach to using dynamically linked executables. (In particular, see steps #2 and #3 for the sources for hello.c and start.c) I gave it a try, and it seemed to work without agcc, e.g. with a makefile like the following (and with the arm-eabi- executables in the PATH of the user invoking the make) :
Code:
AR = arm-eabi-ar
AS = arm-eabi-as
CC = arm-eabi-gcc
CXX = arm-eabi-c++
LD = arm-eabi-ld
NDK_KIT = /opt/android/android-ndk-1.5_r1
PLATF_KIT = build/platforms/android-1.5
ARM_INC = $(NDK_KIT)/$(PLATF_KIT)/arch-arm/usr/include
ARM_LIB = $(NDK_KIT)/$(PLATF_KIT)/arch-arm/usr/lib
PLATF_INC = $(NDK_KIT)/$(PLATF_KIT)/common/include
OBJS = hello.o start.o
EXES = hello
hello: hello.o start.o
$(LD) \
--entry=_start \
--dynamic-linker /system/bin/linker -nostdlib \
-rpath /system/lib -rpath $(ARM_LIB) \
-L $(ARM_LIB) -lc -o hello hello.o start.o
hello.o: hello.c
$(CC) -I $(ARM_INC) -I $(PLATF_INC) -c hello.c
start.o: start.c
$(CC) -I $(ARM_INC) -I $(PLATF_INC) -c start.c
clean:
rm -f $(OBJS) $(EXES)
HTH
bftb0
Just curious, but I'm trying to get some native code that I've compiled to run on the Incredible. I've followed the instructions to download the the arm gcc, compiled my C code, and adb push'ed the executable over to /sdcard but I get a "permission denied" error when I try running it from my phone and adb shell. Does the phone have to be rooted in order to run native C compiled executables?
Thanks!
zebdor44 said:
Just curious, but I'm trying to get some native code that I've compiled to run on the Incredible. I've followed the instructions to download the the arm gcc, compiled my C code, and adb push'ed the executable over to /sdcard but I get a "permission denied" error when I try running it from my phone and adb shell. Does the phone have to be rooted in order to run native C compiled executables?
Thanks!
Click to expand...
Click to collapse
On an unrooted phone, push your code to /system/local or another place that you can write to and chmod it to be executable. By default the sdcard is mounted no execute. You will either need to add the directory you put it in to the path or execute it implicitly by specifying it is in the local directory.
for example ./myprogram
I hope that helps. I re-read it and it doesn't make much sense unless you have a firm grasp of the things that happen between the lines.
best of luck.
Thanks. Good stuff.
rigamrts said:
now i can break out my bootable 50 meg linux disc and play around.
love that thing used to use it to crack windows passwords
should see the guys face when you crack his 20 char password in 5 mins without ever needing to use it.
well not really cracking but changing it. used to work at the pentagon. this one guys who used to be support for one dept. thought it would be funny to change all the admin passwords in his office. so when one of the pc's was beyond his repair. i showed up and he was like give me 10 min and i'll log you in. well 5 mins later i was fixing the machine while he was screwing off. boy was he pissed.
how big's gcc? cause i'll need to compile it for my linux.
Click to expand...
Click to collapse
This is one of the most unbelievable stories ive read in a while. The fact that the pentagon had an administration department without policies or security in place to prevent such a widely known method, is comical.
btw, such a linux cd is no secret. Its called pnordahl.
Useful information
I'm surprised to see that many of you don't use the Forum's search function and simply start new topics over and over again. What funny is that the info you put here is old and useless.
I've posted an article on how to compile native C code for Android months ago, with several examples and tools:
http://forum.xda-developers.com/showthread.php?t=514803
or direct link herE:
http://www.pocketmagic.net/?p=682
However this technique is now too old.
The best approach is to simply use the NDK and build a custom Makefile for Cygwin's make under windows or easier under linux, see:
http://betelco.blogspot.com/2010/01/buildingdebugging-android-native-c.html
radhoo said:
I'm surprised to see that many of you don't use the Forum's search function and simply start new topics over and over again. What funny is that the info you put here is old and useless.
I've posted an article on how to compile native C code for Android months ago, with several examples and tools:
http://forum.xda-developers.com/showthread.php?t=514803
or direct link herE:
http://www.pocketmagic.net/?p=682
However this technique is now too old.
The best approach is to simply use the NDK and build a custom Makefile for Cygwin's make under windows or easier under linux, see:
http://betelco.blogspot.com/2010/01/buildingdebugging-android-native-c.html
Click to expand...
Click to collapse
Thank you for your very informative links. I'll take a look tonight, since I find this very interesting and would love to compile a few things for Android.
"What funny is that the info you put here is old and useless." - This was posted almost 10 months ago. That's a long time in smart phone years. By the same token, if it were January 2010 and I was looking for this info, I would assume that a post from May 2009 would be dated too.
"I'm surprised to see that many of you don't use the Forum's search function and simply start new topics over and over again." - Maybe zifnab did search and find your post and deemed your technique too old for Jan. 2010, so he created a new post with newer information. Or maybe he wanted to show a different way to do the same thing. Or maybe he figured that many users only have/take the time to look in their phone-specific forum. No one knows other than zifnab.
Personally, I welcome multiple posts by different people on the same topic. Everyone is different and often have different takes on the same thing. I find it easier to understand many techniques/topics if I get multiple perspectives.
Again, thank you for your contribution.
I need to compile the library with some modifications. how to do it as simple as possible? what will it take?
vlad072 said:
I need to compile the <library> with some modifications. how to do it as simple as possible? what will it take?
Click to expand...
Click to collapse
Did you get any thing in this regard ? Even i want to compile a part for library for the Android 5.1.1 device but not able to find any resource. Help will be appreciated.
Android's netd daemon, by default, enables something known as "IPv6 privacy extensions" (this means that the IPv6 address, instead of being generated from the device's MAC address, will be randomized — but this is irrelevant for my question).
In a nutshell, my problem is this: how can I hack, or communicate with, the netd daemon to force it to disable this feature?
(Android offers no configuration for this. I bug-reported the issue to Google ad android bug #31102 aka http : / / code.google.com/p/android/issues/detail?id=31102 (sorry I'm not allowed to post links) but they, of course, ignored it. Please note that there are lots of pages dealing with the question of how to enable IPv6 privacy extensions, because old versions of Android did not enable them: my question is how to disable them, permanently.)
What the netd daemon actually does is that when a network interface $IFACE is brought up, it opens the file /proc/sys/net/ipv6/conf/$IFACE/use_tempaddr and writes "2" there (this asks the Linux kernel to enable the feature). Up to Android 4.2, what I did was binary patch netd to replace the string "/proc/sys/net/ipv6/conf/%s/use_tempaddr" by "/dev/null\000" so the daemon would simply write that "2" to /dev/null and nothing would happen. But in Android 4.3 that part of the code has been slightly refactored, see InterfaceController.cpp from the netd source code, around line 134 (https : / / android.googlesource.com/platform/system/netd/+/android-4.3.1_r1/InterfaceController.cpp — again I'm not allowed to put links, what a pain), so a binary patch is not so trivial. (I could probably replace "use_tempaddr" by "hfr_grzcnqqe", but it would cause an error message in the logs and I'd like to avoid that.)
(Changing netd's source would be absolutely trivial. But I want to avoid recompiling it, because I'd probably spend many sleepless nights getting the correct native toolchain and convincing the Android makefiles to recompile just this bit: I don't have the resources to do a full Android build. Maybe I'm being pessimistic.)
In principle, it seems that netd reacts to commands that are sent to it (see https : / / android.googlesource.com/platform/system/netd/+/android-4.3.1_r1/CommandListener.cpp starting from around line 434). What I don't know is how to communicate with it to send it such commands, let alone do it precisely when a new interface is brought up. I know that at the other end of the line there is, for example, android.net.wifi.WifiStateMachine (see https : / / android.googlesource.com/platform/frameworks/base/+/android-4.3.1_r1/wifi/java/android/net/wifi/WifiStateMachine.java around line 2104). I'm a Linux dev, not so familiar with the Android IPC mechanisms or daemons, so I was hoping someone more knowledgeable could think of a way to pass a command at the right time.
PS: I'm aware that there's an app called to.doc.android.ipv6config which claims to solve the problem I'm talking about. But, looking at the code (https : / / gitorious.org/android-ipv6config/android-ipv6config/source/58e2060162485b54d4f8c147a558aeed708fa4b4:src/to/doc/android/ipv6config/LinuxIPCommandHelper.java around line 103), it's obvious that it does so in a completely wrong way, namely by talking to the kernel, bypassing netd's role as the network gatekeeper altogether.
PPS: I'm using CyanogenMod (currently 10.1.3, and this issue is preventing me from upgrading to 10.2), but I don't think this is relevant at all (I must admit I didn't check to see if CyanogenMod patched netd and/or android.net.wifi.WifiStateMachine in any way).
Meta-question: Is this the right place to ask? Apparently I have to ask 10 stupid questions before I'm allowed to post anywhere else.
Did you ever find a permanent solution? I've been tackling the issue on my new Galaxy S6 using the steps as outlined in this link:
https://www.reddit.com/r/Android/comments/2z1gyo/fix_lollipop_wifi_issues_and_coincidentally_the/
On the chance that someone has this issue and finds this thread ..
As far as I have seen (< 5.0), communication with the network daemon, netd, is done through unix-domain socket IPC on /dev/socket/netd. The commands are of the form:
Code:
interface setcfg [iface name] [options]
Where 'options' includes 'up' and 'down', among others. I have not verified this, but you may be able to do this from the console -- see 'netcfg'. As far as the specific command to do what you are requesting, I would either pull the netcfg executable into IDA or start by looking at the WifiStateMachine. The state machine set sets this option at line 2092 in the source:
Code:
mNwService.setInterfaceIpv6PrivacyExtensions(mInterfaceName, true);
Additionally, you could just pull in the apk for the WifiStateMachine and modify the smali to send false, rather than true, at the line above and you'll have your permanent disable. For this, see /system/framework/*.apk, or equivalent. The WSM implementation should be there somewhere.
-----------
From the source you posted, I found this too ..
Code:
"Usage: interface ipv6privacyextensions <interface> <enable|disable>"
I want to measure the real, system and user time for running a web benchmark (Can't post the link right now because of forum rules). It basically runs some pre-stored site data emulating basic human interaction and contains index.html, results.html and some java script files.
I was able to modify the index.html to autostart without pressing a start button and then using android intents to start web browser.
Code:
time adb shell am start -a android.intent.action.VIEW -n com.android.browser/.BrowserActivity -d file:///storage/emulated/0/benchmark/bbench/index.html
But the above code gives me the time for only the process which starts the index.html file. The time value is not for the entire benchmark run.
Possible solution: I can call the above intent in a script and then run the script using time function, the catch is that I need to get some kind of feedback or end of task status from the benchmark. I can't understand how to do it.
When I open results.html file, there is a for loop which basically runs the benchmark for some predefined number of iterations, I can perhaps modify this or get some status flag from here. BUT, the main question is can I poll a function/ variable in java script from shell script?
I am doing everything on android platform 4.2.2 .
Thanks!
EDIT: The solution is in post #6.
Hi,
I'm trying to make a kernel modification which would create a file on boot before any partition is mounted. I wrote a simple shell script which tries to create a file in the root directory. The problem is I can't write any file to the / directory from a program or a script called by exec from init.rc. If I run dmesg, I can't find any indication of a problem there. I tried to modify the script to write to the /data directory on post-fs, and that worked, but that is not what I want.
I can't find out where the problem is. Do you have any ideas? Thanks.
simplified init.rc snippet:
Code:
on fs
# some work
exec /sbin/busybox sh /test.sh
# some other work
mount_all /fstab.grouper
# and another work
/test.sh
Code:
#!/sbin/busybox sh
echo "test" > /test
/ mounts as ro pretty early...
try to remount it rw before making files, or change the part of init.rc that mounts it ro.
frantisek.nesveda said:
Hi,
I'm trying to make a kernel modification which would create a file on boot before any partition is mounted. I wrote a simple shell script which tries to create a file in the root directory. The problem is I can't write any file to the / directory from a program or a script called by exec from init.rc. If I run dmesg, I can't find any indication of a problem there. I tried to modify the script to write to the /data directory on post-fs, and that worked, but that is not what I want.
I can't find out where the problem is. Do you have any ideas? Thanks.
simplified init.rc snippet:
Code:
on fs
# some work
exec /sbin/busybox sh /test.sh
# some other work
mount_all /fstab.grouper
# and another work
/test.sh
Code:
#!/sbin/busybox sh
echo "test" > /test
Click to expand...
Click to collapse
I am having the same problem, my script is not called. Did you find the solution?
Khaon said:
I am having the same problem, my script is not called. Did you find the solution?
Click to expand...
Click to collapse
Not yet. But recently I got back to the project where I would use it, so maybe I can take a look again and see if I am any wiser now. I'll try to solve it this evening or tomorrow, I'll be reinstalling my tablet so I'll have a good oportunity. I'll post the results here.
frantisek.nesveda said:
Not yet. But recently I got back to the project where I would use it, so maybe I can take a look again and see if I am any wiser now. I'll try to solve it this evening or tomorrow, I'll be reinstalling my tablet so I'll have a good oportunity. I'll post the results here.
Click to expand...
Click to collapse
That would be great, the only thing I could see is upon booting its permissions are read-only. And chmod 0777 doesn't change its permissions(rootfs is rw)
Khaon said:
That would be great, the only thing I could see is upon booting its permissions are read-only. And chmod 0777 doesn't change its permissions(rootfs is rw)
Click to expand...
Click to collapse
OK, I found the cause of the problem and the solution.
The implementation of the exec command in Android init scripts is missing from the init binary by default - the source looks like this:
Code:
int do_exec(int nargs, char **args)
{
return -1;
}
So there are two options - either write the do_exec function yourself, or use a trick to execute your programs.
Writing it yourself would be probably cleaner, but it would mean compiling the init binary again and not everyone wants to do that, so I'll be using the trick.
The trick is to register your program as a service and then invoke it via the start command.
Example init.rc:
Code:
# service invocation - where you need it
# warning - this will not wait for the finish of the program
start my_awesome_program
.
.
.
# service declaration - along with other declarations at the end of the file
service my_awesome_program /sbin/my_awesome_program
disabled
oneshot
If you want to implement the do_exec function and use the exec command, you can use for example CyanogenMod's implementation.
There may be a third option, but I haven't tested that - you can copy the init binary from a kernel which has the exec command working - I suppose all CM kernels should, but I haven't tried.
It's funny how when you already know the solution, you can find so much info, but when you don't, nothing comes up since you are searching wrong.
frantisek.nesveda said:
OK, I found the cause of the problem and the solution.
The implementation of the exec command in Android init scripts is missing from the init binary by default - the source looks like this:
Code:
int do_exec(int nargs, char **args)
{
return -1;
}
So there are two options - either write the do_exec function yourself, or use a trick to execute your programs.
Writing it yourself would be probably cleaner, but it would mean compiling the init binary again and not everyone wants to do that, so I'll be using the trick.
The trick is to register your program as a service and then invoke it via the start command.
Example init.rc:
Code:
# service invocation - where you need it
start my_awesome_program
.
.
.
# service declaration - along with other declarations at the end of the file
service my_awesome_program /sbin/my_awesome_program
disabled
oneshot
If you want to implement the do_exec function and use the exec command, you can use for example CyanogenMod's implementation.
There may be a third option, but I haven't tested that - you can copy the init binary from a kernel which has the exec command working - I suppose all CM kernels should, but I haven't tried.
It's funny how when you already know the solution, you can find so much info, but when you don't, nothing comes up since you are searching wrong.
Click to expand...
Click to collapse
Oh my, many thanks! So stupid exec always return ;D, wouldn't have thought one sec on checking the implementation of those functions.
Khaon said:
Oh my, many thanks! So stupid exec always return ;D, wouldn't have thought one sec on checking the implementation of those functions.
Click to expand...
Click to collapse
A small warning - starting the program as a service will not wait for the program finish, so its results will not be available immediately after the start call. I learnt this the hard way after a few hours of debugging just now.
I added this info to my previous post too.
frantisek.nesveda said:
A small warning - starting the program as a service will not wait for the program finish, so its results will not be available immediately after the start call. I learnt this the hard way after a few hours of debugging just now.
I added this info to my previous post too.
Click to expand...
Click to collapse
I always use
Code:
class core
user root
in addition to oneshot.
Haven't you com accross SElinux restrictions using busybox? Because I do I need to set permissions.
I have this issue
[Q&A] [DEV] AndroidLib - .NET Android Device Communication and Management Library 01
Q&A for [DEV] AndroidLib - .NET Android Device Communication and Management Library 01.20.13
Some developers prefer that questions remain separate from their main development thread to help keep things organized. Placing your question within this thread will increase its chances of being answered by a member of the community or by the developer.
Before posting, please use the forum search and read through the discussion thread for [DEV] AndroidLib - .NET Android Device Communication and Management Library 01.20.13. If you can't find an answer, post it here, being sure to give as much information as possible (firmware version, steps to reproduce, logcat if available) so that you can get help.
Thanks for understanding and for helping to keep XDA neat and tidy!
where's the link to download
I and finding only code everywhere but where's the link to download the latest androidLib in which RegawMOD.Android is included
How to send sms
how to send
download link for androidlib.dll
hi,
could anyone show the link to download androidlib.dll? many thanks!!!
regards
Lim
---------- Post added at 05:02 PM ---------- Previous post was at 04:45 PM ----------
Hi
does anyone has the download link for androidlib? thanks!!
LESLIE
Best way to communicate between c# and android app
I would like to communicate data between c# and my java app. 2 variables nothing fancy, I think of an idea to use Preferences file and read it via adb using androidlib. My phone is rooted, but i want to it work without root. I know sharedprefs file permissions are only for the app itself. Any ideas?
I wanna make a function "Flashall"
I try make a "flashall function"..
use a "ExecuteFastbootCommand("flashall", "-w");
but, result message "error: neither -p product specified nor ANDROID_PRODUCT_OUT set"
How to excute command (set ANDROID_PRODUCT_OUT=~) & "fastboot flashall -w "?
Question for AndroidLib Developer
First of all, I am using your Android library and I think it is a great tool. My application that I am using it for is a wrapper class to manage testing of some android based handsets. I require the ability to query the phones IMEI. Is there any method you have in your library that I can easily use for this requirment?
Thanks in advance!!
device.pushfile need help with parameters, thanks
hi, this is my code load the phone and after want a sent a file contactos.sqlite, I need help with parameters because I cant send, thanks for help me.
*************************************
Public Sub phone()
Dim serial As String
'Always call UpdateDeviceList() before using AndroidController on devices to get the most updated list
android.UpdateDeviceList()
If (android.HasConnectedDevices) Then
serial = android.ConnectedDevices(0)
device = android.GetConnectedDevice(serial)
txtphone.Text = serial
Else
MsgBox("Error - No Devices Connected", MsgBoxStyle.Exclamation)
End If
End Sub
*****************************************
Private Sub btncopy_Click(sender As Object, e As EventArgs) Handles btncopy.Click
Dim filepath As String = "C:\Visual Studio 2013\Projects\prueba\prueba\bin\Debug\contactos1.sqlite"
Dim destinationfilepath As String = "\data\data\yo\databases\contactos1.sqlite"
device.PushFile(filepath, destinationfilepath)
End Sub
*********************************************
help
hello
Documentation link notwork for me
please other link for Documentation
i need all commands help file for vb.net androidlib
Where to download the compiled DLL?
Looks like the website is down... I downloaded the source from github but I'd prefer to save some time and use the compiled binary.
Is there a working download link?
I was looking for documentation, but the site is offline. What I want know for is like copying a database from my PC to my Android phone and the other way round via USB, so if anyone has documentation to guide me.
Thank You
Postscript: Sorry, my english is poor and i work with vb.net 2013
usman14903usa said:
I and finding only code everywhere but where's the link to download the latest androidLib in which RegawMOD.Android is included
Click to expand...
Click to collapse
The idea is that you fork, clone and compile the library yourself. This isn't an application, it is a wrapper library containing code to make writing applications for use with Android devices easier.
leslielin71 said:
hi,
could anyone show the link to download androidlib.dll? many thanks!!!
regards
Lim
---------- Post added at 05:02 PM ---------- Previous post was at 04:45 PM ----------
Hi
does anyone has the download link for androidlib? thanks!!
LESLIE
Click to expand...
Click to collapse
It's all here: http://forum.xda-developers.com/showthread.php?t=1512685
The idea is that you fork, clone and compile the library yourself.
Flopik2 said:
I would like to communicate data between c# and my java app. 2 variables nothing fancy, I think of an idea to use Preferences file and read it via adb using androidlib. My phone is rooted, but i want to it work without root. I know sharedprefs file permissions are only for the app itself. Any ideas?
Click to expand...
Click to collapse
Have you thought of writing a service for the device that checks for changes in a folder in the shared mass storage, and then handles accordingly?
That might be something to think about before considering going places you shouldn't be with a host computer.
hwiri said:
I try make a "flashall function"..
use a "ExecuteFastbootCommand("flashall", "-w");
but, result message "error: neither -p product specified nor ANDROID_PRODUCT_OUT set"
How to excute command (set ANDROID_PRODUCT_OUT=~) & "fastboot flashall -w "?
Click to expand...
Click to collapse
Code:
Fastboot.ExecuteFastbootCommand(Fastboot.FormFastbootCommand("flashall", "-w"));
cjdelgross said:
First of all, I am using your Android library and I think it is a great tool. My application that I am using it for is a wrapper class to manage testing of some android based handsets. I require the ability to query the phones IMEI. Is there any method you have in your library that I can easily use for this requirment?
Thanks in advance!!
Click to expand...
Click to collapse
No, there is no property or method to get the IMEI, but that's a good idea, and seeming as I'm doing some work on AndroidLib for a project of mine (of course the changes will be uploaded to GitHub), I'll add that, too.
The ADB command is: adb shell dumpsys iphonesubinfo
GonzaloCimma said:
hi, this is my code load the phone and after want a sent a file contactos.sqlite, I need help with parameters because I cant send, thanks for help me.
*************************************
Public Sub phone()
Dim serial As String
'Always call UpdateDeviceList() before using AndroidController on devices to get the most updated list
android.UpdateDeviceList()
If (android.HasConnectedDevices) Then
serial = android.ConnectedDevices(0)
device = android.GetConnectedDevice(serial)
txtphone.Text = serial
Else
MsgBox("Error - No Devices Connected", MsgBoxStyle.Exclamation)
End If
End Sub
*****************************************
Private Sub btncopy_Click(sender As Object, e As EventArgs) Handles btncopy.Click
Dim filepath As String = "C:\Visual Studio 2013\Projects\prueba\prueba\bin\Debug\contactos1.sqlite"
Dim destinationfilepath As String = "\data\data\yo\databases\contactos1.sqlite"
device.PushFile(filepath, destinationfilepath)
End Sub
*********************************************
Click to expand...
Click to collapse
Even if I were to help with your specific problem, you have hardcoded the paths. That's a bad practice. Maybe you should gather some more basic knowledge about programming.
astarali said:
hello
Documentation link notwork for me
please other link for Documentation
i need all commands help file for vb.net androidlib
Click to expand...
Click to collapse
That's what IntelliSense is for - It's built in to the IDE. Also, you can check the code files. They're all there.
cfsmp3 said:
Looks like the website is down... I downloaded the source from github but I'd prefer to save some time and use the compiled binary.
Is there a working download link?
Click to expand...
Click to collapse
There hasn't been a compiled binary for quite some time. The idea is you fork, clone, and compile the lib yourself so that you always have the latest updates and changes.
Ferel94 said:
I was looking for documentation, but the site is offline. What I want know for is like copying a database from my PC to my Android phone and the other way round via USB, so if anyone has documentation to guide me.
Thank You
Postscript: Sorry, my english is poor and i work with vb.net 2013
Click to expand...
Click to collapse
The documentation wouldn't really help. You're looking for the push command: adb push <local> <remote>.
The wrapper method is in the Device class.
You might, however, need to do some shell work beforehand.
Hey, I am trying to get Androidlib to work with Genymotion. (Another emulator). I first tried to point Genymotion to the ADB that comes with the Android-sdk, but when I tried to use Androidlib to find devices it never found any. I where able to find it using command line adb, but after running androidlib, not even that worked.
My second attempt was to change the adb file used it androidlib. Changed the md5 hash and copied the right file where it should go. but it still would not find my device.
Anyone been working on Genymotion and Androidlib before and have gotten this problem? Or just anyone that have any suggestions?
Can i get progress with push command on AndroidLib.dll?
i am looking for document, to get progress with '"RegawMOD.Android.Adb.FormAdbCommand" (push command) on AndroidLib.dll?
Help!
Erase my quote please
Hi guys, i just wanted to know where is the documentation of this project (since the website is down).
Best regards!
hi
i do not know how to download adriodLib.dll
Pushing files
I'm having trouble with the adb command pushing files, does anyone have an example preferable in vb because i keep getting errors.
I'm getting Type 'RegawMOD.Android.AndroidController' has no constructors.
Code:
Private _android As AndroidController
Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Form1
CheckFor_()
txtBody.AppendText("Starting adb server..." & NewLine)
_android = New AndroidController()
txtBody.Text = txtBody.Text.Replace("Starting adb server..." & NewLine, "")
timerCursor.Enabled = True
timerPhone.Enabled = True
timerCursor.Start()
timerPhone.Start()
End Sub
Device "minimizes" Activity after App started
Hello,
I'm usind AndroidLib in my project and encountered a strange behaviour. When I start an App via "shell am start -n [PackageName]/[ActivityName] -a android.intent.action.MAIN -c android.intent.category.LAUNCHER", the main Activity shows up on screen. A second later, the activity gets "minimized" and the previous Activity (Home, other App,...) is shown again.
I know the App starts, as it launches some background Threads, which are running and doing, what they're supposed to do. So how can I stop the Activity from disappearing? When starting my App from Android Studio or running the command manually via CMD, everything works.
For everyone asking: I have created my own branch of AndroidLib, and I have documentation for it on my webserver.
Some of the documentation is specifically for my branch of the library, however most of the docs are from the core git and haven't changed.
http://team-m4gkbeatz.eu/androidlib/documentation/