Java Code Examples for android.os.FileUtils#setPermissions()

The following examples show how to use android.os.FileUtils#setPermissions() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ContextImpl.java    From AndroidComponentPlugin with Apache License 2.0 6 votes vote down vote up
@SuppressWarnings("deprecation")
static void setFilePermissionsFromMode(String name, int mode,
        int extraPermissions) {
    int perms = FileUtils.S_IRUSR|FileUtils.S_IWUSR
        |FileUtils.S_IRGRP|FileUtils.S_IWGRP
        |extraPermissions;
    if ((mode&MODE_WORLD_READABLE) != 0) {
        perms |= FileUtils.S_IROTH;
    }
    if ((mode&MODE_WORLD_WRITEABLE) != 0) {
        perms |= FileUtils.S_IWOTH;
    }
    if (DEBUG) {
        Log.i(TAG, "File " + name + ": mode=0x" + Integer.toHexString(mode)
              + ", perms=0x" + Integer.toHexString(perms));
    }
    FileUtils.setPermissions(name, perms, -1, -1);
}
 
Example 2
Source File: UserManagerService.java    From android_9.0.0_r45 with Apache License 2.0 6 votes vote down vote up
private UserManagerService(Context context, PackageManagerService pm,
        UserDataPreparer userDataPreparer, Object packagesLock, File dataDir) {
    mContext = context;
    mPm = pm;
    mPackagesLock = packagesLock;
    mHandler = new MainHandler();
    mUserDataPreparer = userDataPreparer;
    synchronized (mPackagesLock) {
        mUsersDir = new File(dataDir, USER_INFO_DIR);
        mUsersDir.mkdirs();
        // Make zeroth user directory, for services to migrate their files to that location
        File userZeroDir = new File(mUsersDir, String.valueOf(UserHandle.USER_SYSTEM));
        userZeroDir.mkdirs();
        FileUtils.setPermissions(mUsersDir.toString(),
                FileUtils.S_IRWXU | FileUtils.S_IRWXG | FileUtils.S_IROTH | FileUtils.S_IXOTH,
                -1, -1);
        mUserListFile = new File(mUsersDir, USER_LIST_FILENAME);
        initDefaultGuestRestrictions();
        readUserListLP();
        sInstance = this;
    }
    mLocalService = new LocalService();
    LocalServices.addService(UserManagerInternal.class, mLocalService);
    mLockPatternUtils = new LockPatternUtils(mContext);
    mUserStates.put(UserHandle.USER_SYSTEM, UserState.STATE_BOOTING);
}
 
Example 3
Source File: ContextImpl.java    From AndroidComponentPlugin with Apache License 2.0 6 votes vote down vote up
@SuppressWarnings("deprecation")
static void setFilePermissionsFromMode(String name, int mode,
        int extraPermissions) {
    int perms = FileUtils.S_IRUSR|FileUtils.S_IWUSR
        |FileUtils.S_IRGRP|FileUtils.S_IWGRP
        |extraPermissions;
    if ((mode&MODE_WORLD_READABLE) != 0) {
        perms |= FileUtils.S_IROTH;
    }
    if ((mode&MODE_WORLD_WRITEABLE) != 0) {
        perms |= FileUtils.S_IWOTH;
    }
    if (DEBUG) {
        Log.i(TAG, "File " + name + ": mode=0x" + Integer.toHexString(mode)
              + ", perms=0x" + Integer.toHexString(perms));
    }
    FileUtils.setPermissions(name, perms, -1, -1);
}
 
Example 4
Source File: ContextImpl.java    From AndroidComponentPlugin with Apache License 2.0 6 votes vote down vote up
static void setFilePermissionsFromMode(String name, int mode,
        int extraPermissions) {
    int perms = FileUtils.S_IRUSR|FileUtils.S_IWUSR
        |FileUtils.S_IRGRP|FileUtils.S_IWGRP
        |extraPermissions;
    if ((mode&MODE_WORLD_READABLE) != 0) {
        perms |= FileUtils.S_IROTH;
    }
    if ((mode&MODE_WORLD_WRITEABLE) != 0) {
        perms |= FileUtils.S_IWOTH;
    }
    if (DEBUG) {
        Log.i(TAG, "File " + name + ": mode=0x" + Integer.toHexString(mode)
              + ", perms=0x" + Integer.toHexString(perms));
    }
    FileUtils.setPermissions(name, perms, -1, -1);
}
 
