客戶提了乙個需求,預製乙個launcher apk到系統應用,不可刪除,且應用能夠通過google play store公升級。
應用要能夠通過應用商店進行公升級,這個就必須要使用應用自身的簽名 ,因為如果前後兩個程式版本所採用的簽名不同,即使包名相同,也不會被視為同乙個程式的不同版本,不能覆蓋安裝,local_certificate := presigned,表示使用應用本身的簽名,表示之前應用已經簽名了。google apk就是這樣
private
static
boolean
(packageparser.package pkg)
private
static
boolean
(packagesetting ps)
msettings.
addshareduserlpw
("android.uid.system"
, process.system_uid,
; msettings.
addshareduserlpw
("android.uid.phone"
, radio_uid,;.
....
....
....
....
....
....
....
....
....
....
....
... msettings.
addshareduserlpw
("android.uid.shell"
, shell_uid,
;
// for security and version matching reason, only consider
// overlay packages if they reside in the right directory.
scandirtracedli
(new
file
(vendor_overlay_dir)
, mdefparseflags
| packageparser.parse_is_system_dir,
scanflags
| scan_as_system
| scan_as_vendor,0)
;// /vendor/overlay
scandirtracedli
(new
file
(product_overlay_dir)
, mdefparseflags
| packageparser.parse_is_system_dir,
scanflags
| scan_as_system
| scan_as_product,0)
;// /product/overlay
// collect privileged system packages.
newfile
(environment.
getrootdirectory()
,);scandirtracedli
mdefparseflags
| packageparser.parse_is_system_dir,
scanflags
| scan_as_system
| scan_as_privileged,0)
;...
....
....
....
....
....
..// collect ordinary system packages.
newfile
(environment.
getrootdirectory()
,);scandirtracedli
mdefparseflags
| packageparser.parse_is_system_dir,
scanflags
| scan_as_system,0)
;// collect all oem packages.
newfile
(environment.
getoemdirectory()
,);scandirtracedli
mdefparseflags
| packageparser.parse_is_system_dir,
scanflags
| scan_as_system
| scan_as_oem,0)
;...
....
....
....
....
...
從android 8.0開始,特權應用如果使用系統的特許許可權,那麼需要把這個特許許可權加入到白名單中,這個就叫特許許可權許可名單。
什麼是系統的特許許可權呢,系統的特許許可權必須在**frameworks/base/core/res/androidmanifest.xml
定義**,並且等級為**signature|privileged
**
android:name
="android.permission.access_ims_call_service"
android:label
="@string/permlab_accessimscallservice"
android:description
="@string/permdesc_accessimscallservice"
android:protectionlevel
="signature|privileged"
/>
android:name
="android.permission.access_uce_presence_service"
android:permissiongroup
="android.permission-group.phone"
android:protectionlevel
="signature|privileged"
/>
.......................
如果應用使用了這些許可權,就需要配置許可權白名單,如果沒有配置,那麼裝置將無法啟動。而像normal和dangerous級別的許可權,這些許可權應用需要去訪問其對應受保護的資源時只需要在androidmanifest.xml中新增相同的uses-permission就行了。
如何配置特許許可權許可名單呢,這個在官方指導文件裡面也說明了:
>
package
="com.android.******x"
>
name
="android.permission.backup"
/>
name
="android.permission.crypt_keeper"
/>
name
="android.permission.interact_across_users"
/>
name
="android.permission.manage_users"
/>
name
="android.permission.modify_phone_state"
/>
name
="android.permission.read_privileged_phone_state"
/>
name
="android.permission.receive_emergency_broadcast"
/>
>
permissions
>
..........
詳細的配置可以參考谷歌的官方文件: 取消風電裝置特許權 中國將開放風能裝置市場
第20屆中美商貿聯委會在禽肉 設限 中國赴美旅遊管制 承認中國市場經濟地位 開放中國風能裝置市場等備受關注的領域達成了共識。中國在會議上表示同意考慮取消風電裝置特許權投標的國產化要求。2003年,開始推進 風電特許權 專案。2005年正式要求特許權專案裝置國產化率為70 特許權專案的實施,為中國風電...
嗎 使用的是 特許權使用費屬於無形資產嗎
特許權使用費屬於無形資產嗎 無形資產 intangible assets 是指企業擁有或者控制的沒有實物形態的可辨認非貨幣性資產。無形資產具有廣義和狹義之分,廣義的無形資產包括貨幣資金 應收賬款 金融資產 長期股權投資 專利權 商標權等,因為它們沒有物質實體,而是表現為某種法定權利或技術。但是,會計...
修復ICMP許可權許可和訪問控制漏洞
解決方案 配置防火牆或過濾路由器以阻止傳出的icmp資料報。阻止型別13或14和 或 0的icmp資料報 關閉ping,使得其他主機ping自己的主機時得不到回應包 echo 1 proc sys net ipv4 icmp echo ignore all能ping通 echo 0 proc sys...