call_usermodehelper 不会执行“&> file”命令

call_usermodehelper 不会执行“&> file”命令
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环境仅供参考)

相关内容