Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 43037e40 authored by Po-Chien Hsueh's avatar Po-Chien Hsueh Committed by Android (Google) Code Review
Browse files

Merge "Add a permission, INSTALL_DYNAMIC_SYSTEM"

parents f906e0e3 6762e2b6
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ package android {
    field public static final String HDMI_CEC = "android.permission.HDMI_CEC";
    field public static final String HIDE_NON_SYSTEM_OVERLAY_WINDOWS = "android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS";
    field public static final String INJECT_EVENTS = "android.permission.INJECT_EVENTS";
    field public static final String INSTALL_DYNAMIC_SYSTEM = "android.permission.INSTALL_DYNAMIC_SYSTEM";
    field public static final String INSTALL_GRANT_RUNTIME_PERMISSIONS = "android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS";
    field public static final String INSTALL_PACKAGE_UPDATES = "android.permission.INSTALL_PACKAGE_UPDATES";
    field public static final String INSTALL_SELF_UPDATES = "android.permission.INSTALL_SELF_UPDATES";
@@ -5647,12 +5648,12 @@ package android.os.image {
  public class DynamicSystemClient {
    ctor public DynamicSystemClient(@NonNull android.content.Context);
    method @RequiresPermission("android.permission.MANAGE_DYNAMIC_SYSTEM") public void bind();
    method @RequiresPermission(android.Manifest.permission.INSTALL_DYNAMIC_SYSTEM) public void bind();
    method public void setOnStatusChangedListener(@NonNull java.util.concurrent.Executor, @NonNull android.os.image.DynamicSystemClient.OnStatusChangedListener);
    method public void setOnStatusChangedListener(@NonNull android.os.image.DynamicSystemClient.OnStatusChangedListener);
    method @RequiresPermission("android.permission.MANAGE_DYNAMIC_SYSTEM") public void start(@NonNull android.net.Uri, long);
    method @RequiresPermission("android.permission.MANAGE_DYNAMIC_SYSTEM") public void start(@NonNull android.net.Uri, long, long);
    method @RequiresPermission("android.permission.MANAGE_DYNAMIC_SYSTEM") public void unbind();
    method @RequiresPermission(android.Manifest.permission.INSTALL_DYNAMIC_SYSTEM) public void start(@NonNull android.net.Uri, long);
    method @RequiresPermission(android.Manifest.permission.INSTALL_DYNAMIC_SYSTEM) public void start(@NonNull android.net.Uri, long, long);
    method @RequiresPermission(android.Manifest.permission.INSTALL_DYNAMIC_SYSTEM) public void unbind();
    field public static final int CAUSE_ERROR_EXCEPTION = 6; // 0x6
    field public static final int CAUSE_ERROR_INVALID_URL = 4; // 0x4
    field public static final int CAUSE_ERROR_IO = 3; // 0x3
+4 −4
Original line number Diff line number Diff line
@@ -313,7 +313,7 @@ public class DynamicSystemClient {
     * allows it to send status updates to {@link #OnStatusChangedListener}. It is recommanded
     * to bind before calling {@link #start} and get status updates.
     */
    @RequiresPermission(android.Manifest.permission.MANAGE_DYNAMIC_SYSTEM)
    @RequiresPermission(android.Manifest.permission.INSTALL_DYNAMIC_SYSTEM)
    public void bind() {
        Intent intent = new Intent();
        intent.setClassName("com.android.dynsystem",
@@ -328,7 +328,7 @@ public class DynamicSystemClient {
     * Unbind from {@code DynamicSystem} installation service. Unbinding from the installation
     * service stops it from sending following status updates.
     */
    @RequiresPermission(android.Manifest.permission.MANAGE_DYNAMIC_SYSTEM)
    @RequiresPermission(android.Manifest.permission.INSTALL_DYNAMIC_SYSTEM)
    public void unbind() {
        if (!mBound) {
            return;
@@ -361,7 +361,7 @@ public class DynamicSystemClient {
     * @param systemUrl A network URL or a file URL to system image.
     * @param systemSize size of system image.
     */
    @RequiresPermission(android.Manifest.permission.MANAGE_DYNAMIC_SYSTEM)
    @RequiresPermission(android.Manifest.permission.INSTALL_DYNAMIC_SYSTEM)
    public void start(@NonNull Uri systemUrl, @BytesLong long systemSize) {
        start(systemUrl, systemSize, DEFAULT_USERDATA_SIZE);
    }
@@ -378,7 +378,7 @@ public class DynamicSystemClient {
     * @param systemSize size of system image.
     * @param userdataSize bytes reserved for userdata.
     */
    @RequiresPermission(android.Manifest.permission.MANAGE_DYNAMIC_SYSTEM)
    @RequiresPermission(android.Manifest.permission.INSTALL_DYNAMIC_SYSTEM)
    public void start(@NonNull Uri systemUrl, @BytesLong long systemSize,
            @BytesLong long userdataSize) {
        Intent intent = new Intent();
+5 −0
Original line number Diff line number Diff line
@@ -1854,6 +1854,11 @@
    <permission android:name="android.permission.MANAGE_DYNAMIC_SYSTEM"
        android:protectionLevel="signature" />

    <!-- @SystemApi Allows an application to install a DynamicSystem image and get status updates.
         @hide -->
    <permission android:name="android.permission.INSTALL_DYNAMIC_SYSTEM"
        android:protectionLevel="signature|privileged" />

    <!-- @SystemApi Allows access to Broadcast Radio
         @hide This is not a third-party API (intended for system apps).-->
    <permission android:name="android.permission.ACCESS_BROADCAST_RADIO"
+2 −2
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@
            android:name=".DynamicSystemInstallationService"
            android:enabled="true"
            android:exported="true"
            android:permission="android.permission.MANAGE_DYNAMIC_SYSTEM"
            android:permission="android.permission.INSTALL_DYNAMIC_SYSTEM"
            android:process=":dynsystem">
            <intent-filter>
                <action android:name="android.os.image.action.NOTIFY_IF_IN_USE" />
@@ -26,7 +26,7 @@

        <activity android:name=".VerificationActivity"
            android:exported="true"
            android:permission="android.permission.MANAGE_DYNAMIC_SYSTEM"
            android:permission="android.permission.INSTALL_DYNAMIC_SYSTEM"
            android:theme="@android:style/Theme.Material.Light.Dialog.NoActionBar"
            android:process=":dynsystem">
            <intent-filter>