<feed xmlns='http://www.w3.org/2005/Atom'>
<title>frameworks_base/packages/DynamicSystemInstallationService, branch replicant-10</title>
<subtitle>Fork of frameworks/base
</subtitle>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/'/>
<entry>
<title>Reduce parcel size to avoid binder transaction failure</title>
<updated>2019-05-21T01:17:30+00:00</updated>
<author>
<name>Po-Chien Hsueh</name>
<email>pchsueh@google.com</email>
</author>
<published>2019-05-17T07:08:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=22c1f9ac9f0730219dbefe69eb98be21787b1bff'/>
<id>22c1f9ac9f0730219dbefe69eb98be21787b1bff</id>
<content type='text'>
Reduce buffer size to 8192 to avoid binder transaction failures.
According to our previous tests. Reducing the buffer size to 8K
doesn't show negative impact on performance.

Bug: 132923636
Test: Successfully install a DSU
Change-Id: Ibe51ab748b4f6c1d3c3ac8286519380ea8afc184
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reduce buffer size to 8192 to avoid binder transaction failures.
According to our previous tests. Reducing the buffer size to 8K
doesn't show negative impact on performance.

Bug: 132923636
Test: Successfully install a DSU
Change-Id: Ibe51ab748b4f6c1d3c3ac8286519380ea8afc184
</pre>
</div>
</content>
</entry>
<entry>
<title>Check if DSU is in use before feature flag</title>
<updated>2019-05-21T01:16:33+00:00</updated>
<author>
<name>Po-Chien Hsueh</name>
<email>pchsueh@google.com</email>
</author>
<published>2019-05-14T08:57:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=7687aaac1d60de95c55a2bc62f3e23a56e2f16bd'/>
<id>7687aaac1d60de95c55a2bc62f3e23a56e2f16bd</id>
<content type='text'>
We are using a feature flag to protect DSU and the device. But when
a Dynamic System is in use, feature flag is set as false by default.

This CL makes DSU bypass feature flag and start GSI service on boot
completed, check if the device is currently running a Dynamic System,
then, stop GSI service if the device isn't.

Bug: 132575851
Test: restart into DSU, check if the "In Use" notification is shown.
Change-Id: I9dabf9bc1716ef18d513278415c6544a5467d510
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We are using a feature flag to protect DSU and the device. But when
a Dynamic System is in use, feature flag is set as false by default.

This CL makes DSU bypass feature flag and start GSI service on boot
completed, check if the device is currently running a Dynamic System,
then, stop GSI service if the device isn't.

Bug: 132575851
Test: restart into DSU, check if the "In Use" notification is shown.
Change-Id: I9dabf9bc1716ef18d513278415c6544a5467d510
</pre>
</div>
</content>
</entry>
<entry>
<title>Add KEY_ENABLE_WHEN_COMPLETED for testing</title>
<updated>2019-05-15T02:46:19+00:00</updated>
<author>
<name>Po-Chien Hsueh</name>
<email>pchsueh@google.com</email>
</author>
<published>2019-05-07T09:23:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=dfd69d770ca4f13cd5bf1ed6de944630a028fe71'/>
<id>dfd69d770ca4f13cd5bf1ed6de944630a028fe71</id>
<content type='text'>
Per design, we ask user's confirmation before enabling DSU when
install completed. To simplify the process of testing, this CL adds
a paramenter (intent key) "KEY_ENABLE_WHEN_COMPLETED". If the key is
set, the installation service will not ask user before enabling DSU.

Bug: 131866826
Test: adb shell am start-activity -n com.android.dynsystem/com.android.dynsystem.VerificationActivity
      -a android.os.image.action.START_INSTALL
      -d file:///storage/emulated/0/Download/system.raw.gz
      --el KEY_SYSTEM_SIZE 893841408
      --el KEY_USERDATA_SIZE 8589934592
      --ez KEY_ENABLE_WHEN_COMPLETED true

Change-Id: Id38c4c0525199594f6bd6704b5a575d4a42b7b61
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Per design, we ask user's confirmation before enabling DSU when
install completed. To simplify the process of testing, this CL adds
a paramenter (intent key) "KEY_ENABLE_WHEN_COMPLETED". If the key is
set, the installation service will not ask user before enabling DSU.

