Add new "shell command" feature to Binder objects.
IBinder has a new common interface for sending shell commands
to it. This can be implemented by system services to provide
a shell interface to the service, without needing to have separate
shell java code.
Also add a new "cmd" command line tool, which invokes the shell
command method on a system service. This is much like dumpsys,
but for shell commands.
Change-Id: I95dc80c881a28cefb76957ad4d4fd9b3ed9630df
diff --git a/include/binder/IBinder.h b/include/binder/IBinder.h
index 43b6543..a25dc7f 100644
--- a/include/binder/IBinder.h
+++ b/include/binder/IBinder.h
@@ -33,6 +33,7 @@
class BpBinder;
class IInterface;
class Parcel;
+class IResultReceiver;
/**
* Base class and low-level protocol for a remotable object.
@@ -50,6 +51,7 @@
PING_TRANSACTION = B_PACK_CHARS('_','P','N','G'),
DUMP_TRANSACTION = B_PACK_CHARS('_','D','M','P'),
+ SHELL_COMMAND_TRANSACTION = B_PACK_CHARS('_','C','M','D'),
INTERFACE_TRANSACTION = B_PACK_CHARS('_', 'N', 'T', 'F'),
SYSPROPS_TRANSACTION = B_PACK_CHARS('_', 'S', 'P', 'R'),
@@ -75,6 +77,8 @@
virtual bool isBinderAlive() const = 0;
virtual status_t pingBinder() = 0;
virtual status_t dump(int fd, const Vector<String16>& args) = 0;
+ virtual status_t shellCommand(int in, int out, int err, Vector<String16>& args,
+ const sp<IResultReceiver>& resultReceiver);
virtual status_t transact( uint32_t code,
const Parcel& data,