Example 5
Source File: ContextImpl.java    From AndroidComponentPlugin with Apache License 2.0 6 votes vote down vote up
static void setFilePermissionsFromMode(String name, int mode,
        int extraPermissions) {
    int perms = FileUtils.S_IRUSR|FileUtils.S_IWUSR
        |FileUtils.S_IRGRP|FileUtils.S_IWGRP
        |extraPermissions;
    if ((mode&MODE_WORLD_READABLE) != 0) {
        perms |= FileUtils.S_IROTH;
    }
    if ((mode&MODE_WORLD_WRITEABLE) != 0) {
        perms |= FileUtils.S_IWOTH;
    }
    if (DEBUG) {
        Log.i(TAG, "File " + name + ": mode=0x" + Integer.toHexString(mode)
              + ", perms=0x" + Integer.toHexString(perms));
    }
    FileUtils.setPermissions(name, perms, -1, -1);
}
 
Example 6
Source File: ContextImpl.java    From android_9.0.0_r45 with Apache License 2.0 6 votes vote down vote up
@SuppressWarnings("deprecation")
static void setFilePermissionsFromMode(String name, int mode,
        int extraPermissions) {
    int perms = FileUtils.S_IRUSR|FileUtils.S_IWUSR
        |FileUtils.S_IRGRP|FileUtils.S_IWGRP
        |extraPermissions;
    if ((mode&MODE_WORLD_READABLE) != 0) {
        perms |= FileUtils.S_IROTH;
    }
    if ((mode&MODE_WORLD_WRITEABLE) != 0) {
        perms |= FileUtils.S_IWOTH;
    }
    if (DEBUG) {
        Log.i(TAG, "File " + name + ": mode=0x" + Integer.toHexString(mode)
              + ", perms=0x" + Integer.toHexString(perms));
    }
    FileUtils.setPermissions(name, perms, -1, -1);
}
 
Example 7
Source File: PackageManagerServiceUtils.java    From android_9.0.0_r45 with Apache License 2.0 6 votes vote down vote up
public static void logCriticalInfo(int priority, String msg) {
    Slog.println(priority, TAG, msg);
    EventLogTags.writePmCriticalInfo(msg);
    try {
        File fname = getSettingsProblemFile();
        FileOutputStream out = new FileOutputStream(fname, true);
        PrintWriter pw = new FastPrintWriter(out);
        SimpleDateFormat formatter = new SimpleDateFormat();
        String dateString = formatter.format(new Date(System.currentTimeMillis()));
        pw.println(dateString + ": " + msg);
        pw.close();
        FileUtils.setPermissions(
                fname.toString(),
                FileUtils.S_IRWXU|FileUtils.S_IRWXG|FileUtils.S_IROTH,
                -1, -1);
    } catch (java.io.IOException e) {
    }
}
 
Example 8
Source File: ContextImpl.java    From AndroidComponentPlugin with Apache License 2.0 6 votes vote down vote up
static void setFilePermissionsFromMode(String name, int mode,
        int extraPermissions) {
    int perms = FileUtils.S_IRUSR|FileUtils.S_IWUSR
        |FileUtils.S_IRGRP|FileUtils.S_IWGRP
        |extraPermissions;
    if ((mode&MODE_WORLD_READABLE) != 0) {
        perms |= FileUtils.S_IROTH;
    }
    if ((mode&MODE_WORLD_WRITEABLE) != 0) {
        perms |= FileUtils.S_IWOTH;
    }
    if (DEBUG) {
        Log.i(TAG, "File " + name + ": mode=0x" + Integer.toHexString(mode)
              + ", perms=0x" + Integer.toHexString(perms));
    }
    FileUtils.setPermissions(name, perms, -1, -1);
}
 
