下面的是实例内容
目标是把OpenRecovery Script输入的内容进行修改
当有下面的输入:(作用是安装/emmc目录下面的update-signed.zip 刷机包)
install /emmc/update-signed.zip
但是twrp 中只定义了/sdcard作为内存卡,面没有定义/emmc所以就要进行目标的更换了。
用到的代码如下所示
/*
* 修改给定的字符串中相应的内容
* 例如 '/usr/bin' -> '/home/bin'
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/stat.h>
#include <dirent.h> /*方法如下:
* 先得到字符串的长度,用strlen
* 再对字符串的内容进行比较,当找到相应的内容后,就进行替换
*/
int main(int argc, char *argv[]) {
char str[] = "/emmc/backup/update-signed.zip";
char str_a[] = "/sd-ext/backup/update-signed.zip";
char change_file_name[]; char tmp[];
int str_size = ;
int index = ;
int i = ;
str_size = strlen(str);
if ( == strncmp(str,"/emmc",) && str_size > ) {
memset(tmp, '\0', ); //对tmp[255] 进行清零
for (index = , i = ; str[index] != '\0'; index++, i++) {
tmp[i] = str[index];
}
printf(" '/emmc/backup/update-signed.zip' -> %s\n",tmp);
snprintf(change_file_name,,"%s", "/sdcard");
strcat(change_file_name, tmp);
printf("filename is : -> %s \n", change_file_name);
} if ( == strncmp(str_a, "/sd-ext", ) && strlen(str_a) > ) {
memset(tmp, '\0', );
for (index = , i = ; str_a[index] != '\0'; index++, i++) {
tmp[i] = str_a[index];
}
printf(" '/sd-ext/backup/update-signed.zip' -> %s \n", tmp);
snprintf(change_file_name, , "%s", "/internal_sd");
strcat(change_file_name, tmp);
printf("Filename is : -> %s\n", change_file_name);
} return ;
}