Bug: 131866826
Test: adb shell am start-activity -n com.android.dynsystem/com.android.dynsystem.VerificationActivity
      -a android.os.image.action.START_INSTALL
      -d file:///storage/emulated/0/Download/system.raw.gz
      --el KEY_SYSTEM_SIZE 893841408
      --el KEY_USERDATA_SIZE 8589934592
      --ez KEY_ENABLE_WHEN_COMPLETED true

Change-Id: Id38c4c0525199594f6bd6704b5a575d4a42b7b61
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename folder dynandroid to dynsystem</title>
<updated>2019-04-22T03:15:25+00:00</updated>
<author>
<name>Po-Chien Hsueh</name>
<email>pchsueh@google.com</email>
</author>
<published>2019-04-22T02:47:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=02778f5712bc03c89e7e8df46801910d2d12a9ca'/>
<id>02778f5712bc03c89e7e8df46801910d2d12a9ca</id>
<content type='text'>
We previously renamed DynamicAndroid to DynamicSystem. Package name
was also changed to com.android.dynsystem. But the folder name was
unchanged. This CL fixes the inconsistency.

Bug: 126613281
Test: make and run the service with 'adb shell am'
Change-Id: Ib462aec1603a16179c8392b6d51a00d0855d9421
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We previously renamed DynamicAndroid to DynamicSystem. Package name
was also changed to com.android.dynsystem. But the folder name was
unchanged. This CL fixes the inconsistency.

Bug: 126613281
Test: make and run the service with 'adb shell am'
Change-Id: Ib462aec1603a16179c8392b6d51a00d0855d9421
</pre>
</div>
</content>
</entry>
<entry>
<title>String review follow-up</title>
<updated>2019-04-19T02:46:48+00:00</updated>
<author>
<name>Po-Chien Hsueh</name>
<email>pchsueh@google.com</email>
</author>
<published>2019-04-16T08:24:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=ea0a5791274c6c5550283883c841da5f651bca0e'/>
<id>ea0a5791274c6c5550283883c841da5f651bca0e</id>
<content type='text'>
Rename "Android On Tap" to "Dynamic System Updates".
And, some string changes to follow review suggestions.

Bug: 129100345
Bug: 129330026
Test: make the package
Change-Id: I440e5beaa3831814d2f7f1063be16d073c5f2c38
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rename "Android On Tap" to "Dynamic System Updates".
And, some string changes to follow review suggestions.

Bug: 129100345
Bug: 129330026
Test: make the package
Change-Id: I440e5beaa3831814d2f7f1063be16d073c5f2c38
</pre>
</div>
</content>
</entry>
<entry>
<title>stopSelf() if there is no installed system image</title>
<updated>2019-04-10T08:19:53+00:00</updated>
<author>
<name>Po-Chien Hsueh</name>
<email>pchsueh@google.com</email>
</author>
<published>2019-04-10T07:30:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=67697394a23ecf1b0c542e81529dc5f4ca6a3061'/>
<id>67697394a23ecf1b0c542e81529dc5f4ca6a3061</id>
<content type='text'>
On BOOT_COMPLETED, the installation checks if there is an installed
system image and shows a notification if there is.

However, if there isn't. The installation should stop itself.

Bug: 128960337
Test: boot and adb shell ps
Change-Id: I422e308020cd5ec127ea265079926c1b74547d4b
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On BOOT_COMPLETED, the installation checks if there is an installed
system image and shows a notification if there is.

However, if there isn't. The installation should stop itself.

Bug: 128960337
Test: boot and adb shell ps
Change-Id: I422e308020cd5ec127ea265079926c1b74547d4b
</pre>
</div>
</content>
</entry>
<entry>
<title>DynamicSystem string review followup</title>
<updated>2019-04-09T06:26:38+00:00</updated>
<author>
<name>Po-Chien Hsueh</name>
<email>pchsueh@google.com</email>
</author>
<published>2019-04-01T02:40:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=9a1627f521d5a98f1682a7d83d6e94552d97958e'/>
<id>9a1627f521d5a98f1682a7d83d6e94552d97958e</id>
<content type='text'>
Some changes to follow string review suggestions:
- Simplify some messages.
- Replace 'Reboot' with 'Restart'.
- Notification action button order: 'Restart' button on the right.

Bug: 129100345
Test: verified with test app
Change-Id: I1ee97b0adbf74add68d3561fc647dc4923ee7237
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some changes to follow string review suggestions:
- Simplify some messages.
- Replace 'Reboot' with 'Restart'.
- Notification action button order: 'Restart' button on the right.