Example 9
Source File: ContextImpl.java    From AndroidComponentPlugin with Apache License 2.0 6 votes vote down vote up
private static File createFilesDirLocked(File file) {
    if (!file.exists()) {
        if (!file.mkdirs()) {
            if (file.exists()) {
                // spurious failure; probably racing with another process for this app
                return file;
            }
            Log.w(TAG, "Unable to create files subdir " + file.getPath());
            return null;
        }
        FileUtils.setPermissions(
                file.getPath(),
                FileUtils.S_IRWXU|FileUtils.S_IRWXG|FileUtils.S_IXOTH,
                -1, -1);
    }
    return file;
}
 
Example 10
Source File: ContextImpl.java    From AndroidComponentPlugin with Apache License 2.0 6 votes vote down vote up
static void setFilePermissionsFromMode(String name, int mode,
        int extraPermissions) {
    int perms = FileUtils.S_IRUSR|FileUtils.S_IWUSR
        |FileUtils.S_IRGRP|FileUtils.S_IWGRP
        |extraPermissions;
    if ((mode&MODE_WORLD_READABLE) != 0) {
        perms |= FileUtils.S_IROTH;
    }
    if ((mode&MODE_WORLD_WRITEABLE) != 0) {
        perms |= FileUtils.S_IWOTH;
    }
    if (DEBUG) {
        Log.i(TAG, "File " + name + ": mode=0x" + Integer.toHexString(mode)
              + ", perms=0x" + Integer.toHexString(perms));
    }
    FileUtils.setPermissions(name, perms, -1, -1);
}
 
Example 11
Source File: ContextImpl.java    From AndroidComponentPlugin with Apache License 2.0 6 votes vote down vote up
static void setFilePermissionsFromMode(String name, int mode,
        int extraPermissions) {
    int perms = FileUtils.S_IRUSR|FileUtils.S_IWUSR
        |FileUtils.S_IRGRP|FileUtils.S_IWGRP
        |extraPermissions;
    if ((mode&MODE_WORLD_READABLE) != 0) {
        perms |= FileUtils.S_IROTH;
    }
    if ((mode&MODE_WORLD_WRITEABLE) != 0) {
        perms |= FileUtils.S_IWOTH;
    }
    if (DEBUG) {
        Log.i(TAG, "File " + name + ": mode=0x" + Integer.toHexString(mode)
              + ", perms=0x" + Integer.toHexString(perms));
    }
    FileUtils.setPermissions(name, perms, -1, -1);
}
 
Example 12
Source File: ContextImpl.java    From AndroidComponentPlugin with Apache License 2.0 6 votes vote down vote up
@SuppressWarnings("deprecation")
static void setFilePermissionsFromMode(String name, int mode,
        int extraPermissions) {
    int perms = FileUtils.S_IRUSR|FileUtils.S_IWUSR
        |FileUtils.S_IRGRP|FileUtils.S_IWGRP
        |extraPermissions;
    if ((mode&MODE_WORLD_READABLE) != 0) {
        perms |= FileUtils.S_IROTH;
    }
    if ((mode&MODE_WORLD_WRITEABLE) != 0) {
        perms |= FileUtils.S_IWOTH;
    }
    if (DEBUG) {
        Log.i(TAG, "File " + name + ": mode=0x" + Integer.toHexString(mode)
              + ", perms=0x" + Integer.toHexString(perms));
    }
    FileUtils.setPermissions(name, perms, -1, -1);
}
 
