diff --git a/core/java/android/view/inputmethod/InputMethodInfo.java b/core/java/android/view/inputmethod/InputMethodInfo.java
index ec2c05e..d97f8af 100644
--- a/core/java/android/view/inputmethod/InputMethodInfo.java
+++ b/core/java/android/view/inputmethod/InputMethodInfo.java
@@ -429,15 +429,15 @@
     }
 
     /**
-     * @return {@code true} if the IME is marked to be Encryption-Aware.
+     * @return {@code true} if the {@link android.inputmethodservice.InputMethodService} is marked
+     * to be Encryption-Aware.
      * @hide
      */
     public boolean isEncryptionAware() {
-        if (mService == null || mService.serviceInfo == null ||
-                mService.serviceInfo.applicationInfo == null) {
+        if (mService == null || mService.serviceInfo == null) {
             return false;
         }
-        return mService.serviceInfo.applicationInfo.isEncryptionAware();
+        return mService.serviceInfo.encryptionAware;
     }
 
     public void dump(Printer pw, String prefix) {
@@ -446,13 +446,6 @@
                 + " mSupportsSwitchingToNextInputMethod=" + mSupportsSwitchingToNextInputMethod);
         pw.println(prefix + "mIsDefaultResId=0x"
                 + Integer.toHexString(mIsDefaultResId));
-        if (mService != null && mService.serviceInfo != null &&
-                mService.serviceInfo.applicationInfo != null) {
-            pw.println(" encryptionAware=" +
-                    mService.serviceInfo.applicationInfo.isEncryptionAware());
-        } else {
-            pw.println(" encryptionAware=unknown");
-        }
         pw.println(prefix + "Service:");
         mService.dump(pw, prefix + "  ");
     }
