Merge "Show a warning toast/dialog when an app uses hidden APIs" am: fbef950d95
am: d750a7c68c
Change-Id: I9b62537d76e4ceb7ce03ca4de5ccf5a182c4439c
This commit is contained in:
@@ -126,6 +126,8 @@ import com.android.internal.app.WindowDecorActionBar;
|
||||
import com.android.internal.policy.DecorView;
|
||||
import com.android.internal.policy.PhoneWindow;
|
||||
|
||||
import dalvik.system.VMRuntime;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
import java.lang.annotation.Retention;
|
||||
@@ -7035,11 +7037,12 @@ public class Activity extends ContextThemeWrapper
|
||||
mFragments.dispatchStart();
|
||||
mFragments.reportLoaderStart();
|
||||
|
||||
// This property is set for all builds except final release
|
||||
boolean isDlwarningEnabled = SystemProperties.getInt("ro.bionic.ld.warning", 0) == 1;
|
||||
boolean isAppDebuggable =
|
||||
(mApplication.getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
|
||||
|
||||
// This property is set for all builds except final release
|
||||
boolean isDlwarningEnabled = SystemProperties.getInt("ro.bionic.ld.warning", 0) == 1;
|
||||
|
||||
if (isAppDebuggable || isDlwarningEnabled) {
|
||||
String dlwarning = getDlWarning();
|
||||
if (dlwarning != null) {
|
||||
@@ -7060,6 +7063,28 @@ public class Activity extends ContextThemeWrapper
|
||||
}
|
||||
}
|
||||
|
||||
// We might disable this for final builds.
|
||||
boolean isApiWarningEnabled = true;
|
||||
|
||||
if (isAppDebuggable || isApiWarningEnabled) {
|
||||
if (VMRuntime.getRuntime().hasUsedHiddenApi()) {
|
||||
String appName = getApplicationInfo().loadLabel(getPackageManager())
|
||||
.toString();
|
||||
String warning = "Detected problems with API compatiblity\n"
|
||||
+ "(please consult log for detail)";
|
||||
if (isAppDebuggable) {
|
||||
new AlertDialog.Builder(this)
|
||||
.setTitle(appName)
|
||||
.setMessage(warning)
|
||||
.setPositiveButton(android.R.string.ok, null)
|
||||
.setCancelable(false)
|
||||
.show();
|
||||
} else {
|
||||
Toast.makeText(this, appName + "\n" + warning, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mActivityTransitionState.enterReady(this);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user