Example 13
Source File: SettingsBackupAgent.java    From Study_Android_Demo with Apache License 2.0 5 votes vote down vote up
@Override
public void run() {
    if (restoredSupplicantData != null || restoredWifiConfigFile != null) {
        if (DEBUG_BACKUP) {
            Log.v(TAG, "Starting deferred restore of wifi data");
        }
        final ContentResolver cr = getContentResolver();
        final int scanAlways = Settings.Global.getInt(cr,
                Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0);
        final int retainedWifiState = enableWifi(false);
        if (scanAlways != 0) {
            Settings.Global.putInt(cr,
                    Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0);
        }
        // !!! Give the wifi stack a moment to quiesce
        try { Thread.sleep(1500); } catch (InterruptedException e) {}
        if (restoredSupplicantData != null) {
            restoreWifiSupplicant(FILE_WIFI_SUPPLICANT,
                    restoredSupplicantData, restoredSupplicantData.length);
            FileUtils.setPermissions(FILE_WIFI_SUPPLICANT,
                    FileUtils.S_IRUSR | FileUtils.S_IWUSR |
                    FileUtils.S_IRGRP | FileUtils.S_IWGRP,
                    Process.myUid(), Process.WIFI_UID);
        }
        if (restoredWifiConfigFile != null) {
            restoreFileData(mWifiConfigFile,
                    restoredWifiConfigFile, restoredWifiConfigFile.length);
        }
        // restore the previous WIFI state.
        if (scanAlways != 0) {
            Settings.Global.putInt(cr,
                    Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, scanAlways);
        }
        enableWifi(retainedWifiState == WifiManager.WIFI_STATE_ENABLED ||
                retainedWifiState == WifiManager.WIFI_STATE_ENABLING);
    }
}
 
Example 14
Source File: UserManagerService.java    From android_9.0.0_r45 with Apache License 2.0 5 votes vote down vote up
private void writeBitmapLP(UserInfo info, Bitmap bitmap) {
    try {
        File dir = new File(mUsersDir, Integer.toString(info.id));
        File file = new File(dir, USER_PHOTO_FILENAME);
        File tmp = new File(dir, USER_PHOTO_FILENAME_TMP);
        if (!dir.exists()) {
            dir.mkdir();
            FileUtils.setPermissions(
                    dir.getPath(),
                    FileUtils.S_IRWXU|FileUtils.S_IRWXG|FileUtils.S_IXOTH,
                    -1, -1);
        }
        FileOutputStream os;
        if (bitmap.compress(Bitmap.CompressFormat.PNG, 100, os = new FileOutputStream(tmp))
                && tmp.renameTo(file) && SELinux.restorecon(file)) {
            info.iconPath = file.getAbsolutePath();
        }
        try {
            os.close();
        } catch (IOException ioe) {
            // What the ... !
        }
        tmp.delete();
    } catch (FileNotFoundException e) {
        Slog.w(LOG_TAG, "Error setting photo for user ", e);
    }
}
 
Example 15
Source File: WallpaperManagerService.java    From android_9.0.0_r45 with Apache License 2.0 5 votes vote down vote up
ParcelFileDescriptor updateWallpaperBitmapLocked(String name, WallpaperData wallpaper,
        Bundle extras) {
    if (name == null) name = "";
    try {
        File dir = getWallpaperDir(wallpaper.userId);
        if (!dir.exists()) {
            dir.mkdir();
            FileUtils.setPermissions(
                    dir.getPath(),
                    FileUtils.S_IRWXU|FileUtils.S_IRWXG|FileUtils.S_IXOTH,
                    -1, -1);
        }
        ParcelFileDescriptor fd = ParcelFileDescriptor.open(wallpaper.wallpaperFile,
                MODE_CREATE|MODE_READ_WRITE|MODE_TRUNCATE);
        if (!SELinux.restorecon(wallpaper.wallpaperFile)) {
            return null;
        }
        wallpaper.name = name;
        wallpaper.wallpaperId = makeWallpaperIdLocked();
        if (extras != null) {
            extras.putInt(WallpaperManager.EXTRA_NEW_WALLPAPER_ID, wallpaper.wallpaperId);
        }
        // Nullify field to require new computation
        wallpaper.primaryColors = null;
        if (DEBUG) {
            Slog.v(TAG, "updateWallpaperBitmapLocked() : id=" + wallpaper.wallpaperId
                    + " name=" + name + " file=" + wallpaper.wallpaperFile.getName());
        }
        return fd;
    } catch (FileNotFoundException e) {
        Slog.w(TAG, "Error setting wallpaper", e);
    }
    return null;
}
 
