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
6a40e181
Commit
6a40e181
authored
Sep 20, 2016
by
d8ahazard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
More work on Quick Settings, refactoring
parent
2cdb6b81
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
144 additions
and
20 deletions
+144
-20
build.gradle
app/build.gradle
+1
-0
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+16
-5
RootFragment.java
app/src/main/java/com/topjohnwu/magisk/RootFragment.java
+1
-0
WelcomeActivity.java
app/src/main/java/com/topjohnwu/magisk/WelcomeActivity.java
+4
-4
AutoStartReceiver.java
...ava/com/topjohnwu/magisk/receivers/AutoStartReceiver.java
+6
-2
PrivateBroadcastReceiver.java
.../topjohnwu/magisk/receivers/PrivateBroadcastReceiver.java
+35
-0
MonitorService.java
...in/java/com/topjohnwu/magisk/services/MonitorService.java
+3
-1
QuickSettingTileService.java
...om/topjohnwu/magisk/services/QuickSettingTileService.java
+2
-1
LogFragment.java
...src/main/java/com/topjohnwu/magisk/utils/LogFragment.java
+2
-1
Utils.java
app/src/main/java/com/topjohnwu/magisk/utils/Utils.java
+73
-5
build.gradle
build.gradle
+1
-1
No files found.
app/build.gradle
View file @
6a40e181
...
...
@@ -37,5 +37,6 @@ dependencies {
compile
'com.android.support:design:24.2.0'
compile
'com.jakewharton:butterknife:8.4.0'
compile
'com.github.michalis-vitos:aFileChooser:master'
compile
'com.github.kcoppock:BroadcastTileSupport:master'
annotationProcessor
'com.jakewharton:butterknife-compiler:8.4.0'
}
app/src/main/AndroidManifest.xml
View file @
6a40e181
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
package=
"com.topjohnwu.magisk"
>
package=
"com.topjohnwu.magisk"
>
<uses-sdk
tools:overrideLibrary=
"com.kcoppock.broadcatsttilesupport"
/>
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.ACCESS_NETWORK_STATE"
/>
...
...
@@ -20,7 +21,7 @@
android:theme=
"@style/AppTheme"
tools:ignore=
"AllowBackup,GoogleAppIndexingWarning"
>
<service
android:name=
".MonitorService"
android:name=
".
services.
MonitorService"
android:label=
"@string/accessibility_service_name"
android:permission=
"android.permission.BIND_ACCESSIBILITY_SERVICE"
>
<intent-filter>
...
...
@@ -31,7 +32,7 @@
android:resource=
"@xml/accessibilityservice"
/>
</service>
<service
android:name=
".QuickSettingTileService"
android:name=
".
services.
QuickSettingTileService"
android:icon=
"@drawable/ic_autoroot"
android:label=
"@string/app_name"
android:permission=
"android.permission.BIND_QUICK_SETTINGS_TILE"
>
...
...
@@ -40,6 +41,16 @@
</intent-filter>
</service>
<receiver
android:name=
".receivers.PrivateBroadcastReceiver"
android:exported=
"false"
>
<intent-filter>
<action
android:name=
"com.topjohnwu.magisk.CUSTOMTILE_ACTION_AUTOROOT"
/>
<action
android:name=
"com.topjohnwu.magisk.CUSTOMTILE_ACTION_DISABLEROOT"
/>
<action
android:name=
"com.topjohnwu.magisk.CUSTOMTILE_ACTION_ENABLEROOT"
/>
</intent-filter>
</receiver>
<activity
android:name=
".WelcomeActivity"
android:configChanges=
"orientation|screenSize"
...
...
@@ -52,7 +63,7 @@
</activity>
<activity
android:name=
"com.ipaulpro.afilechooser.FileChooserActivity"
android:enabled=
"
@bool/use_activity
"
android:enabled=
"
true
"
android:exported=
"true"
android:icon=
"@drawable/ic_chooser"
android:label=
"@string/choose_file"
>
...
...
@@ -90,7 +101,7 @@
android:name=
"android.support.FILE_PROVIDER_PATHS"
android:resource=
"@xml/file_paths"
/>
</provider>
<receiver
android:name=
".
AutoStart
"
>
<receiver
android:name=
".
receivers.AutoStartReceiver
"
>
<intent-filter>
<action
android:name=
"android.intent.action.BOOT_COMPLETED"
/>
</intent-filter>
...
...
app/src/main/java/com/topjohnwu/magisk/RootFragment.java
View file @
6a40e181
...
...
@@ -22,6 +22,7 @@ import android.widget.Switch;
import
android.widget.TextView
;
import
android.widget.Toast
;
import
com.topjohnwu.magisk.services.MonitorService
;
import
com.topjohnwu.magisk.utils.Shell
;
import
com.topjohnwu.magisk.utils.Utils
;
...
...
app/src/main/java/com/topjohnwu/magisk/WelcomeActivity.java
View file @
6a40e181
...
...
@@ -24,6 +24,8 @@ import android.view.MenuItem;
import
android.view.View
;
import
com.topjohnwu.magisk.module.RepoHelper
;
import
com.topjohnwu.magisk.utils.LogFragment
;
import
com.topjohnwu.magisk.services.MonitorService
;
import
com.topjohnwu.magisk.utils.Utils
;
import
butterknife.BindView
;
...
...
@@ -62,10 +64,8 @@ public class WelcomeActivity extends AppCompatActivity implements NavigationView
}
}
}
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
N
)
{
Intent
serviceIntent
=
new
Intent
(
this
,
QuickSettingTileService
.
class
);
startService
(
serviceIntent
);
}
Utils
.
SetupQuickSettingsTile
(
getApplicationContext
());
if
(
ActivityCompat
.
checkSelfPermission
(
this
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
)
!=
PackageManager
.
PERMISSION_GRANTED
&&
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
M
)
{
requestPermissions
(
new
String
[]{
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
},
0
);
...
...
app/src/main/java/com/topjohnwu/magisk/
AutoStart
.java
→
app/src/main/java/com/topjohnwu/magisk/
receivers/AutoStartReceiver
.java
View file @
6a40e181
package
com
.
topjohnwu
.
magisk
;
package
com
.
topjohnwu
.
magisk
.
receivers
;
import
android.content.BroadcastReceiver
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.util.Log
;
public
class
AutoStart
extends
BroadcastReceiver
{
import
com.topjohnwu.magisk.services.MonitorService
;
import
com.topjohnwu.magisk.utils.Utils
;
public
class
AutoStartReceiver
extends
BroadcastReceiver
{
@Override
public
void
onReceive
(
Context
context
,
Intent
intent
)
{
Log
.
d
(
"Magisk"
,
"Received Boot call, attempting to start service"
);
Intent
myIntent
=
new
Intent
(
context
,
MonitorService
.
class
);
context
.
startService
(
myIntent
);
Utils
.
SetupQuickSettingsTile
(
context
);
}
}
\ No newline at end of file
app/src/main/java/com/topjohnwu/magisk/receivers/PrivateBroadcastReceiver.java
0 → 100644
View file @
6a40e181
package
com
.
topjohnwu
.
magisk
.
receivers
;
import
android.content.BroadcastReceiver
;
import
android.content.Context
;
import
android.content.Intent
;
import
com.topjohnwu.magisk.utils.Utils
;
/**
* Receiver for click events on the custom M Quick Settings tile
*/
public
final
class
PrivateBroadcastReceiver
extends
BroadcastReceiver
{
public
static
final
String
ACTION_AUTOROOT
=
"com.topjohnwu.magisk.CUSTOMTILE_ACTION_AUTOROOT"
;
public
static
final
String
ACTION_DISABLEROOT
=
"com.topjohnwu.magisk.CUSTOMTILE_ACTION_DISABLEROOT"
;
public
static
final
String
ACTION_ENABLEROOT
=
"com.topjohnwu.magisk.CUSTOMTILE_ACTION_ENABLEROOT"
;
@Override
public
void
onReceive
(
Context
context
,
Intent
intent
)
{
final
String
action
=
intent
.
getAction
();
if
(
ACTION_AUTOROOT
.
equals
(
action
))
{
Utils
.
toggleAutoRoot
(
true
,
context
);
}
if
(
ACTION_ENABLEROOT
.
equals
(
action
))
{
Utils
.
toggleAutoRoot
(
false
,
context
);
Utils
.
toggleRoot
(
true
);
}
if
(
ACTION_DISABLEROOT
.
equals
(
action
))
{
Utils
.
toggleRoot
(
false
);
}
Utils
.
SetupQuickSettingsTile
(
context
);
}
}
\ No newline at end of file
app/src/main/java/com/topjohnwu/magisk/MonitorService.java
→
app/src/main/java/com/topjohnwu/magisk/
services/
MonitorService.java
View file @
6a40e181
package
com
.
topjohnwu
.
magisk
;
package
com
.
topjohnwu
.
magisk
.
services
;
import
android.accessibilityservice.AccessibilityService
;
import
android.accessibilityservice.AccessibilityServiceInfo
;
...
...
@@ -16,6 +16,8 @@ import android.support.v4.app.NotificationCompat;
import
android.util.Log
;
import
android.view.accessibility.AccessibilityEvent
;
import
com.topjohnwu.magisk.R
;
import
com.topjohnwu.magisk.WelcomeActivity
;
import
com.topjohnwu.magisk.utils.Utils
;
import
java.util.Set
;
...
...
app/src/main/java/com/topjohnwu/magisk/QuickSettingTileService.java
→
app/src/main/java/com/topjohnwu/magisk/
services/
QuickSettingTileService.java
View file @
6a40e181
package
com
.
topjohnwu
.
magisk
;
package
com
.
topjohnwu
.
magisk
.
services
;
import
android.annotation.SuppressLint
;
import
android.graphics.drawable.Icon
;
...
...
@@ -6,6 +6,7 @@ import android.service.quicksettings.Tile;
import
android.service.quicksettings.TileService
;
import
android.util.Log
;
import
com.topjohnwu.magisk.R
;
import
com.topjohnwu.magisk.utils.Utils
;
@SuppressLint
(
"NewApi"
)
...
...
app/src/main/java/com/topjohnwu/magisk/LogFragment.java
→
app/src/main/java/com/topjohnwu/magisk/
utils/
LogFragment.java
View file @
6a40e181
package
com
.
topjohnwu
.
magisk
;
package
com
.
topjohnwu
.
magisk
.
utils
;
import
android.Manifest
;
import
android.annotation.SuppressLint
;
...
...
@@ -25,6 +25,7 @@ import android.widget.ScrollView;
import
android.widget.TextView
;
import
android.widget.Toast
;
import
com.topjohnwu.magisk.R
;
import
com.topjohnwu.magisk.utils.Utils
;
import
java.io.File
;
...
...
app/src/main/java/com/topjohnwu/magisk/utils/Utils.java
View file @
6a40e181
...
...
@@ -14,6 +14,7 @@ import android.content.pm.PackageManager;
import
android.database.Cursor
;
import
android.net.Uri
;
import
android.os.AsyncTask
;
import
android.os.Build
;
import
android.os.Environment
;
import
android.preference.PreferenceManager
;
import
android.provider.DocumentsContract
;
...
...
@@ -27,13 +28,16 @@ import android.util.Log;
import
android.view.View
;
import
android.widget.Toast
;
import
com.kcoppock.broadcasttilesupport.BroadcastTileIntentBuilder
;
import
com.topjohnwu.magisk.ModulesFragment
;
import
com.topjohnwu.magisk.MonitorService
;
import
com.topjohnwu.magisk.R
;
import
com.topjohnwu.magisk.ReposFragment
;
import
com.topjohnwu.magisk.module.Module
;
import
com.topjohnwu.magisk.module.Repo
;
import
com.topjohnwu.magisk.module.RepoHelper
;
import
com.topjohnwu.magisk.receivers.PrivateBroadcastReceiver
;
import
com.topjohnwu.magisk.services.MonitorService
;
import
com.topjohnwu.magisk.services.QuickSettingTileService
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
...
...
@@ -65,12 +69,12 @@ import javax.crypto.spec.DESKeySpec;
public
class
Utils
{
public
static
int
magiskVersion
,
remoteMagiskVersion
=
-
1
,
remoteAppVersion
=
-
1
;
p
ublic
static
String
magiskLink
,
magiskChangelog
,
appChangelog
,
appLink
,
phhLink
,
supersuLink
;
p
rivate
static
String
magiskLink
,
magiskChangelog
,
appChangelog
,
appLink
,
phhLink
,
supersuLink
;
private
static
final
String
TAG
=
"Magisk"
;
p
ublic
static
final
String
MAGISK_PATH
=
"/magisk"
;
p
ublic
static
final
String
MAGISK_CACHE_PATH
=
"/cache/magisk"
;
p
ublic
static
final
String
UPDATE_JSON
=
"https://raw.githubusercontent.com/topjohnwu/MagiskManager/updates/magisk_update.json"
;
p
rivate
static
final
String
MAGISK_PATH
=
"/magisk"
;
p
rivate
static
final
String
MAGISK_CACHE_PATH
=
"/cache/magisk"
;
p
rivate
static
final
String
UPDATE_JSON
=
"https://raw.githubusercontent.com/topjohnwu/MagiskManager/updates/magisk_update.json"
;
public
static
boolean
fileExist
(
String
path
)
{
List
<
String
>
ret
;
...
...
@@ -190,6 +194,70 @@ public class Utils {
return
value
;
}
public
static
void
SetupQuickSettingsTile
(
Context
mContext
)
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
N
)
{
Intent
serviceIntent
=
new
Intent
(
mContext
,
QuickSettingTileService
.
class
);
mContext
.
startService
(
serviceIntent
);
}
if
(
Build
.
VERSION
.
SDK_INT
==
Build
.
VERSION_CODES
.
M
)
{
String
mLabelString
;
int
mRootIcon
=
R
.
drawable
.
root
;
int
mAutoRootIcon
=
R
.
drawable
.
ic_autoroot
;
int
mRootsState
=
CheckRootsState
(
mContext
);
final
Intent
enableBroadcast
=
new
Intent
(
PrivateBroadcastReceiver
.
ACTION_ENABLEROOT
);
final
Intent
disableBroadcast
=
new
Intent
(
PrivateBroadcastReceiver
.
ACTION_DISABLEROOT
);
final
Intent
autoBroadcast
=
new
Intent
(
PrivateBroadcastReceiver
.
ACTION_AUTOROOT
);
Intent
intent
;
int
mIcon
;
switch
(
mRootsState
)
{
case
2
:
mLabelString
=
"Auto-root"
;
mIcon
=
mAutoRootIcon
;
intent
=
autoBroadcast
;
break
;
case
1
:
mLabelString
=
"Root enabled"
;
mIcon
=
mRootIcon
;
intent
=
enableBroadcast
;
break
;
case
0
:
mLabelString
=
"Root disabled"
;
mIcon
=
mRootIcon
;
intent
=
disableBroadcast
;
break
;
default
:
mLabelString
=
"Root enabled"
;
mIcon
=
mRootIcon
;
intent
=
enableBroadcast
;
break
;
}
Intent
tileConfigurationIntent
=
new
BroadcastTileIntentBuilder
(
mContext
,
"com.magisk.ROOT_TILE"
)
.
setLabel
(
mLabelString
)
.
setIconResource
(
mIcon
)
.
setOnClickBroadcast
(
intent
)
.
build
();
mContext
.
sendBroadcast
(
tileConfigurationIntent
);
}
}
// Gets an overall state for the quick settings tile
// 0 for root disabled, 1 for root enabled (no auto), 2 for auto-root
public
static
int
CheckRootsState
(
Context
mContext
)
{
if
(
autoRootEnabled
(
mContext
))
{
return
2
;
}
else
{
if
(
rootStatus
())
{
return
1
;
}
else
{
return
0
;
}
}
}
// To check if service is enabled
public
static
boolean
hasServicePermission
(
Context
mContext
)
{
int
accessibilityEnabled
=
0
;
...
...
build.gradle
View file @
6a40e181
...
...
@@ -6,7 +6,7 @@ buildscript {
mavenCentral
()
}
dependencies
{
classpath
'com.android.tools.build:gradle:2.2.0
-rc1
'
classpath
'com.android.tools.build:gradle:2.2.0'
// NOTE: Do not place your application dependencies here; they belong
// 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