Merge "Clear identity to handle ALLOCATE_AGGRESSIVE." into oc-dev

This commit is contained in:
TreeHugger Robot
2017-04-15 00:30:27 +00:00
committed by Android (Google) Code Review
3 changed files with 13 additions and 2 deletions

View File

@@ -40,6 +40,7 @@ applications that come with the platform
<privapp-permissions package="com.android.defcontainer"> <privapp-permissions package="com.android.defcontainer">
<permission name="android.permission.ACCESS_CACHE_FILESYSTEM"/> <permission name="android.permission.ACCESS_CACHE_FILESYSTEM"/>
<permission name="android.permission.ALLOCATE_AGGRESSIVE"/>
<permission name="android.permission.INTERACT_ACROSS_USERS"/> <permission name="android.permission.INTERACT_ACROSS_USERS"/>
<permission name="android.permission.WRITE_MEDIA_STORAGE"/> <permission name="android.permission.WRITE_MEDIA_STORAGE"/>
</privapp-permissions> </privapp-permissions>

View File

@@ -1,5 +1,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.defcontainer" coreApp="true"> package="com.android.defcontainer" coreApp="true">
<uses-permission android:name="android.permission.ALLOCATE_AGGRESSIVE"/>
<uses-permission android:name="android.permission.ASEC_ACCESS"/> <uses-permission android:name="android.permission.ASEC_ACCESS"/>
<uses-permission android:name="android.permission.ASEC_CREATE"/> <uses-permission android:name="android.permission.ASEC_CREATE"/>
<uses-permission android:name="android.permission.ASEC_DESTROY"/> <uses-permission android:name="android.permission.ASEC_DESTROY"/>

View File

@@ -30,6 +30,7 @@ import android.content.pm.PackageParser.PackageLite;
import android.content.pm.PackageParser.PackageParserException; import android.content.pm.PackageParser.PackageParserException;
import android.content.res.ObbInfo; import android.content.res.ObbInfo;
import android.content.res.ObbScanner; import android.content.res.ObbScanner;
import android.os.Binder;
import android.os.Environment; import android.os.Environment;
import android.os.Environment.UserEnvironment; import android.os.Environment.UserEnvironment;
import android.os.FileUtils; import android.os.FileUtils;
@@ -179,6 +180,15 @@ public class DefaultContainerService extends IntentService {
return ret; return ret;
} }
final int recommendedInstallLocation;
final long token = Binder.clearCallingIdentity();
try {
recommendedInstallLocation = PackageHelper.resolveInstallLocation(context,
pkg.packageName, pkg.installLocation, sizeBytes, flags);
} finally {
Binder.restoreCallingIdentity(token);
}
ret.packageName = pkg.packageName; ret.packageName = pkg.packageName;
ret.splitNames = pkg.splitNames; ret.splitNames = pkg.splitNames;
ret.versionCode = pkg.versionCode; ret.versionCode = pkg.versionCode;
@@ -186,8 +196,7 @@ public class DefaultContainerService extends IntentService {
ret.splitRevisionCodes = pkg.splitRevisionCodes; ret.splitRevisionCodes = pkg.splitRevisionCodes;
ret.installLocation = pkg.installLocation; ret.installLocation = pkg.installLocation;
ret.verifiers = pkg.verifiers; ret.verifiers = pkg.verifiers;
ret.recommendedInstallLocation = PackageHelper.resolveInstallLocation(context, ret.recommendedInstallLocation = recommendedInstallLocation;
pkg.packageName, pkg.installLocation, sizeBytes, flags);
ret.multiArch = pkg.multiArch; ret.multiArch = pkg.multiArch;
return ret; return ret;