Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
M
Magisk
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Magisk
Commits
1ec333ee
Commit
1ec333ee
authored
Oct 22, 2016
by
d8ahazard
Committed by
topjohnwu
Nov 07, 2016
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Cleanup
parent
bbae93aa
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
128 additions
and
104 deletions
+128
-104
MagiskHideFragment.java
...rc/main/java/com/topjohnwu/magisk/MagiskHideFragment.java
+44
-8
MainActivity.java
app/src/main/java/com/topjohnwu/magisk/MainActivity.java
+24
-0
SettingsFragment.java
app/src/main/java/com/topjohnwu/magisk/SettingsFragment.java
+2
-37
SplashActivity.java
app/src/main/java/com/topjohnwu/magisk/SplashActivity.java
+25
-22
ApplicationAdapter.java
...n/java/com/topjohnwu/magisk/utils/ApplicationAdapter.java
+2
-0
Utils.java
app/src/main/java/com/topjohnwu/magisk/utils/Utils.java
+26
-4
drawer.xml
app/src/main/res/menu/drawer.xml
+3
-3
strings.xml
app/src/main/res/values/strings.xml
+1
-1
app_settings.xml
app/src/main/res/xml/app_settings.xml
+0
-28
build.gradle
build.gradle
+1
-1
No files found.
app/src/main/java/com/topjohnwu/magisk/
AutoRoot
Fragment.java
→
app/src/main/java/com/topjohnwu/magisk/
MagiskHide
Fragment.java
View file @
1ec333ee
...
@@ -9,7 +9,6 @@ import android.os.AsyncTask;
...
@@ -9,7 +9,6 @@ import android.os.AsyncTask;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.preference.PreferenceManager
;
import
android.preference.PreferenceManager
;
import
android.support.annotation.Nullable
;
import
android.support.annotation.Nullable
;
import
android.util.TypedValue
;
import
android.util.TypedValue
;
import
android.view.LayoutInflater
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.View
;
...
@@ -18,6 +17,8 @@ import android.widget.ListView;
...
@@ -18,6 +17,8 @@ import android.widget.ListView;
import
com.topjohnwu.magisk.utils.ApplicationAdapter
;
import
com.topjohnwu.magisk.utils.ApplicationAdapter
;
import
com.topjohnwu.magisk.utils.Logger
;
import
com.topjohnwu.magisk.utils.Logger
;
import
com.topjohnwu.magisk.utils.Shell
;
import
com.topjohnwu.magisk.utils.Utils
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Collections
;
...
@@ -26,12 +27,15 @@ import java.util.HashSet;
...
@@ -26,12 +27,15 @@ import java.util.HashSet;
import
java.util.List
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.Set
;
public
class
AutoRootFragment
extends
ListFragment
{
import
static
com
.
topjohnwu
.
magisk
.
utils
.
Utils
.
WhichHide
;
public
class
MagiskHideFragment
extends
ListFragment
{
private
PackageManager
packageManager
=
null
;
private
PackageManager
packageManager
=
null
;
private
List
<
ApplicationInfo
>
applist
=
null
;
private
List
<
ApplicationInfo
>
applist
=
null
;
private
ApplicationAdapter
listadaptor
=
null
;
private
ApplicationAdapter
listadaptor
=
null
;
public
ListView
listView
;
public
ListView
listView
;
public
SharedPreferences
prefs
;
public
SharedPreferences
prefs
;
private
int
hideVersion
;
List
<
String
>
arrayBlackList
;
List
<
String
>
arrayBlackList
;
@Override
@Override
...
@@ -47,7 +51,7 @@ public class AutoRootFragment extends ListFragment {
...
@@ -47,7 +51,7 @@ public class AutoRootFragment extends ListFragment {
}
}
view
.
setPadding
(
horizontalMargin
,
actionBarHeight
,
horizontalMargin
,
verticalMargin
);
view
.
setPadding
(
horizontalMargin
,
actionBarHeight
,
horizontalMargin
,
verticalMargin
);
hideVersion
=
WhichHide
(
getActivity
());
return
view
;
return
view
;
}
}
...
@@ -62,9 +66,9 @@ public class AutoRootFragment extends ListFragment {
...
@@ -62,9 +66,9 @@ public class AutoRootFragment extends ListFragment {
public
void
onResume
()
{
public
void
onResume
()
{
super
.
onResume
();
super
.
onResume
();
initializeElements
();
initializeElements
();
super
.
onResume
();
super
.
onResume
();
getActivity
().
setTitle
(
R
.
string
.
auto_toggl
e
);
getActivity
().
setTitle
(
R
.
string
.
magiskhid
e
);
hideVersion
=
WhichHide
(
getActivity
());
}
}
...
@@ -84,13 +88,29 @@ public class AutoRootFragment extends ListFragment {
...
@@ -84,13 +88,29 @@ public class AutoRootFragment extends ListFragment {
}
}
private
void
ToggleApp
(
String
appToCheck
,
int
position
,
View
v
)
{
private
void
ToggleApp
(
String
appToCheck
,
int
position
,
View
v
)
{
Logger
.
dev
(
"Magisk"
,
"
AutoRoot
Fragment: ToggleApp called for "
+
appToCheck
);
Logger
.
dev
(
"Magisk"
,
"
MagiskHide
Fragment: ToggleApp called for "
+
appToCheck
);
Set
<
String
>
blackListSet
=
prefs
.
getStringSet
(
"auto_blacklist"
,
null
);
Set
<
String
>
blackListSet
=
prefs
.
getStringSet
(
"auto_blacklist"
,
null
);
assert
blackListSet
!=
null
;
assert
blackListSet
!=
null
;
arrayBlackList
=
new
ArrayList
<>(
blackListSet
);
arrayBlackList
=
new
ArrayList
<>(
blackListSet
);
String
UID
=
Utils
.
getAppUID
(
appToCheck
);
if
(!
arrayBlackList
.
contains
(
appToCheck
))
{
if
(!
arrayBlackList
.
contains
(
appToCheck
))
{
arrayBlackList
.
add
(
appToCheck
);
arrayBlackList
.
add
(
appToCheck
);
switch
(
hideVersion
)
{
case
1
:
Shell
.
su
(
"/magisk/.core/magiskhide/add "
+
appToCheck
);
break
;
case
2
:
Shell
.
su
(
"/su/suhide/add "
+
UID
);
break
;
case
3
:
Shell
.
su
(
"/su/suhide/add "
+
UID
+
"&& /magisk/.core/magiskhide/add "
+
appToCheck
);
break
;
default
:
break
;
}
}
else
{
}
else
{
for
(
int
i
=
0
;
i
<
arrayBlackList
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
arrayBlackList
.
size
();
i
++)
{
...
@@ -98,6 +118,20 @@ public class AutoRootFragment extends ListFragment {
...
@@ -98,6 +118,20 @@ public class AutoRootFragment extends ListFragment {
arrayBlackList
.
remove
(
i
);
arrayBlackList
.
remove
(
i
);
}
}
}
}
switch
(
hideVersion
)
{
case
1
:
Shell
.
su
(
"/magisk/.core/magiskhide/rm "
+
appToCheck
);
break
;
case
2
:
Shell
.
su
(
"/su/suhide/rm "
+
UID
);
break
;
case
3
:
Shell
.
su
(
"/su/suhide/rm "
+
UID
+
"&& /magisk/.core/magiskhide/rm "
+
appToCheck
);
break
;
default
:
break
;
}
}
}
Logger
.
dev
(
"Committing set, value is: "
+
arrayBlackList
.
toString
());
Logger
.
dev
(
"Committing set, value is: "
+
arrayBlackList
.
toString
());
...
@@ -108,6 +142,8 @@ public class AutoRootFragment extends ListFragment {
...
@@ -108,6 +142,8 @@ public class AutoRootFragment extends ListFragment {
}
}
private
List
<
ApplicationInfo
>
checkForLaunchIntent
(
List
<
ApplicationInfo
>
list
)
{
private
List
<
ApplicationInfo
>
checkForLaunchIntent
(
List
<
ApplicationInfo
>
list
)
{
ArrayList
<
ApplicationInfo
>
applist
=
new
ArrayList
<>();
ArrayList
<
ApplicationInfo
>
applist
=
new
ArrayList
<>();
for
(
ApplicationInfo
info
:
list
)
{
for
(
ApplicationInfo
info
:
list
)
{
...
...
app/src/main/java/com/topjohnwu/magisk/MainActivity.java
View file @
1ec333ee
...
@@ -19,11 +19,13 @@ import android.support.v4.widget.DrawerLayout;
...
@@ -19,11 +19,13 @@ import android.support.v4.widget.DrawerLayout;
import
android.support.v7.app.ActionBarDrawerToggle
;
import
android.support.v7.app.ActionBarDrawerToggle
;
import
android.support.v7.app.AppCompatActivity
;
import
android.support.v7.app.AppCompatActivity
;
import
android.support.v7.widget.Toolbar
;
import
android.support.v7.widget.Toolbar
;
import
android.view.Menu
;
import
android.view.MenuItem
;
import
android.view.MenuItem
;
import
android.view.View
;
import
android.view.View
;
import
com.topjohnwu.magisk.utils.Logger
;
import
com.topjohnwu.magisk.utils.Logger
;
import
com.topjohnwu.magisk.utils.Shell
;
import
com.topjohnwu.magisk.utils.Shell
;
import
com.topjohnwu.magisk.utils.Utils
;
import
butterknife.BindView
;
import
butterknife.BindView
;
import
butterknife.ButterKnife
;
import
butterknife.ButterKnife
;
...
@@ -90,9 +92,16 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
...
@@ -90,9 +92,16 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
}
}
navigationView
.
setNavigationItemSelectedListener
(
this
);
navigationView
.
setNavigationItemSelectedListener
(
this
);
checkHideSection
();
}
}
@Override
protected
void
onResume
()
{
super
.
onResume
();
checkHideSection
();
}
@Override
@Override
protected
void
onSaveInstanceState
(
Bundle
outState
)
{
protected
void
onSaveInstanceState
(
Bundle
outState
)
{
super
.
onSaveInstanceState
(
outState
);
super
.
onSaveInstanceState
(
outState
);
...
@@ -120,6 +129,16 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
...
@@ -120,6 +129,16 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
return
true
;
return
true
;
}
}
private
void
checkHideSection
()
{
Menu
menu
=
navigationView
.
getMenu
();
if
(
PreferenceManager
.
getDefaultSharedPreferences
(
getApplication
()).
getBoolean
(
"magiskhide"
,
false
)
|
(
Utils
.
itemExist
(
"/data/su/suhide"
)))
{
menu
.
findItem
(
R
.
id
.
magiskhide
).
setVisible
(
true
);
}
else
{
menu
.
findItem
(
R
.
id
.
magiskhide
).
setVisible
(
false
);
}
}
public
void
navigate
(
final
int
itemId
)
{
public
void
navigate
(
final
int
itemId
)
{
Fragment
navFragment
=
null
;
Fragment
navFragment
=
null
;
String
tag
=
""
;
String
tag
=
""
;
...
@@ -139,6 +158,11 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
...
@@ -139,6 +158,11 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
tag
=
"downloads"
;
tag
=
"downloads"
;
navFragment
=
new
ReposFragment
();
navFragment
=
new
ReposFragment
();
break
;
break
;
case
R
.
id
.
magiskhide
:
setTitle
(
R
.
string
.
magiskhide
);
tag
=
"magiskhide"
;
navFragment
=
new
MagiskHideFragment
();
break
;
case
R
.
id
.
log
:
case
R
.
id
.
log
:
setTitle
(
R
.
string
.
log
);
setTitle
(
R
.
string
.
log
);
tag
=
"log"
;
tag
=
"log"
;
...
...
app/src/main/java/com/topjohnwu/magisk/SettingsFragment.java
View file @
1ec333ee
...
@@ -27,8 +27,8 @@ public class SettingsFragment extends PreferenceFragment implements SharedPrefer
...
@@ -27,8 +27,8 @@ public class SettingsFragment extends PreferenceFragment implements SharedPrefer
@Override
@Override
public
void
onCreate
(
Bundle
savedInstanceState
)
{
public
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
super
.
onCreate
(
savedInstanceState
);
addPreferencesFromResource
(
R
.
xml
.
ui
settings
);
addPreferencesFromResource
(
R
.
xml
.
app_
settings
);
PreferenceManager
.
setDefaultValues
(
getActivity
(),
R
.
xml
.
ui
settings
,
false
);
PreferenceManager
.
setDefaultValues
(
getActivity
(),
R
.
xml
.
app_
settings
,
false
);
}
}
@Override
@Override
...
@@ -105,41 +105,6 @@ public class SettingsFragment extends PreferenceFragment implements SharedPrefer
...
@@ -105,41 +105,6 @@ public class SettingsFragment extends PreferenceFragment implements SharedPrefer
Logger
.
dev
(
"SettingsFragment: theme is "
+
pref
);
Logger
.
dev
(
"SettingsFragment: theme is "
+
pref
);
}
else
if
(
key
.
equals
(
"enable_quicktile"
))
{
boolean
checked
=
sharedPreferences
.
getBoolean
(
"enable_quicktile"
,
false
);
if
(
checked
)
{
new
AsyncTask
<
Void
,
Void
,
Boolean
>
()
{
@Override
protected
Boolean
doInBackground
(
Void
...
voids
)
{
return
Utils
.
installTile
(
getActivity
());
}
@Override
protected
void
onPostExecute
(
Boolean
result
)
{
super
.
onPostExecute
(
result
);
if
(
result
)
{
Toast
.
makeText
(
getActivity
(),
"Tile installed"
,
Toast
.
LENGTH_SHORT
).
show
();
}
else
{
Toast
.
makeText
(
getActivity
(),
"Tile installation error"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
}.
executeOnExecutor
(
AsyncTask
.
SERIAL_EXECUTOR
);
}
else
{
new
AsyncTask
<
Void
,
Void
,
Boolean
>
()
{
@Override
protected
Boolean
doInBackground
(
Void
...
voids
)
{
return
Utils
.
uninstallTile
(
getActivity
());
}
@Override
protected
void
onPostExecute
(
Boolean
result
)
{
super
.
onPostExecute
(
result
);
if
(
result
)
{
Toast
.
makeText
(
getActivity
(),
"Tile uninstalled"
,
Toast
.
LENGTH_SHORT
).
show
();
}
else
{
Toast
.
makeText
(
getActivity
(),
"Tile uninstallation error"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
}.
executeOnExecutor
(
AsyncTask
.
SERIAL_EXECUTOR
);
}
}
else
if
(
key
.
equals
(
"busybox"
))
{
}
else
if
(
key
.
equals
(
"busybox"
))
{
boolean
checked
=
sharedPreferences
.
getBoolean
(
"busybox"
,
false
);
boolean
checked
=
sharedPreferences
.
getBoolean
(
"busybox"
,
false
);
new
Async
.
LinkBusyBox
(
checked
).
executeOnExecutor
(
AsyncTask
.
SERIAL_EXECUTOR
);
new
Async
.
LinkBusyBox
(
checked
).
executeOnExecutor
(
AsyncTask
.
SERIAL_EXECUTOR
);
...
...
app/src/main/java/com/topjohnwu/magisk/SplashActivity.java
View file @
1ec333ee
...
@@ -7,11 +7,16 @@ import android.os.Bundle;
...
@@ -7,11 +7,16 @@ import android.os.Bundle;
import
android.preference.PreferenceManager
;
import
android.preference.PreferenceManager
;
import
android.support.v7.app.AppCompatActivity
;
import
android.support.v7.app.AppCompatActivity
;
import
com.topjohnwu.magisk.services.MonitorService
;
import
com.topjohnwu.magisk.utils.Async
;
import
com.topjohnwu.magisk.utils.Async
;
import
com.topjohnwu.magisk.utils.Logger
;
import
com.topjohnwu.magisk.utils.Logger
;
import
com.topjohnwu.magisk.utils.Shell
;
import
com.topjohnwu.magisk.utils.Utils
;
import
com.topjohnwu.magisk.utils.Utils
;
import
java.util.ArrayList
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
public
class
SplashActivity
extends
AppCompatActivity
{
public
class
SplashActivity
extends
AppCompatActivity
{
@Override
@Override
...
@@ -19,7 +24,7 @@ public class SplashActivity extends AppCompatActivity {
...
@@ -19,7 +24,7 @@ public class SplashActivity extends AppCompatActivity {
super
.
onCreate
(
savedInstanceState
);
super
.
onCreate
(
savedInstanceState
);
SharedPreferences
prefs
=
PreferenceManager
.
getDefaultSharedPreferences
(
getApplication
());
SharedPreferences
prefs
=
PreferenceManager
.
getDefaultSharedPreferences
(
getApplication
());
if
(
prefs
.
getString
(
"theme"
,
""
).
equals
(
"Dark"
))
{
if
(
prefs
.
getString
(
"theme"
,
""
).
equals
(
"Dark"
))
{
setTheme
(
R
.
style
.
AppTheme_dh
);
setTheme
(
R
.
style
.
AppTheme_dh
);
}
}
...
@@ -27,10 +32,25 @@ public class SplashActivity extends AppCompatActivity {
...
@@ -27,10 +32,25 @@ public class SplashActivity extends AppCompatActivity {
Logger
.
logShell
=
prefs
.
getBoolean
(
"shell_logging"
,
false
);
Logger
.
logShell
=
prefs
.
getBoolean
(
"shell_logging"
,
false
);
// Set up default preferences,make sure we add "extra" blacklist entries.
// Set up default preferences,make sure we add "extra" blacklist entries.
if
(!
defaultPrefs
.
contains
(
"auto_blacklist"
))
{
int
hideVersion
=
Utils
.
WhichHide
(
getApplication
());
List
<
String
>
hideList
;
Set
<
String
>
set
=
new
HashSet
<>();
switch
(
hideVersion
)
{
case
1
:
hideList
=
Shell
.
su
(
"/magisk/.core/magiskhide/list"
);
set
.
addAll
(
hideList
);
break
;
case
2
:
hideList
=
Shell
.
su
(
"/su/suhide/list"
);
break
;
case
3
:
hideList
=
Shell
.
su
(
"/magisk/.core/magiskhide/list"
);
hideList
.
addAll
(
Shell
.
su
(
"/su/suhide/list"
));
set
.
addAll
(
hideList
);
}
if
(!
prefs
.
contains
(
"auto_blacklist"
))
{
Logger
.
dev
(
"SplashActivity: Setting default preferences for application"
);
Logger
.
dev
(
"SplashActivity: Setting default preferences for application"
);
SharedPreferences
.
Editor
editor
=
defaultPrefs
.
edit
();
SharedPreferences
.
Editor
editor
=
prefs
.
edit
();
Set
<
String
>
set
=
new
HashSet
<>();
set
.
add
(
"com.google.android.apps.walletnfcrel"
);
set
.
add
(
"com.google.android.apps.walletnfcrel"
);
set
.
add
(
"com.google.android.gms"
);
set
.
add
(
"com.google.android.gms"
);
set
.
add
(
"com.google.commerce.tapandpay"
);
set
.
add
(
"com.google.commerce.tapandpay"
);
...
@@ -40,23 +60,6 @@ public class SplashActivity extends AppCompatActivity {
...
@@ -40,23 +60,6 @@ public class SplashActivity extends AppCompatActivity {
editor
.
apply
();
editor
.
apply
();
}
}
// Set up toggle states based on preferences, start services, disable root if set
if
(
Utils
.
autoToggleEnabled
(
getApplicationContext
()))
{
if
(!
Utils
.
hasServicePermission
(
getApplicationContext
()))
{
Utils
.
toggleAutoRoot
(
false
,
getApplicationContext
());
}
}
if
(
Utils
.
autoToggleEnabled
(
getApplicationContext
()))
{
if
(!
Utils
.
isMyServiceRunning
(
MonitorService
.
class
,
getApplicationContext
()))
{
Intent
myIntent
=
new
Intent
(
getApplication
(),
MonitorService
.
class
);
getApplication
().
startService
(
myIntent
);
}
}
else
if
(
defaultPrefs
.
getBoolean
(
"keep_root_off"
,
false
))
{
Utils
.
toggleRoot
(
false
,
getApplication
());
}
// Set up quick settings tile
Utils
.
setupQuickSettingsTile
(
getApplicationContext
());
// Initialize
// Initialize
prefs
.
edit
()
prefs
.
edit
()
...
...
app/src/main/java/com/topjohnwu/magisk/utils/ApplicationAdapter.java
View file @
1ec333ee
...
@@ -96,6 +96,8 @@ public class ApplicationAdapter extends ArrayAdapter<ApplicationInfo> {
...
@@ -96,6 +96,8 @@ public class ApplicationAdapter extends ArrayAdapter<ApplicationInfo> {
}
}
private
boolean
CheckApp
(
String
appToCheck
)
{
private
boolean
CheckApp
(
String
appToCheck
)
{
boolean
starter
=
false
;
boolean
starter
=
false
;
Set
<
String
>
set
=
prefs
.
getStringSet
(
"auto_blacklist"
,
null
);
Set
<
String
>
set
=
prefs
.
getStringSet
(
"auto_blacklist"
,
null
);
...
...
app/src/main/java/com/topjohnwu/magisk/utils/Utils.java
View file @
1ec333ee
...
@@ -4,25 +4,24 @@ import android.Manifest;
...
@@ -4,25 +4,24 @@ import android.Manifest;
import
android.app.DownloadManager
;
import
android.app.DownloadManager
;
import
android.content.Context
;
import
android.content.Context
;
import
android.content.IntentFilter
;
import
android.content.IntentFilter
;
import
android.content.SharedPreferences
;
import
android.content.pm.PackageManager
;
import
android.content.pm.PackageManager
;
import
android.net.Uri
;
import
android.net.Uri
;
import
android.os.Environment
;
import
android.os.Environment
;
import
android.preference.PreferenceManager
;
import
android.support.v4.app.ActivityCompat
;
import
android.support.v4.app.ActivityCompat
;
import
android.util.Base64
;
import
android.util.Base64
;
import
android.widget.Toast
;
import
android.widget.Toast
;
import
com.topjohnwu.magisk.R
;
import
com.topjohnwu.magisk.R
;
import
com.topjohnwu.magisk.receivers.DownloadReceiver
;
import
com.topjohnwu.magisk.receivers.DownloadReceiver
;
import
com.topjohnwu.magisk.receivers.PrivateBroadcastReceiver
;
import
com.topjohnwu.magisk.services.MonitorService
;
import
com.topjohnwu.magisk.services.TileServiceCompat
;
import
com.topjohnwu.magisk.services.TileServiceNewApi
;
import
java.io.File
;
import
java.io.File
;
import
java.io.UnsupportedEncodingException
;
import
java.io.UnsupportedEncodingException
;
import
java.security.InvalidKeyException
;
import
java.security.InvalidKeyException
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.spec.InvalidKeySpecException
;
import
java.security.spec.InvalidKeySpecException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
javax.crypto.BadPaddingException
;
import
javax.crypto.BadPaddingException
;
...
@@ -53,6 +52,29 @@ public class Utils {
...
@@ -53,6 +52,29 @@ public class Utils {
}
}
}
}
public
static
String
getAppUID
(
String
packageName
)
{
List
<
String
>
retString
=
Shell
.
su
(
"ls -nld /data/data/"
+
packageName
);
String
splitMe
=
retString
.
get
(
0
);
String
[]
splitString
=
retString
.
get
(
0
).
split
(
" "
);
return
splitString
[
5
];
}
public
static
int
WhichHide
(
Context
context
)
{
Boolean
mh
=
PreferenceManager
.
getDefaultSharedPreferences
(
context
).
getBoolean
(
"magiskhide"
,
false
);
Boolean
sh
=
Utils
.
itemExist
(
"/su/suhide/add"
);
if
(
mh
&&
!
sh
)
{
return
1
;
}
if
(
sh
&&
!
mh
)
{
return
2
;
}
if
(
sh
&&
mh
)
{
return
3
;
}
return
0
;
}
public
static
boolean
commandExists
(
String
s
)
{
public
static
boolean
commandExists
(
String
s
)
{
List
<
String
>
ret
;
List
<
String
>
ret
;
String
command
=
"if [ -z $(which "
+
s
+
") ]; then echo false; else echo true; fi"
;
String
command
=
"if [ -z $(which "
+
s
+
") ]; then echo false; else echo true; fi"
;
...
...
app/src/main/res/menu/drawer.xml
View file @
1ec333ee
...
@@ -23,10 +23,10 @@
...
@@ -23,10 +23,10 @@
android:title=
"@string/downloads"
/>
android:title=
"@string/downloads"
/>
<item
<item
<item
android:id=
"@+id/magiskhide"
android:id=
"@+id/autoroot"
android:icon=
"@drawable/ic_autoroot"
android:icon=
"@drawable/ic_autoroot"
android:title=
"@string/auto_toggle"
/>
android:title=
"@string/magiskhide"
/>
<item
android:id=
"@+id/log"
android:id=
"@+id/log"
android:icon=
"@drawable/ic_bug_report"
android:icon=
"@drawable/ic_bug_report"
android:title=
"@string/log"
/>
android:title=
"@string/log"
/>
...
...
app/src/main/res/values/strings.xml
View file @
1ec333ee
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
<!--Welcome Activity-->
<!--Welcome Activity-->
<string
name=
"navigation_drawer_open"
>
Open navigation drawer
</string>
<string
name=
"navigation_drawer_open"
>
Open navigation drawer
</string>
<string
name=
"navigation_drawer_close"
>
Close navigation drawer
</string>
<string
name=
"navigation_drawer_close"
>
Close navigation drawer
</string>
<string
name=
"
auto_toggl
e"
>
MagiskHide
</string>
<string
name=
"
magiskhid
e"
>
MagiskHide
</string>
<string
name=
"modules"
>
Modules
</string>
<string
name=
"modules"
>
Modules
</string>
<string
name=
"downloads"
>
Downloads
</string>
<string
name=
"downloads"
>
Downloads
</string>
<string
name=
"log"
>
Log
</string>
<string
name=
"log"
>
Log
</string>
...
...
app/src/main/res/xml/app_settings.xml
View file @
1ec333ee
...
@@ -31,34 +31,6 @@
...
@@ -31,34 +31,6 @@
</PreferenceCategory>
</PreferenceCategory>
<PreferenceCategory
android:title=
"@string/settings_quicksettings_category"
>
<CheckBoxPreference
android:key=
"enable_quicktile"
android:defaultValue=
"false"
android:title=
"@string/settings_enable_quicktile_title"
android:summary=
"@string/settings_enable_quicktile_summary"
/>
</PreferenceCategory>
<PreferenceCategory
android:title=
"@string/settings_root_category"
>
<CheckBoxPreference
android:key=
"keep_root_off"
android:defaultValue=
"false"
android:title=
"@string/settings_keep_root_off_title"
android:summary=
"@string/settings_keep_root_off_summary"
/>
<CheckBoxPreference
android:key=
"hide_root_notification"
android:defaultValue=
"false"
android:title=
"@string/settings_hide_root_notification_title"
android:summary=
"@string/settings_hide_root_notification_summary"
/>
</PreferenceCategory>
<PreferenceCategory
<PreferenceCategory
android:title=
"@string/settings_development_category"
>
android:title=
"@string/settings_development_category"
>
...
...
build.gradle
View file @
1ec333ee
...
@@ -6,7 +6,7 @@ buildscript {
...
@@ -6,7 +6,7 @@ buildscript {
mavenCentral
()
mavenCentral
()
}
}
dependencies
{
dependencies
{
classpath
'com.android.tools.build:gradle:2.2.
1
'
classpath
'com.android.tools.build:gradle:2.2.
2
'
// NOTE: Do not place your application dependencies here; they belong
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
// in the individual module build.gradle files
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment