History log of /frameworks/native/libs/binder/BpBinder.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c61c0c1193d493f97f3a8657b75c5256a70aea3a 24-May-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Log Binder Proxy Limit reached only once" into pi-dev
74d967a817dd3c84fb8ca043c7d80b566586fb69 16-May-2018 Michael Wachenschwanz <mwachens@google.com> Log Binder Proxy Limit reached only once

Bug: 79578081
Test: bit FrameworksCoreTests:android.os.BinderProxyCountingTest
Change-Id: Ia0d4148d5d9d5b57fe69b86b280fbeb7e68dca2a
/frameworks/native/libs/binder/BpBinder.cpp
7c170bb1b1abf5a055ad8137e8531b5bcd0eb5ce 05-May-2018 Martijn Coenen <maco@google.com> Create temp refs on proxies.

Fixes the following scenario:
1) Thread T1 receives a binder proxy and adds a local strong/weak ref
2) Thread T1 queues BC_ACQUIRE/BC_INCREFS (but does not flush)
3) Thread T1 hands the binder proxy off to another thread T2, which
adds another strong ref
4) Thread T1 now drops its own ref to the proxy, but it doesn't get
destructed because T2 has its own ref to it
6) Thread T2 runs and drops its own ref to the proxy, which causes a
BC_RELEASE/BC_DECREFS to be queued to the driver.

Now, if T1 writes its command queue to the driver first, everything
is fine, because a BC_ACQUIRE/BC_INCREFS will be followed by a
BC_RELEASE/BC_DECREFS. However if T2 writes its command queue first,
BC_RELEASE/BC_DECREFS will be sent first, and the driver will delete
the reference prematurely.

Fix this by temporarily holding a weak/strong ref until the initial
BC_ACUIRE/BC_INCREFS is flushed to the driver.

Bug: 78437964
Test: sailfish builds, boots, no invalid ref messages on dumpsys
Change-Id: Ica5efaf9fa2785423c37abb1456575d97f1cd85f
/frameworks/native/libs/binder/BpBinder.cpp
d296d0cd620db158f50434a06a190334e386eab9 15-Aug-2017 Michael Wachenschwanz <mwachens@google.com> Native Side of Binder Proxy Tracking by Uid

Enable Processes to track the number of Binder Proxies objects held for
each UID. Triggers callback when a count crosses a threshold, to handle
bad behaving apps.

Change-Id: I1efcc37148bc42cb7690d7eef8fa389433829564
Fixes: 63901963
Test: bit FrameworksCoreTests:android.os.BinderProxyCountingTest
/frameworks/native/libs/binder/BpBinder.cpp
f2bf93bb080b07159ec1395c1ea8edcf5e00e829 15-Oct-2015 Dianne Hackborn <hackbod@google.com> Temporary hack to get rid of new virtuals.

Seems like it breaks some prebuilt binaries.

Change-Id: Ia5e35beb4538364b2ab3618fbf21b2e9c9ee2363
/frameworks/native/libs/binder/BpBinder.cpp
23eb1e20cf59e1238b65cc108f31dfbfd85b2337 08-Oct-2015 Dianne Hackborn <hackbod@google.com> 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
/frameworks/native/libs/binder/BpBinder.cpp
0b53b5c0b34ff0e14e05e7a4613c7364136f47a5 24-Nov-2014 Andreas Gampe <agampe@google.com> Binder: Remove unused functions & variables

For build-system CFLAGS clean-up, remove unused functions and
variables.

Change-Id: I88abc2bc99e6b91c7aa56470ff9671bf8bf29f8d
/frameworks/native/libs/binder/BpBinder.cpp
d4ecccfd206604a9b2d8a1220844fc2df85a5998 31-May-2014 Mark Salyzyn <salyzyn@google.com> binder: Turn on -Werror

Change-Id: I0ee785927a7ae5f731b02176b0b781b87c22a24e
/frameworks/native/libs/binder/BpBinder.cpp
6f4f3ab36c5ed1df84eb3a9f7475f0ac42952f58 06-Feb-2014 Colin Cross <ccross@android.com> binder: fix all warnings

Fix warnings related to casting pointers to ints, using %d or %ld to
print size_t/ssize_t, and unused parameters.

Change-Id: I7a13ba83d402952989c1f795cd9e880a95b98d9e
/frameworks/native/libs/binder/BpBinder.cpp
e6f43ddce78d6846af12550ff9193c5c6fe5844b 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
/frameworks/native/libs/binder/BpBinder.cpp
6807e59e0ff943cc6225d46e3c33a8a7eae9b3d7 20-Oct-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/143865

Bug: 5449033
Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
/frameworks/native/libs/binder/BpBinder.cpp
83c0446f27b9542d6c2e724817b2b2d8d1f55085 23-May-2009 Mathias Agopian <mathias@google.com> some work to try to reduce the code size of some native libraries

- make sure that all binder Bn classes define a ctor and dtor in their respective library.
This avoids duplication of the ctor/dtor in libraries where these objects are instantiated.
This is also cleaner, should we want these ctor/dtor to do something one day.

- same change as above for some Bp classes and various other non-binder classes

- moved the definition of CHECK_INTERFACE() in IInterface.h instead of having it everywhere.

- improved the CHECK_INTERFACE() macro so it calls a single method in Parcel, instead of inlining its code everywhere

- IBinder::getInterfaceDescriptor() now returns a "const String16&" instead of String16, which saves calls to String16 and ~String16

- implemented a cache for BpBinder::getInterfaceDescriptor(), since this does an IPC. HOWEVER, this method never seems to be called.
The cache makes BpBinder bigger, so we need to figure out if we need this method at all.
/frameworks/native/libs/binder/BpBinder.cpp
c5b2c0bf8007562536b822eb060fc54a01f8e08b 20-May-2009 Mathias Agopian <mathias@google.com> move libbinder's header files under includes/binder
/frameworks/native/libs/binder/BpBinder.cpp
208059f67ed2dd9fa025e07fcb6954d3cb61c79e 19-May-2009 Mathias Agopian <mathias@google.com> checkpoint: split libutils into libutils + libbinder
/frameworks/native/libs/binder/BpBinder.cpp