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
7e7ddeb9
Commit
7e7ddeb9
authored
Mar 28, 2022
by
topjohnwu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Cleanup database migration code
parent
9e821808
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
27 deletions
+40
-27
db.cpp
native/jni/core/db.cpp
+40
-27
No files found.
native/jni/core/db.cpp
View file @
7e7ddeb9
...
@@ -154,45 +154,58 @@ static char *open_and_init_db(sqlite3 *&db) {
...
@@ -154,45 +154,58 @@ static char *open_and_init_db(sqlite3 *&db) {
sqlite3_close
(
db
);
sqlite3_close
(
db
);
return
strdup
(
"Downgrading database is not supported"
);
return
strdup
(
"Downgrading database is not supported"
);
}
}
if
(
ver
<
3
)
{
// Policies
auto
create_policy
=
[
&
]
{
sqlite3_exec
(
db
,
sqlite3_exec
(
db
,
"CREATE TABLE IF NOT EXISTS policies "
"CREATE TABLE IF NOT EXISTS policies "
"(uid INT, package_name TEXT, policy INT, until INT, "
"(uid INT, package_name TEXT, policy INT, until INT, "
"logging INT, notification INT, PRIMARY KEY(uid))"
,
"logging INT, notification INT, PRIMARY KEY(uid))"
,
nullptr
,
nullptr
,
&
err
);
nullptr
,
nullptr
,
&
err
);
err_ret
(
err
)
;
}
;
// Settings
auto
create_settings
=
[
&
]
{
sqlite3_exec
(
db
,
sqlite3_exec
(
db
,
"CREATE TABLE IF NOT EXISTS settings "
"CREATE TABLE IF NOT EXISTS settings "
"(key TEXT, value INT, PRIMARY KEY(key))"
,
"(key TEXT, value INT, PRIMARY KEY(key))"
,
nullptr
,
nullptr
,
&
err
);
nullptr
,
nullptr
,
&
err
);
err_ret
(
err
);
};
ver
=
3
;
auto
create_strings
=
[
&
]
{
upgrade
=
true
;
}
if
(
ver
<
4
)
{
// Strings
sqlite3_exec
(
db
,
sqlite3_exec
(
db
,
"CREATE TABLE IF NOT EXISTS strings "
"CREATE TABLE IF NOT EXISTS strings "
"(key TEXT, value TEXT, PRIMARY KEY(key))"
,
"(key TEXT, value TEXT, PRIMARY KEY(key))"
,
nullptr
,
nullptr
,
&
err
);
nullptr
,
nullptr
,
&
err
);
err_ret
(
err
);
};
/* Directly jump to version 6 */
auto
create_denylist
=
[
&
]
{
ver
=
6
;
upgrade
=
true
;
}
if
(
ver
<
7
)
{
sqlite3_exec
(
db
,
sqlite3_exec
(
db
,
"CREATE TABLE IF NOT EXISTS
hide
list "
"CREATE TABLE IF NOT EXISTS
deny
list "
"(package_name TEXT, process TEXT, PRIMARY KEY(package_name, process))
;
"
,
"(package_name TEXT, process TEXT, PRIMARY KEY(package_name, process))"
,
nullptr
,
nullptr
,
&
err
);
nullptr
,
nullptr
,
&
err
);
};
// Database changelog:
//
// 0 - 6: DB stored in app private data. There are no longer any code in the project to
// migrate these data, so no need to take any of these versions into consideration.
// 7 : create table 'hidelist' (process TEXT, PRIMARY KEY(process))
// 8 : add new column (package_name TEXT) to table 'hidelist'
// 9 : rebuild table 'hidelist' to update primary key (PRIMARY KEY(package_name, process))
// 10: remove table 'logs'
// 11: remove table 'hidelist' and create table 'denylist' (same data structure)
if
(
/* 0, 1, 2, 3, 4, 5, 6 */
ver
<=
6
)
{
create_policy
();
err_ret
(
err
);
err_ret
(
err
);
/* Directly jump to version 9 */
create_settings
();
ver
=
9
;
err_ret
(
err
);
create_strings
();
err_ret
(
err
);
create_denylist
();
err_ret
(
err
);
// Directly jump to latest
ver
=
DB_VERSION
;
upgrade
=
true
;
upgrade
=
true
;
}
}
if
(
ver
<
8
)
{
if
(
ver
==
7
)
{
sqlite3_exec
(
db
,
sqlite3_exec
(
db
,
"BEGIN TRANSACTION;"
"BEGIN TRANSACTION;"
"ALTER TABLE hidelist RENAME TO hidelist_tmp;"
"ALTER TABLE hidelist RENAME TO hidelist_tmp;"
...
@@ -203,11 +216,11 @@ static char *open_and_init_db(sqlite3 *&db) {
...
@@ -203,11 +216,11 @@ static char *open_and_init_db(sqlite3 *&db) {
"COMMIT;"
,
"COMMIT;"
,
nullptr
,
nullptr
,
&
err
);
nullptr
,
nullptr
,
&
err
);
err_ret
(
err
);
err_ret
(
err
);
/
* Directly jump to version 9 */
/
/ Directly jump to version 9
ver
=
9
;
ver
=
9
;
upgrade
=
true
;
upgrade
=
true
;
}
}
if
(
ver
<
9
)
{
if
(
ver
==
8
)
{
sqlite3_exec
(
db
,
sqlite3_exec
(
db
,
"BEGIN TRANSACTION;"
"BEGIN TRANSACTION;"
"ALTER TABLE hidelist RENAME TO hidelist_tmp;"
"ALTER TABLE hidelist RENAME TO hidelist_tmp;"
...
@@ -221,20 +234,20 @@ static char *open_and_init_db(sqlite3 *&db) {
...
@@ -221,20 +234,20 @@ static char *open_and_init_db(sqlite3 *&db) {
ver
=
9
;
ver
=
9
;
upgrade
=
true
;
upgrade
=
true
;
}
}
if
(
ver
<
10
)
{
if
(
ver
==
9
)
{
sqlite3_exec
(
db
,
"DROP TABLE IF EXISTS logs"
,
nullptr
,
nullptr
,
&
err
);
sqlite3_exec
(
db
,
"DROP TABLE IF EXISTS logs"
,
nullptr
,
nullptr
,
&
err
);
err_ret
(
err
);
err_ret
(
err
);
ver
=
10
;
ver
=
10
;
upgrade
=
true
;
upgrade
=
true
;
}
}
if
(
ver
<
11
)
{
if
(
ver
==
10
)
{
sqlite3_exec
(
db
,
sqlite3_exec
(
db
,
"DROP TABLE IF EXISTS hidelist;"
"DROP TABLE IF EXISTS hidelist;"
"CREATE TABLE IF NOT EXISTS denylist "
"(package_name TEXT, process TEXT, PRIMARY KEY(package_name, process));"
"DELETE FROM settings WHERE key='magiskhide';"
,
"DELETE FROM settings WHERE key='magiskhide';"
,
nullptr
,
nullptr
,
&
err
);
nullptr
,
nullptr
,
&
err
);
err_ret
(
err
);
err_ret
(
err
);
create_denylist
();
err_ret
(
err
);
ver
=
11
;
ver
=
11
;
upgrade
=
true
;
upgrade
=
true
;
}
}
...
...
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