aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xrootdir/system/bin/credmgrfirstboot.sh29
1 files changed, 22 insertions, 7 deletions
diff --git a/rootdir/system/bin/credmgrfirstboot.sh b/rootdir/system/bin/credmgrfirstboot.sh
index 9d9c837..4c21a83 100755
--- a/rootdir/system/bin/credmgrfirstboot.sh
+++ b/rootdir/system/bin/credmgrfirstboot.sh
@@ -1,9 +1,22 @@
#!/system/bin/sh
CREDFOLDER=/data/credmgr
+# simple error function
+F_ERR(){
+ ERR="$1"
+ MSG="$2"
+ if [ $ERR -ne 0 ];then
+ system/bin/toybox echo "CREDINIT: $MSG failed!" >> /dev/kmsg
+ exit $ERR
+ else
+ system/bin/toybox echo "CREDINIT: $MSG finished successfully" >> /dev/kmsg
+ fi
+}
+
# If credmgrd data doesn't match our
+CREDMGRCNT=$(find $CREDFOLDER -group credmgr_client -type f -name "credmgr.db" | wc -l )
-if [ $(find $CREDFOLDER -group credmgr_client -type f -name "credmgr.db" | wc -l ) -eq 0 ]; then
+if [ "$CREDMGRCNT" == "0" ]; then
# If /data/credmgr exist remove it
/system/bin/logwrapper /system/bin/toybox echo "CREDINIT: Dont match"
if [ -d "$CREDFOLDER" ]; then
@@ -12,16 +25,18 @@ if [ $(find $CREDFOLDER -group credmgr_client -type f -name "credmgr.db" | wc -l
fi
# Put binary into /cache
/system/bin/logwrapper mkdir $CREDFOLDER
+ F_ERR $? "mkdir $CREDFOLDER"
/system/bin/logwrapper chown system:credmgr_client $CREDFOLDER
+ F_ERR $? "chown $CREDFOLDER"
/system/bin/logwrapper chcon u:object_r:credmgrd_data_file:s0 $CREDFOLDER
+ F_ERR $? "chcon $CREDFOLDER"
/system/bin/logwrapper /system/bin/toybox echo "CREDINIT: cp initial file"
/system/bin/logwrapper cp -v /system/vendor/CredentialManagerData /cache/CredentialManagerData
-fi
-
-if [ $? -eq 0 ]; then
- # Tell init we are ready
- /system/bin/setprop sys.credmgrdready true
+ F_ERR $? "copy CredentialManagerData"
else
- /system/bin/toybox echo "CREDINIT: Something goes wrong at credmgrd init!"
+ F_ERR 0 "credmgr found already. no preparation required."
fi
+# Tell init we are ready
+/system/bin/setprop sys.credmgrdready true
+F_ERR $? "setting property"