スクリプトはいくつかのコマンドを介してファイルパスを取得し、mountコマンドを実行します。
pkgname= #defined here
su -c "apkfile= #defined here &&\
stockapp=$(pm path $pkgname | sed -n '/base/s/package://p') &&\
mount -o bind $apkfile \$stockapp"
apkfileパスには特殊文字は含まれていませんが、ストックアプリケーションパスには拡張され、文字通り処理されないため、mountコマンドで実行できない文字が含まれています。変数を展開してから一重引用符を入れたいです。
だからコマンドは次のようになります
mount -o /data/adb/path/apkname.apk '/data/app/~~$JwIEhjduwUE==com.google.android.youtube/base.apk'
答え1
拡張変数とコマンド置換を一重引用符で囲みます。
apkfile= #defined here
pkgname= #defined here
su -c 'mount -o bind '\'"$apkfile"\'' '\'$(pm path "$pkgname" | sed -n '/base/s/package://p')\'