mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-08-30 03:54:46 +00:00
Android tools offer filsystem tools for creating sparse images, so package them in package of its own. This recipe is re-worked and not a straight import from meta-shr. It's built from AOSP source. I've dropped the ubuntu-ism which will never be upstreamed. The intent is to be closer to the upstream AOSP source code and be able to update the recipe regularly. Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
63 lines
2.1 KiB
Diff
63 lines
2.1 KiB
Diff
Subject: adb: Use local sockets where appropriate
|
|
Author: Hilko Bengen <bengen@debian.org>
|
|
|
|
Upstream-Status: Inappropriate
|
|
---
|
|
system/core/adb/adb.c | 6 +++++-
|
|
system/core/adb/adb_client.c | 5 +++--
|
|
system/core/adb/transport_local.c | 3 ++-
|
|
3 files changed, 10 insertions(+), 4 deletions(-)
|
|
|
|
--- a/system/core/adb/adb.c
|
|
+++ b/system/core/adb/adb.c
|
|
@@ -1230,7 +1230,11 @@ int launch_server(int server_port)
|
|
*/
|
|
void build_local_name(char* target_str, size_t target_size, int server_port)
|
|
{
|
|
- snprintf(target_str, target_size, "tcp:%d", server_port);
|
|
+ if (gListenAll > 0) {
|
|
+ snprintf(target_str, target_size, "tcp:%d", server_port);
|
|
+ } else {
|
|
+ snprintf(target_str, target_size, "local:%d", server_port);
|
|
+ }
|
|
}
|
|
|
|
#if !ADB_HOST
|
|
--- a/system/core/adb/adb_client.c
|
|
+++ b/system/core/adb/adb_client.c
|
|
@@ -185,12 +185,12 @@ int _adb_connect(const char *service)
|
|
strcpy(__adb_error, "service name too long");
|
|
return -1;
|
|
}
|
|
- snprintf(tmp, sizeof tmp, "%04x", len);
|
|
+ snprintf(tmp, sizeof tmp, "%d", __adb_server_port);
|
|
|
|
if (__adb_server_name)
|
|
fd = socket_network_client(__adb_server_name, __adb_server_port, SOCK_STREAM);
|
|
else
|
|
- fd = socket_loopback_client(__adb_server_port, SOCK_STREAM);
|
|
+ fd = socket_local_client(tmp, ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_STREAM);
|
|
|
|
if(fd < 0) {
|
|
strcpy(__adb_error, "cannot connect to daemon");
|
|
@@ -201,6 +201,7 @@ int _adb_connect(const char *service)
|
|
return -1;
|
|
}
|
|
|
|
+ snprintf(tmp, sizeof tmp, "%04x", len);
|
|
if(writex(fd, tmp, 4) || writex(fd, service, len)) {
|
|
strcpy(__adb_error, "write failure during connection");
|
|
adb_close(fd);
|
|
--- a/system/core/adb/transport_local.c
|
|
+++ b/system/core/adb/transport_local.c
|
|
@@ -121,7 +121,8 @@ int local_connect_arbitrary_ports(int co
|
|
}
|
|
#endif
|
|
if (fd < 0) {
|
|
- fd = socket_loopback_client(adb_port, SOCK_STREAM);
|
|
+ snprintf(buf, sizeof buf, "%d", adb_port);
|
|
+ fd = socket_local_client(buf, ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_STREAM);
|
|
}
|
|
|
|
if (fd >= 0) {
|