I want to replace something in AndroidManifest.xml using shell script. I use MPatcher tool to run .sh scripts on Android. My problem is that I can't replace those string:
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
With:
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- Игра станет хранить миры по старому пути благодаря методу Egornya. -->
<uses-permission
android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
I've tried a lot of things, nothing works. Either it issues an error, or it writes successfully replaced, but nothing has changed. Examples of codes:
sed -i '/<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" \/>/{
i\
<!-- Игра станет хранить миры по старому пути благодаря методу Egornya. -->\
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />\
}' "$MANIFEST_PATH"
sed -i '/<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" \/>/ {
s/.*/<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" \/>\
<!-- Игра станет хранить миры по старому пути благодаря методу Egornya. -->\
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" \/>/
}' "$MANIFEST_PATH"
sed -i '/<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" \/>/ { s/.*/<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" \/> <!-- Игра станет хранить миры по старому пути благодаря методу Egornya. --> <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" \/>/ }' "$MANIFEST_PATH"
so can someone give me a working code? I just can't do anything with it. Even ChatGPT can't help.
uses-permissiontag comprises two lines in the XML file, but yoursedcommand assumes that it is in a single line. BTW, I find your posting difficult to read -it's hard to see what is code and what is just your comment. Please fix your formatting.