Example 16
Source File: SQLiteOpenHelper.java    From android_9.0.0_r45 with Apache License 2.0 4 votes vote down vote up
private static void setFilePermissionsForDb(String dbPath) {
    int perms = FileUtils.S_IRUSR | FileUtils.S_IWUSR | FileUtils.S_IRGRP | FileUtils.S_IWGRP;
    FileUtils.setPermissions(dbPath, perms, -1, -1);
}
 
Example 17
Source File: SettingsBackupAgent.java    From Study_Android_Demo with Apache License 2.0 4 votes vote down vote up
@Override
public void onRestoreFile(ParcelFileDescriptor data, long size,
        int type, String domain, String relpath, long mode, long mtime)
        throws IOException {
    if (DEBUG_BACKUP) Log.d(TAG, "onRestoreFile() invoked");
    // Our data is actually a blob of flattened settings data identical to that
    // produced during incremental backups.  Just unpack and apply it all in
    // turn.
    FileInputStream instream = new FileInputStream(data.getFileDescriptor());
    DataInputStream in = new DataInputStream(instream);

    int version = in.readInt();
    if (DEBUG_BACKUP) Log.d(TAG, "Flattened data version " + version);
    if (version <= FULL_BACKUP_VERSION) {
        // Generate the moved-to-global lookup table
        HashSet<String> movedToGlobal = new HashSet<String>();
        Settings.System.getMovedKeys(movedToGlobal);
        Settings.Secure.getMovedKeys(movedToGlobal);

        // system settings data first
        int nBytes = in.readInt();
        if (DEBUG_BACKUP) Log.d(TAG, nBytes + " bytes of settings data");
        byte[] buffer = new byte[nBytes];
        in.readFully(buffer, 0, nBytes);
        restoreSettings(buffer, nBytes, Settings.System.CONTENT_URI, movedToGlobal);

        // secure settings
        nBytes = in.readInt();
        if (DEBUG_BACKUP) Log.d(TAG, nBytes + " bytes of secure settings data");
        if (nBytes > buffer.length) buffer = new byte[nBytes];
        in.readFully(buffer, 0, nBytes);
        restoreSettings(buffer, nBytes, Settings.Secure.CONTENT_URI, movedToGlobal);

        // Global only if sufficiently new
        if (version >= FULL_BACKUP_ADDED_GLOBAL) {
            nBytes = in.readInt();
            if (DEBUG_BACKUP) Log.d(TAG, nBytes + " bytes of global settings data");
            if (nBytes > buffer.length) buffer = new byte[nBytes];
            in.readFully(buffer, 0, nBytes);
            movedToGlobal.clear();  // no redirection; this *is* the global namespace
            restoreSettings(buffer, nBytes, Settings.Global.CONTENT_URI, movedToGlobal);
        }

        // locale
        nBytes = in.readInt();
        if (DEBUG_BACKUP) Log.d(TAG, nBytes + " bytes of locale data");
        if (nBytes > buffer.length) buffer = new byte[nBytes];
        in.readFully(buffer, 0, nBytes);
        mSettingsHelper.setLocaleData(buffer, nBytes);

        // wifi supplicant
        nBytes = in.readInt();
        if (DEBUG_BACKUP) Log.d(TAG, nBytes + " bytes of wifi supplicant data");
        if (nBytes > buffer.length) buffer = new byte[nBytes];
        in.readFully(buffer, 0, nBytes);
        int retainedWifiState = enableWifi(false);
        restoreWifiSupplicant(FILE_WIFI_SUPPLICANT, buffer, nBytes);
        FileUtils.setPermissions(FILE_WIFI_SUPPLICANT,
                FileUtils.S_IRUSR | FileUtils.S_IWUSR |
                FileUtils.S_IRGRP | FileUtils.S_IWGRP,
                Process.myUid(), Process.WIFI_UID);
        // retain the previous WIFI state.
        enableWifi(retainedWifiState == WifiManager.WIFI_STATE_ENABLED ||
                retainedWifiState == WifiManager.WIFI_STATE_ENABLING);

        // wifi config
        nBytes = in.readInt();
        if (DEBUG_BACKUP) Log.d(TAG, nBytes + " bytes of wifi config data");
        if (nBytes > buffer.length) buffer = new byte[nBytes];
        in.readFully(buffer, 0, nBytes);
        restoreFileData(mWifiConfigFile, buffer, nBytes);

        if (DEBUG_BACKUP) Log.d(TAG, "Full restore complete.");
    } else {
        data.close();
        throw new IOException("Invalid file schema");
    }
}
 
