call_usermodehelperは "&>ファイル"コマンドを実行しません。

call_usermodehelperは "&>ファイル"コマンドを実行しません。
static int sony_get_bt_hostaddr(struct sony_sc *sc)
{
    int ret;

    char * envp[] = { "HOME=/", NULL };

    char * argv[] = { "system/bin/sh", "-c", "su", "'/vendor/bin/btnvtool -x'", "&>", "/sdcard/bthostaddr.txt", NULL };
    
        ret = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_EXEC);
    
        printk("sony_get_bt_hostaddr %x", ret);

        return 0;
}

shコマンドで出力を取得しようとすると、call_usermodehelper()戻り値が0として返されるのは正しい結果であると推定されますが、単に停止しているように見え、"'/vendor/bin/btnvtool -x'"argvの最後の部分が"&>", "/sdcard/bthostaddr.txt"まったく実行されず、txtファイルが見つかりません。/sdcard/bthostaddr.txt

端末にコマンドを入力するとまったく問題はなく、system/bin/sh -c su '/vendor/bin/btnvtool -x' &> /sdcard/bthostaddr.txtファイルが生成され結果が表示btnvtool -xされます。

(生成されたファイルから結果が' '必要/vendor/bin/btnvtool -xまたは取得されないため、コードから結果を模倣します。)

私のコードに実際にどんな問題がありますか?それとも、ファイルに0 / storesの代わりに正確な出力を返す他の方法はありますか?

(ps:コードは参照用にのみAndroid環境で実行されます。)

関連情報