diff --git a/F-Droid/res/layout-v11/app_permission_item.xml b/F-Droid/res/layout-v11/app_permission_item.xml
new file mode 100644
index 000000000..b5aab370d
--- /dev/null
+++ b/F-Droid/res/layout-v11/app_permission_item.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<!--
+  Defines the layout of a single permission item.
+-->
+
+<view class="org.fdroid.fdroid.installer.AppSecurityPermissions$PermissionItemView"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="horizontal"
+    android:background="?android:attr/selectableItemBackground">
+
+    <ImageView
+        android:id="@+id/perm_icon"
+        android:layout_width="24dp"
+        android:layout_height="24dp"
+        android:layout_marginStart="16dp"
+        android:layout_marginEnd="8dp"
+        android:scaleType="fitCenter" />
+
+    <ImageView
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:background="?android:attr/dividerVertical" />
+
+    <TextView
+        android:id="@+id/perm_name"
+        android:textAppearance="?android:attr/textAppearanceSmall"
+        android:textSize="16sp"
+        android:layout_marginStart="8dp"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="top|left" />
+
+</view>
diff --git a/F-Droid/res/layout/app_permission_item.xml b/F-Droid/res/layout/app_permission_item.xml
index b5aab370d..4d555c216 100644
--- a/F-Droid/res/layout/app_permission_item.xml
+++ b/F-Droid/res/layout/app_permission_item.xml
@@ -22,8 +22,7 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:orientation="horizontal"
-    android:background="?android:attr/selectableItemBackground">
+    android:orientation="horizontal">
 
     <ImageView
         android:id="@+id/perm_icon"
@@ -35,8 +34,7 @@
 
     <ImageView
         android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:background="?android:attr/dividerVertical" />
+        android:layout_height="match_parent" />
 
     <TextView
         android:id="@+id/perm_name"
diff --git a/F-Droid/src/org/fdroid/fdroid/installer/AppSecurityPermissions.java b/F-Droid/src/org/fdroid/fdroid/installer/AppSecurityPermissions.java
index f3c18ab5b..b22eced76 100644
--- a/F-Droid/src/org/fdroid/fdroid/installer/AppSecurityPermissions.java
+++ b/F-Droid/src/org/fdroid/fdroid/installer/AppSecurityPermissions.java
@@ -111,6 +111,16 @@ public class AppSecurityPermissions {
             }
             return null;
         }
+
+        public int flags() {
+            if (Build.VERSION.SDK_INT < 17) return 0;
+            return flags;
+        }
+
+        public int priority() {
+            if (Build.VERSION.SDK_INT < 17) return 0;
+            return priority;
+        }
     }
 
     private static class MyPermissionInfo extends PermissionInfo {
@@ -411,6 +421,7 @@ public class AppSecurityPermissions {
     private PermissionItemView getPermissionItemView(MyPermissionGroupInfo grp,
             MyPermissionInfo perm, boolean first, CharSequence newPermPrefix) {
         PermissionItemView permView = (PermissionItemView) mInflater.inflate(
+                Build.VERSION.SDK_INT >= 17 &&
                 (perm.flags & PermissionInfo.FLAG_COSTS_MONEY) != 0
                 ? R.layout.app_permission_item_money : R.layout.app_permission_item,
                 null);
@@ -434,7 +445,8 @@ public class AppSecurityPermissions {
 
         // Dangerous and normal permissions are always shown to the user if the permission
         // is required, or it was previously granted
-        if ((isNormal || isDangerous) && (isRequired || wasGranted || isGranted)) {
+        if ((isNormal || isDangerous) && (isRequired || wasGranted || isGranted ||
+            Build.VERSION.SDK_INT < 16)) {
             return true;
         }
 
@@ -452,11 +464,11 @@ public class AppSecurityPermissions {
         PermissionGroupInfoComparator() {
         }
         public final int compare(MyPermissionGroupInfo a, MyPermissionGroupInfo b) {
-            if (((a.flags^b.flags)&PermissionGroupInfo.FLAG_PERSONAL_INFO) != 0) {
-                return ((a.flags&PermissionGroupInfo.FLAG_PERSONAL_INFO) != 0) ? -1 : 1;
+            if (((a.flags()^b.flags())&PermissionGroupInfo.FLAG_PERSONAL_INFO) != 0) {
+                return ((a.flags()&PermissionGroupInfo.FLAG_PERSONAL_INFO) != 0) ? -1 : 1;
             }
-            if (a.priority != b.priority) {
-                return a.priority > b.priority ? -1 : 1;
+            if (a.priority() != b.priority()) {
+                return a.priority() > b.priority() ? -1 : 1;
             }
             return sCollator.compare(a.mLabel, b.mLabel);
         }
@@ -497,7 +509,7 @@ public class AppSecurityPermissions {
                     if (pInfo.mNew) {
                         addPermToList(group.mNewPermissions, pInfo);
                     }
-                    if ((group.flags&PermissionGroupInfo.FLAG_PERSONAL_INFO) != 0) {
+                    if ((group.flags()&PermissionGroupInfo.FLAG_PERSONAL_INFO) != 0) {
                         addPermToList(group.mPersonalPermissions, pInfo);
                     } else {
                         addPermToList(group.mDevicePermissions, pInfo);