Example 18
Source File: ModuleUtil.java    From EdXposedManager with GNU General Public License v3.0 4 votes vote down vote up
public synchronized void updateModulesList(boolean showToast, View view) {
    try {
        Log.i(TAG, "ModuleUtil -> updating modules.list");
        int installedXposedVersion = XposedApp.getXposedVersion();
        boolean disabled = StatusInstallerFragment.DISABLE_FILE.exists();
        if (!XposedApp.getPreferences().getBoolean("skip_xposedminversion_check", false) && !disabled && installedXposedVersion <= 0 && showToast) {
            Snackbar.make(view, R.string.notinstalled, Snackbar.LENGTH_SHORT).show();
            return;
        }

        PrintWriter modulesList = new PrintWriter(MODULES_LIST_FILE);
        PrintWriter enabledModulesList = new PrintWriter(XposedApp.ENABLED_MODULES_LIST_FILE);
        List<InstalledModule> enabledModules = getEnabledModules();
        for (InstalledModule module : enabledModules) {

            if (!XposedApp.getPreferences().getBoolean("skip_xposedminversion_check", false) && (!disabled && (module.minVersion > installedXposedVersion || module.minVersion < MIN_MODULE_VERSION)) && showToast) {
                Snackbar.make(view, R.string.notinstalled, Snackbar.LENGTH_SHORT).show();
                continue;
            }

            modulesList.println(module.app.sourceDir);

            try {
                String installer = mPm.getInstallerPackageName(module.app.packageName);
                if (!PLAY_STORE_PACKAGE.equals(installer))
                    enabledModulesList.println(module.app.packageName);
            } catch (Exception ignored) {
            }
        }
        modulesList.close();
        enabledModulesList.close();

        FileUtils.setPermissions(MODULES_LIST_FILE, rw_rw_r__, -1, -1);
        FileUtils.setPermissions(XposedApp.ENABLED_MODULES_LIST_FILE, rw_rw_r__, -1, -1);

        if (showToast) {
            Snackbar.make(view, R.string.xposed_module_list_updated, Snackbar.LENGTH_SHORT).show();
        }
    } catch (IOException e) {
        Log.e(TAG, "ModuleUtil -> cannot write " + MODULES_LIST_FILE, e);
        Toast.makeText(mApp, "cannot write " + MODULES_LIST_FILE + e, Toast.LENGTH_SHORT).show();
    }
}
 
Example 19
Source File: XposedApp.java    From EdXposedManager with GNU General Public License v3.0 4 votes vote down vote up
private void createDirectories() {
    FileUtils.setPermissions(BASE_DIR, rwxrwxrwx, -1, -1);
    mkdirAndChmod("conf", rwxrwxrwx);
    mkdirAndChmod("log", rwxrwxrwx);
}
 
Example 20
Source File: XposedApp.java    From EdXposedManager with GNU General Public License v3.0 4 votes vote down vote up
@SuppressWarnings("ResultOfMethodCallIgnored")
public static void mkdirAndChmod(String dir, int permissions) {
    dir = BASE_DIR + dir;
    new File(dir).mkdir();
    FileUtils.setPermissions(dir, permissions, -1, -1);
}