Copying a file from withing a apk to the internal storage

后端 未结 2 1738
感情败类
感情败类 2020-12-20 07:21

I would like to push a text document from the apk into the /system directory (Yes its a app for rooted users) and was wondering how i would do this :) My txt file is in the

2条回答
  •  北荒
    北荒 (楼主)
    2020-12-20 07:57

    Place the text file in your project's assets directory and then extract it to the filesystem with code like the one in the following thread: How to copy files from 'assets' folder to sdcard?

    EDIT: Here is some code that I use. For sourceFileName, pass in the name of the assets file relative to the assets folder (e.g. if you have myFile.txt in the assets folder, pass myFile.txt). For the destination file, pass a full path (e.g. /data/data/com.mycompany/mypackage/myFile.txt). context is the current activity (e.g. MyActivity.this).

    private boolean copyFile(Context context, String sourceFileName, String destFileName)
    {
        AssetManager assetManager = context.getAssets();
    
        File destFile = new File(destFileName);
    
        File destParentDir = destFile.getParentFile();
        destParentDir.mkdir();
    
        InputStream in = null;
        OutputStream out = null;
        try
        {
            in = assetManager.open(sourceFileName);
            out = new FileOutputStream(destFile);
    
            byte[] buffer = new byte[1024];
            int read;
            while ((read = in.read(buffer)) != -1)
            {
                out.write(buffer, 0, read);
            }
            in.close();
            in = null;
            out.flush();
            out.close();
            out = null;
    
            return true;
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    
        return false;
    }
    

    EDIT2: Turns out that the /system partition is mounted as read-only, even on rooted devices. This may help: Android: how to mount filesystem in RW from within my APK? (rooted, of course)

提交回复
热议问题