Bug: 129100345
Test: verified with test app
Change-Id: I1ee97b0adbf74add68d3561fc647dc4923ee7237
</pre>
</div>
</content>
</entry>
<entry>
<title>Use setEnable() when there is an installed image</title>
<updated>2019-04-03T07:54:54+00:00</updated>
<author>
<name>Po-Chien Hsueh</name>
<email>pchsueh@google.com</email>
</author>
<published>2019-04-01T08:51:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=91508ea20db5b1db37c8fed06bcf8075b06906f6'/>
<id>91508ea20db5b1db37c8fed06bcf8075b06906f6</id>
<content type='text'>
We can now use setEnable() to tell GsiService that we would like
run in DynamicSystem on the next restart, if there is a system
image installed.

Bug: 124613126
Test: Tap the button and setEnabe() is invoked.
Change-Id: I74312af0c87548981ecb4e1ac9a1f3814304a4d5
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We can now use setEnable() to tell GsiService that we would like
run in DynamicSystem on the next restart, if there is a system
image installed.

Bug: 124613126
Test: Tap the button and setEnabe() is invoked.
Change-Id: I74312af0c87548981ecb4e1ac9a1f3814304a4d5
</pre>
</div>
</content>
</entry>
<entry>
<title>Use FeatureFlagPersistent to guard DynamicSystem</title>
<updated>2019-04-03T02:29:31+00:00</updated>
<author>
<name>Po-Chien Hsueh</name>
<email>pchsueh@google.com</email>
</author>
<published>2019-04-01T03:26:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=4167b42f891232882637db2f2a606586770bf215'/>
<id>4167b42f891232882637db2f2a606586770bf215</id>
<content type='text'>
Check persistent feature flag 'settings_dynamic_system' before
invoking the installation service. User can still use gsi_tool if
the device is unlocked.

Bug: 119647479
Test: Verified with 'adb shell am' and test app.
Change-Id: If2265d877bc7eedf9b7a107bba04d2e95cf1b89a
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Check persistent feature flag 'settings_dynamic_system' before
invoking the installation service. User can still use gsi_tool if
the device is unlocked.

Bug: 119647479
Test: Verified with 'adb shell am' and test app.
Change-Id: If2265d877bc7eedf9b7a107bba04d2e95cf1b89a
</pre>
</div>
</content>
</entry>
<entry>
<title>Add a permission, INSTALL_DYNAMIC_SYSTEM</title>
<updated>2019-03-25T15:55:39+00:00</updated>
<author>
<name>Po-Chien Hsueh</name>
<email>pchsueh@google.com</email>
</author>
<published>2019-03-22T03:11:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/frameworks_base/commit/?id=6762e2b661756aab6f621ea19d80b9393bf2d19c'/>
<id>6762e2b661756aab6f621ea19d80b9393bf2d19c</id>
<content type='text'>
We already have a permission, MANAGE_DYNAMIC_SYSTEM, whose protection
level is signature. Only platform applications holding it can interact
directly with DynamicSystemService, a wrapper of native GsiService. In
our design, DynamicSystemInstallationService is the sole platform app
holding it.

Then we need another permission for non-platform but privileged apps.
This new permission doesn't give apps access to DynamicSystemService,
but only to system API DynamicSystemClient. DynamicSystemClient works
with underneath DynamicSystemInstallationService and allows privileged
apps to install DynamicSystem images and get status updates in our
designed manner.


Bug: 128982216
Test: verified using DynamicSystemClient.
Change-Id: I3e67322511e3ab08db87bfad40d8c3d3cf6fdfe5
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We already have a permission, MANAGE_DYNAMIC_SYSTEM, whose protection
level is signature. Only platform applications holding it can interact
directly with DynamicSystemService, a wrapper of native GsiService. In
our design, DynamicSystemInstallationService is the sole platform app
holding it.

Then we need another permission for non-platform but privileged apps.
This new permission doesn't give apps access to DynamicSystemService,
but only to system API DynamicSystemClient. DynamicSystemClient works
with underneath DynamicSystemInstallationService and allows privileged
apps to install DynamicSystem images and get status updates in our
designed manner.


Bug: 128982216
Test: verified using DynamicSystemClient.
Change-Id: I3e67322511e3ab08db87bfad40d8c3d3cf6fdfe5
</pre>
</div>
</content>
</entry>
</feed>
