android.os.FileUtils#setPermissions ( )源码实例Demo

下面列出了android.os.FileUtils#setPermissions ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

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) {
    }
}
 
源代码2 项目: AndroidComponentPlugin   文件: ContextImpl.java
@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);
}
 
源代码3 项目: AndroidComponentPlugin   文件: ContextImpl.java
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);
}
 
源代码4 项目: AndroidComponentPlugin   文件: ContextImpl.java
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);
}
 
源代码5 项目: AndroidComponentPlugin   文件: ContextImpl.java
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;
}
 
源代码6 项目: AndroidComponentPlugin   文件: ContextImpl.java
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);
}
 
源代码7 项目: AndroidComponentPlugin   文件: ContextImpl.java
@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);
}
 
源代码8 项目: android_9.0.0_r45   文件: ContextImpl.java
@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);
}
 
源代码9 项目: AndroidComponentPlugin   文件: ContextImpl.java
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);
}
 
源代码10 项目: AndroidComponentPlugin   文件: ContextImpl.java
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);
}
 
源代码11 项目: AndroidComponentPlugin   文件: ContextImpl.java
@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);
}
 
源代码12 项目: android_9.0.0_r45   文件: UserManagerService.java
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);
}
 
源代码13 项目: android_9.0.0_r45   文件: UserManagerService.java
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);
    }
}
 
源代码14 项目: Study_Android_Demo   文件: SettingsBackupAgent.java
@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);
    }
}
 
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;
}
 
源代码16 项目: EdXposedManager   文件: XposedApp.java
@SuppressWarnings("ResultOfMethodCallIgnored")
public static void mkdirAndChmod(String dir, int permissions) {
    dir = BASE_DIR + dir;
    new File(dir).mkdir();
    FileUtils.setPermissions(dir, permissions, -1, -1);
}
 
源代码17 项目: EdXposedManager   文件: XposedApp.java
private void createDirectories() {
    FileUtils.setPermissions(BASE_DIR, rwxrwxrwx, -1, -1);
    mkdirAndChmod("conf", rwxrwxrwx);
    mkdirAndChmod("log", rwxrwxrwx);
}
 
源代码18 项目: android_9.0.0_r45   文件: SQLiteOpenHelper.java
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);
}
 
源代码19 项目: Study_Android_Demo   文件: SettingsBackupAgent.java
@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");
    }
}
 
源代码20 项目: EdXposedManager   文件: ModuleUtil.java
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();
    }
}