You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NanoDroid/Full/system/xbin/nanodroid-perm

55 lines
1.4 KiB
Bash

#!/system/bin/sh
# Permissions
perm_fake="android.permission.FAKE_PACKAGE_SIGNATURE"
perm_calr="android.permission.READ_CALENDAR"
perm_calw="android.permission.WRITE_CALENDAR"
perm_conr="android.permission.READ_CONTACTS"
perm_conw="android.permission.WRITE_CONTACTS"
perm_gacc="android.permission.GET_ACCOUNTS"
# Packages
microG="com.google.android.gms"
PlayStore="com.android.vending"
GCalSync="com.google.android.syncadapters.calendar"
GConSync="com.google.android.syncadapters.contacts"
check_package () {
[[ $(grep "^${1} " /data/system/packages.list) ]] && return 0 || return 1
}
check_permission () {
[[ $(dumpsys package ${1} | grep -Eo "^[ ]+${2}: granted=true") ]] && return 0 || return 1
}
grant_permission () {
pm grant ${1} ${2} 2>/dev/null
}
permissions () {
if check_package ${1}; then
echo "package ${1} found"
if ! check_permission ${1} ${2}; then
grant_permission ${1} ${2} && \
echo "permission ${2} granted" || \
echo "failed to grant permission ${2}"
else echo "already has permission ${2}"
fi
fi
}
[[ $(whoami) != "root" ]] && error "not running as root"
# microG and Play Store
permissions ${microG} ${perm_fake}
permissions ${PlayStore} ${perm_fake}
# Google Calendar Sync
permissions ${GCalSync} ${perm_calr}
permissions ${GCalSync} ${perm_calw}
# Google Contacts Sync
permissions ${GConSync} ${perm_conr}
permissions ${GConSync} ${perm_conw}
permissions ${GConSync} ${perm_gacc}