CHIZI-0618 / box4magisk

Use sing-box, clash, v2ray, xray tunnel proxy on Android devices.
GNU General Public License v3.0
920 stars 104 forks source link

Repair application does not exist, resulting in expr Unexpected end o… #32

Closed xireiki closed 11 months ago

xireiki commented 11 months ago

修复 expr: Unexpected end of input 错误

31

原因

当 package 为一个不存在的应用时(比如 com.undefined.app),$(awk '{if($1=="'${package}'"){print $2}}' /data/system/packages.list) 返回空值,导致整体解析为uid_list[0]=$(expr 0 * "100000" + )(假设用户为 0,uid_list 目前为空),出现错误

修复

 uid_list[${#uid_list[@]}]=$(expr ${user} \* "100000" + $(awk '{if($1=="'${package}'"){print $2}}' /data/system/packages.list))

改为

uid="$(awk '{if($1=="'${package}'"){print $2}}' /data/system/packages.list)"
if [[ -n "${uid}" ]]; then
  uid_list[${#uid_list[@]}]=$(expr ${user} \* "100000" + ${uid})
fi