@@ -8,7 +8,7 @@ use std::{
88} ;
99
1010use log:: { error, info, warn} ;
11- use prop_rs_android:: resetprop:: ResetProp ;
11+ use prop_rs_android:: { resetprop:: ResetProp , sys_prop } ;
1212use serde:: { Deserialize , Serialize } ;
1313use zygisk_api:: api:: { V4 , ZygiskApi } ;
1414
@@ -240,14 +240,22 @@ fn backup_property(key: &str) -> anyhow::Result<String> {
240240 Ok ( value)
241241}
242242
243- fn apply_resetprop ( key : & str , value : & str ) -> anyhow:: Result < ( ) > {
244- let rp = ResetProp {
245- skip_svc : true ,
243+ fn new_resetprop ( ) -> anyhow:: Result < ResetProp > {
244+ sys_prop:: init ( )
245+ . map_err ( |e| anyhow:: anyhow!( "failed to initialize system property API: {e}" ) ) ?;
246+
247+ Ok ( ResetProp {
248+ // Match the old external `resetprop key value` behavior instead of forcing `-n`.
249+ skip_svc : false ,
246250 persistent : false ,
247251 persist_only : false ,
248252 verbose : false ,
249253 show_context : false ,
250- } ;
254+ } )
255+ }
256+
257+ fn apply_resetprop ( key : & str , value : & str ) -> anyhow:: Result < ( ) > {
258+ let rp = new_resetprop ( ) ?;
251259
252260 if rp. set ( key, value) . is_err ( ) {
253261 anyhow:: bail!( "resetprop failed for {key}" ) ;
@@ -256,18 +264,13 @@ fn apply_resetprop(key: &str, value: &str) -> anyhow::Result<()> {
256264}
257265
258266fn resetprop_delete ( key : & str ) -> anyhow:: Result < ( ) > {
259- let rp = ResetProp {
260- skip_svc : true ,
261- persistent : false ,
262- persist_only : false ,
263- verbose : false ,
264- show_context : false ,
265- } ;
267+ let rp = new_resetprop ( ) ?;
266268
267- if rp. delete ( key) . is_err ( ) {
268- anyhow:: bail!( "resetprop delete failed for {key}" ) ;
269+ match rp. delete ( key) {
270+ Ok ( true ) => Ok ( ( ) ) ,
271+ Ok ( false ) => anyhow:: bail!( "resetprop delete failed for {key}: property not found" ) ,
272+ Err ( _) => anyhow:: bail!( "resetprop delete failed for {key}" ) ,
269273 }
270- Ok ( ( ) )
271274}
272275
273276fn spawn_restore_watcher (
0 commit comments