@Override public String getVirtualStorage(String packageName, int userId) throws RemoteException { checkUserId(userId); synchronized (mConfigs) { VSConfig config = getOrCreateVSConfigLocked(packageName, userId); return config.vsPath; } }
@Override public void writePersistenceData(Parcel p) { final SparseArray<HashMap<String, VSConfig>> configs = mService.getConfigs(); int N = configs.size(); p.writeInt(N); while (N-- > 0) { int userId = configs.keyAt(N); Map<String, VSConfig> userMap = configs.valueAt(N); p.writeInt(userId); p.writeMap(userMap); } }
@Override public boolean onCreate() { Context context = getContext(); DaemonService.startup(context); if (!VirtualCore.get().isStartup()) { return true; } VPackageManagerService.systemReady(); addService(ServiceManagerNative.PACKAGE, VPackageManagerService.get()); VActivityManagerService.systemReady(context); addService(ServiceManagerNative.ACTIVITY, VActivityManagerService.get()); addService(ServiceManagerNative.USER, VUserManagerService.get()); VAppManagerService.systemReady(); addService(ServiceManagerNative.APP, VAppManagerService.get()); BroadcastSystem.attach(VActivityManagerService.get(), VAppManagerService.get()); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { addService(ServiceManagerNative.JOB, VJobSchedulerService.get()); } VNotificationManagerService.systemReady(context); addService(ServiceManagerNative.NOTIFICATION, VNotificationManagerService.get()); VAppManagerService.get().scanApps(); VAccountManagerService.systemReady(); addService(ServiceManagerNative.ACCOUNT, VAccountManagerService.get()); addService(ServiceManagerNative.VS, VirtualStorageService.get()); addService(ServiceManagerNative.DEVICE, VDeviceManagerService.get()); addService(ServiceManagerNative.VIRTUAL_LOC, VirtualLocationService.get()); return true; }
@Override public boolean onCreate() { Context context = getContext(); DaemonService.startup(context); if (!VirtualCore.get().isStartup()) { return true; } VPackageManagerService.systemReady(); addService(ServiceManagerNative.PACKAGE, VPackageManagerService.get()); VActivityManagerService.systemReady(context); addService(ServiceManagerNative.ACTIVITY, VActivityManagerService.get()); addService(ServiceManagerNative.USER, VUserManagerService.get()); VAppManagerService.systemReady(); addService(ServiceManagerNative.APP, VAppManagerService.get()); BroadcastSystem.attach(VActivityManagerService.get(), VAppManagerService.get()); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { addService(ServiceManagerNative.JOB, VJobSchedulerService.get()); } VNotificationManagerService.systemReady(context); addService(ServiceManagerNative.NOTIFICATION, VNotificationManagerService.get()); VAppManagerService.get().scanApps(); VAccountManagerService.systemReady(); addService(ServiceManagerNative.ACCOUNT, VAccountManagerService.get()); addService(ServiceManagerNative.VS, VirtualStorageService.get()); addService(ServiceManagerNative.DEVICE, VDeviceManagerService.get()); addService(ServiceManagerNative.VIRTUAL_LOC, VirtualLocationService.get()); return true; }
@Override public boolean isVirtualStorageEnable(String packageName, int userId) throws RemoteException { checkUserId(userId); synchronized (mConfigs) { VSConfig config = getOrCreateVSConfigLocked(packageName, userId); return config.enable; } }
@Override public void readPersistenceData(Parcel p) { final SparseArray<HashMap<String, VSConfig>> configs = mService.getConfigs(); int N = p.readInt(); while (N-- > 0) { int userId = p.readInt(); //noinspection unchecked HashMap<String, VSConfig> userMap = p.readHashMap(VSConfig.class.getClassLoader()); configs.put(userId, userMap); } }
@Override public boolean onCreate() { Context context = getContext(); DaemonService.startup(context); if (!VirtualCore.get().isStartup()) { return true; } VPackageManagerService.systemReady(); IPCBus.register(IPackageManager.class, VPackageManagerService.get()); VActivityManagerService.systemReady(context); IPCBus.register(IActivityManager.class, VActivityManagerService.get()); IPCBus.register(IUserManager.class, VUserManagerService.get()); VAppManagerService.systemReady(); IPCBus.register(IAppManager.class, VAppManagerService.get()); BroadcastSystem.attach(VActivityManagerService.get(), VAppManagerService.get()); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { IPCBus.register(IJobScheduler.class, VJobSchedulerService.get()); } VNotificationManagerService.systemReady(context); IPCBus.register(INotificationManager.class, VNotificationManagerService.get()); VAppManagerService.get().scanApps(); VAccountManagerService.systemReady(); IPCBus.register(IAccountManager.class, VAccountManagerService.get()); IPCBus.register(IVirtualStorageService.class, VirtualStorageService.get()); IPCBus.register(IDeviceInfoManager.class, VDeviceManagerService.get()); IPCBus.register(IVirtualLocationManager.class, VirtualLocationService.get()); return true; }
@Override public void setVirtualStorage(String packageName, int userId, String vsPath) throws RemoteException { checkUserId(userId); synchronized (mConfigs) { VSConfig config = getOrCreateVSConfigLocked(packageName, userId); config.vsPath = vsPath; mLayer.save(); } }
@Override public void readPersistenceData(Parcel p) { final SparseArray<HashMap<String, VSConfig>> configs = mService.getConfigs(); int N = p.readInt(); while (N-- > 0) { int userId = p.readInt(); //noinspection unchecked HashMap<String, VSConfig> userMap = p.readHashMap(VSConfig.class.getClassLoader()); configs.put(userId, userMap); } }
@Override public void setVirtualStorageState(String packageName, int userId, boolean enable) throws RemoteException { checkUserId(userId); synchronized (mConfigs) { VSConfig config = getOrCreateVSConfigLocked(packageName, userId); config.enable = enable; mLayer.save(); } }
@Override public void writePersistenceData(Parcel p) { final SparseArray<HashMap<String, VSConfig>> configs = mService.getConfigs(); int N = configs.size(); p.writeInt(N); while (N-- > 0) { int userId = configs.keyAt(N); Map<String, VSConfig> userMap = configs.valueAt(N); p.writeInt(userId); p.writeMap(userMap); } }
@Override public boolean isVirtualStorageEnable(String packageName, int userId) { checkUserId(userId); synchronized (mConfigs) { VSConfig config = getOrCreateVSConfigLocked(packageName, userId); return config.enable; } }
@Override public void writePersistenceData(Parcel p) { final SparseArray<HashMap<String, VSConfig>> configs = mService.getConfigs(); int N = configs.size(); p.writeInt(N); while (N-- > 0) { int userId = configs.keyAt(N); Map<String, VSConfig> userMap = configs.valueAt(N); p.writeInt(userId); p.writeMap(userMap); } }
@Override public String getVirtualStorage(String packageName, int userId) throws RemoteException { checkUserId(userId); synchronized (mConfigs) { VSConfig config = getOrCreateVSConfigLocked(packageName, userId); return config.vsPath; } }
@Override public void readPersistenceData(Parcel p) { final SparseArray<HashMap<String, VSConfig>> configs = mService.getConfigs(); int N = p.readInt(); while (N-- > 0) { int userId = p.readInt(); //noinspection unchecked HashMap<String, VSConfig> userMap = p.readHashMap(VSConfig.class.getClassLoader()); configs.put(userId, userMap); } }
@Override public String getVirtualStorage(String packageName, int userId) { checkUserId(userId); synchronized (mConfigs) { VSConfig config = getOrCreateVSConfigLocked(packageName, userId); return config.vsPath; } }
@Override public boolean isVirtualStorageEnable(String packageName, int userId) throws RemoteException { checkUserId(userId); synchronized (mConfigs) { VSConfig config = getOrCreateVSConfigLocked(packageName, userId); return config.enable; } }
@Override public void setVirtualStorageState(String packageName, int userId, boolean enable) throws RemoteException { checkUserId(userId); synchronized (mConfigs) { VSConfig config = getOrCreateVSConfigLocked(packageName, userId); config.enable = enable; mLayer.save(); } }
@Override public void setVirtualStorage(String packageName, int userId, String vsPath) { checkUserId(userId); synchronized (mConfigs) { VSConfig config = getOrCreateVSConfigLocked(packageName, userId); config.vsPath = vsPath; mLayer.save(); } }
@Override public void setVirtualStorageState(String packageName, int userId, boolean enable) { checkUserId(userId); synchronized (mConfigs) { VSConfig config = getOrCreateVSConfigLocked(packageName, userId); config.enable = enable; mLayer.save(); } }