Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b1bbe99a authored by Brad Fitzpatrick's avatar Brad Fitzpatrick Committed by Android (Google) Code Review
Browse files

Merge "Some StrictMode API changes." into gingerbread

parents 88bff62c 97461bd2
Loading
Loading
Loading
Loading
+42 −20
Original line number Diff line number Diff line
@@ -129270,7 +129270,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<method name="getThreadBlockingPolicy"
<method name="allowThreadDiskReads"
 return="int"
 abstract="false"
 native="false"
@@ -129281,7 +129281,29 @@
 visibility="public"
>
</method>
<method name="setThreadBlockingPolicy"
<method name="allowThreadDiskWrites"
 return="int"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getThreadPolicy"
 return="int"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="setThreadPolicy"
 return="void"
 abstract="false"
 native="false"
@@ -258023,7 +258045,7 @@
>
<parameter name="numBits" type="int">
</parameter>
<parameter name="rnd" type="java.util.Random">
<parameter name="random" type="java.util.Random">
</parameter>
</constructor>
<constructor name="BigInteger"
@@ -258037,7 +258059,7 @@
</parameter>
<parameter name="certainty" type="int">
</parameter>
<parameter name="rnd" type="java.util.Random">
<parameter name="unused" type="java.util.Random">
</parameter>
</constructor>
<constructor name="BigInteger"
@@ -258047,7 +258069,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="val" type="java.lang.String">
<parameter name="value" type="java.lang.String">
</parameter>
</constructor>
<constructor name="BigInteger"
@@ -258057,7 +258079,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="val" type="java.lang.String">
<parameter name="value" type="java.lang.String">
</parameter>
<parameter name="radix" type="int">
</parameter>
@@ -258081,7 +258103,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="val" type="byte[]">
<parameter name="value" type="byte[]">
</parameter>
</constructor>
<method name="abs"
@@ -258105,7 +258127,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="val" type="java.math.BigInteger">
<parameter name="value" type="java.math.BigInteger">
</parameter>
</method>
<method name="and"
@@ -258118,7 +258140,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="val" type="java.math.BigInteger">
<parameter name="value" type="java.math.BigInteger">
</parameter>
</method>
<method name="andNot"
@@ -258131,7 +258153,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="val" type="java.math.BigInteger">
<parameter name="value" type="java.math.BigInteger">
</parameter>
</method>
<method name="bitCount"
@@ -258179,7 +258201,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="val" type="java.math.BigInteger">
<parameter name="value" type="java.math.BigInteger">
</parameter>
</method>
<method name="divide"
@@ -258253,7 +258275,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="val" type="java.math.BigInteger">
<parameter name="value" type="java.math.BigInteger">
</parameter>
</method>
<method name="getLowestSetBit"
@@ -258312,7 +258334,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="val" type="java.math.BigInteger">
<parameter name="value" type="java.math.BigInteger">
</parameter>
</method>
<method name="min"
@@ -258325,7 +258347,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="val" type="java.math.BigInteger">
<parameter name="value" type="java.math.BigInteger">
</parameter>
</method>
<method name="mod"
@@ -258379,7 +258401,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="val" type="java.math.BigInteger">
<parameter name="value" type="java.math.BigInteger">
</parameter>
</method>
<method name="negate"
@@ -258425,7 +258447,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="val" type="java.math.BigInteger">
<parameter name="value" type="java.math.BigInteger">
</parameter>
</method>
<method name="pow"
@@ -258453,7 +258475,7 @@
>
<parameter name="bitLength" type="int">
</parameter>
<parameter name="rnd" type="java.util.Random">
<parameter name="unused" type="java.util.Random">
</parameter>
</method>
<method name="remainder"
@@ -258529,7 +258551,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="val" type="java.math.BigInteger">
<parameter name="value" type="java.math.BigInteger">
</parameter>
</method>
<method name="testBit"
@@ -258579,7 +258601,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="val" type="long">
<parameter name="value" type="long">
</parameter>
</method>
<method name="xor"
@@ -258592,7 +258614,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="val" type="java.math.BigInteger">
<parameter name="value" type="java.math.BigInteger">
</parameter>
</method>
<field name="ONE"
+1 −1
Original line number Diff line number Diff line
@@ -3106,7 +3106,7 @@ public final class ActivityThread {
             (ApplicationInfo.FLAG_SYSTEM |
              ApplicationInfo.FLAG_UPDATED_SYSTEM_APP)) != 0 &&
            !"user".equals(Build.TYPE)) {
            StrictMode.setThreadBlockingPolicy(
            StrictMode.setThreadPolicy(
                StrictMode.DISALLOW_DISK_WRITE |
                StrictMode.DISALLOW_DISK_READ |
                StrictMode.DISALLOW_NETWORK |
+38 −6
Original line number Diff line number Diff line
@@ -114,7 +114,7 @@ public final class StrictMode {
     *
     * @param policyMask a bitmask of DISALLOW_* and PENALTY_* values.
     */
    public static void setThreadBlockingPolicy(final int policyMask) {
    public static void setThreadPolicy(final int policyMask) {
        // In addition to the Java-level thread-local in Dalvik's
        // BlockGuard, we also need to keep a native thread-local in
        // Binder in order to propagate the value across Binder calls,
@@ -164,10 +164,42 @@ public final class StrictMode {
     *
     * @return the bitmask of all the DISALLOW_* and PENALTY_* bits currently enabled
     */
    public static int getThreadBlockingPolicy() {
    public static int getThreadPolicy() {
        return BlockGuard.getThreadPolicy().getPolicyMask();
    }

    /**
     * Updates the current thread's policy mask to allow reading &amp;
     * writing to disk.
     *
     * @return the old policy mask, to be passed to setThreadPolicy to
     *         restore the policy.
     */
    public static int allowThreadDiskWrites() {
        int oldPolicy = getThreadPolicy();
        int newPolicy = oldPolicy & ~(DISALLOW_DISK_WRITE | DISALLOW_DISK_READ);
        if (newPolicy != oldPolicy) {
            setThreadPolicy(newPolicy);
        }
        return oldPolicy;
    }

    /**
     * Updates the current thread's policy mask to allow reading from
     * disk.
     *
     * @return the old policy mask, to be passed to setThreadPolicy to
     *         restore the policy.
     */
    public static int allowThreadDiskReads() {
        int oldPolicy = getThreadPolicy();
        int newPolicy = oldPolicy & ~(DISALLOW_DISK_READ);
        if (newPolicy != oldPolicy) {
            setThreadPolicy(newPolicy);
        }
        return oldPolicy;
    }

    /**
     * Parses the BlockGuard policy mask out from the Exception's
     * getMessage() String value.  Kinda gross, but least
@@ -413,13 +445,13 @@ public final class StrictMode {
            if (violationMaskSubset != 0) {
                int violationBit = parseViolationFromMessage(info.crashInfo.exceptionMessage);
                violationMaskSubset |= violationBit;
                final int savedPolicy = getThreadBlockingPolicy();
                final int savedPolicy = getThreadPolicy();
                try {
                    // First, remove any policy before we call into the Activity Manager,
                    // otherwise we'll infinite recurse as we try to log policy violations
                    // to disk, thus violating policy, thus requiring logging, etc...
                    // We restore the current policy below, in the finally block.
                    setThreadBlockingPolicy(0);
                    setThreadPolicy(0);

                    ActivityManagerNative.getDefault().handleApplicationStrictModeViolation(
                        RuntimeInit.getApplicationObject(),
@@ -429,7 +461,7 @@ public final class StrictMode {
                    Log.e(TAG, "RemoteException trying to handle StrictMode violation", e);
                } finally {
                    // Restore the policy.
                    setThreadBlockingPolicy(savedPolicy);
                    setThreadPolicy(savedPolicy);
                }
            }

@@ -487,7 +519,7 @@ public final class StrictMode {
        new LogStackTrace().printStackTrace(new PrintWriter(sw));
        String ourStack = sw.toString();

        int policyMask = getThreadBlockingPolicy();
        int policyMask = getThreadPolicy();
        boolean currentlyGathering = (policyMask & PENALTY_GATHER) != 0;

        int numViolations = p.readInt();