如何在已获取root权限的Android设备中安装自定义字体到\system\fonts目录?

4

我将要开发一个安卓应用程序,它作为字体安装程序使用。我的应用程序的目标是那些没有所需字体的root设备,并且它会从war\fonts\文件夹安装到\system\fonts文件夹中。需要帮助。

1个回答

3

尝试这个:

首先,为了测试这段代码,您必须将自定义字体复制到 /sdcard/ 目录下。我不知道您是要把它们放在 assets 中还是从互联网上下载。无论如何,为了进行测试,请使用以下命令行:

cd /<path_to_sdk>/platforms-tools/

./adb root

./adb remount

./adb push sample.ttf /sdcard/

现在看代码:

此代码只执行一堆命令。请注意,重要的部分是这些命令会将默认的安卓字体更改为您自己的字体。请务必备份。

        Process process;
        try {
            process = Runtime.getRuntime().exec("mount -o remount /dev/mtdblock4 /system");
            process = Runtime.getRuntime().exec("cat /system/fonts/DroidSansFallback.ttf  >> /sdcard/DroidSansFallback.ttf");
            process = Runtime.getRuntime().exec("cat /sdcard/sample.ttf >> /system/fonts/DroidSansFallback.ttf");
            process = Runtime.getRuntime().exec("mount -o ro,remount /dev/mtdblock4 /system");
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
        } catch (IOException e) {
            e.printStackTrace();
        }

此外,你必须在完成这个操作后重新启动你的设备。

我建议使用mount -o rw,remount /system,不需要加上/dev/mtdblock4这个参数,因为它并非必需且在不同的手机上可能会有所不同。在我的手机(Motorola Droid 4)上,它是/dev/block/mmcblk1p20。因此,请省略该参数,这并非必要但可能会引起问题。 - Dakkaron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接