8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-et-rEE/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Sulge
4 | Flattr
5 | Flattr võtab 10% igakuist tasu!
6 | Google Play pood
7 | Annetused rakenduse sees ei ole toetatud. Kas Google Play pood on korrektselt paigaldatud?
8 | Google võtab 30% igalt annetuselt!
9 | Anneta!
10 | Kui palju?
11 | PayPal
12 | Sellel nupul klikates saad valida kui palju soovid annetada!
13 | Tänan!
14 | Tänan annetamast! \nHindan seda väga!
15 |
16 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-sv/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Avsluta
4 | Flattr
5 | Flattr tar 10% som månadskostnad
6 | Google Play Store
7 | In-App-donationer stödjs inte. Är Google Play Store installerad korrekt?
8 | Google tar 30% av varje donation
9 | Donera!
10 | Hur mycket?
11 | PayPal
12 | Du kan välja hur mycket du vill donera efter du har tryckt på knappen!
13 | Tack!
14 | Tack för donationen!\nDet uppskattas verkligen!
15 |
16 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-he/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | לא נמצא Busybox. כדי להתקין אותו מהמרקט לחץ על הלחצן מתחת.
4 | Flattr
5 | Flattr מספר הנחה של 10 % לתשלום החודשי!
6 | אנדרואיד מרקט
7 | תרומות לתוכנה אינם נתמכות. האם המרקט של גוגל אנדרואיד מותקן כראוי?
8 | גוגל מקבלת 30% מסך התרומה!
9 | תרומה!
10 | כמה?
11 | PayPal
12 | אתה יכול לבחור כמה אתה רוצה לתרום על ידי לחיצה על הכפתור!
13 | תודה!
14 | תודה על תרומתך!\nאני מאוד מעריך זאת!
15 |
16 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-sl-rSI/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Zapri
4 | Flattr
5 | Flattr vzame 10% kot mesečni strošek!
6 | Google Trgovina (Play Store)
7 | Donacije znotraj aplikacije niso možne. Imate nameščeno Google Trgovino (Play Store)?
8 | Google vzame 30% od vsake donacije!
9 | Doniraj!
10 | Koliko?
11 | PayPal
12 | O velikosti donacije boste odločili po tem ko pritisnete gumb!
13 | Hvala!
14 | Hvala za donacijo!\nRes cenim to!
15 |
16 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-iw-rIL/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | לא נמצא Busybox. כדי להתקין אותו מהמרקט לחץ על הלחצן מתחת.
4 | Flattr
5 | Flattr מספר הנחה של 10 % לתשלום החודשי!
6 | אנדרואיד מרקט
7 | תרומות לתוכנה אינם נתמכות. האם המרקט של גוגל אנדרואיד מותקן כראוי?
8 | גוגל מקבלת 30% מסך התרומה!
9 | תרומה!
10 | כמה?
11 | PayPal
12 | אתה יכול לבחור כמה אתה רוצה לתרום על ידי לחיצה על הכפתור!
13 | תודה!
14 | תודה על תרומתך!\nאני מאוד מעריך זאת!
15 |
16 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-el/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Κλείσιμο
4 | Flattr
5 | Το Flattr παίρνει 10 % σαν μηνιαίο τέλος!
6 | Google Play Store
7 | Δεν υποστηρίζονται In-App δωρεές. Έχει εγκατασταθεί σωστά το Google Play Store;
8 | Το Google παίρνει το 30 % κάθε δωρεάς!
9 | Δωρίστε!
10 | Πόσο;
11 | PayPal
12 | Μπορείς να επιλέξεις πόσα θέλεις να δωρίσεις αφού πατήσεις το κουμπί!
13 | Ευχαριστώ!
14 | Ευχαριστώ για την δωρεά!\n\nΠραγματικά το εκτιμώ!
15 |
16 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/drawable/ic_settings_black.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
21 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/layout/dialog_input.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
21 |
22 |
27 |
28 |
--------------------------------------------------------------------------------
/Donations/src/main/java/org/sufficientlysecure/donations/google/util/Base64DecoderException.java:
--------------------------------------------------------------------------------
1 | // Copyright 2002, Google, Inc.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package org.sufficientlysecure.donations.google.util;
16 |
17 | /**
18 | * Exception thrown when encountering an invalid Base64 input character.
19 | *
20 | * @author nelson
21 | */
22 | public class Base64DecoderException extends Exception {
23 | public Base64DecoderException() {
24 | super();
25 | }
26 |
27 | public Base64DecoderException(String s) {
28 | super(s);
29 | }
30 |
31 | private static final long serialVersionUID = 1L;
32 | }
33 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-hr/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Zatvori
4 | Flattr
5 | Flatter uzima 10% iznosa donacije kao mjesečnu članarinu!
6 | Google Play Trgovina
7 | Donacije unutar aplikacije nisu podržane. Je li Google Play Trgovina ispravno instalirana?
8 | Google uzima 30% od svake donacije!
9 | Donirajte!
10 | Koliko?
11 | PayPal
12 | Možete izabrati koliko želite donirati nakon pritiska na gumb.
13 | Hvala!
14 | Hvala za donaciju!\n Stvarno cijenim ovo!
15 |
16 |
--------------------------------------------------------------------------------
/root-commands/src/main/java/org/sufficientlysecure/rootcommands/util/UnsupportedArchitectureException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2012 Dominik Schürmann
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package org.sufficientlysecure.rootcommands.util;
18 |
19 | public class UnsupportedArchitectureException extends Exception {
20 | private static final long serialVersionUID = 7826528799780001655L;
21 |
22 | public UnsupportedArchitectureException() {
23 | super();
24 | }
25 |
26 | public UnsupportedArchitectureException(String detailMessage) {
27 | super(detailMessage);
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-fi/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Sulje
4 | Flattr
5 | Flattr ottaa 10% kuukausipalkkiosta!
6 | Googlen Android Market
7 | Sovelluksen sisäiset lahjoitukset eivät ole tuettu. Löytyykö laitteesta Android Market?
8 | Gogle ottaa 30% jokaisesta lahjoituksesta!
9 | Lahjoita!
10 | Kuinka paljon?
11 | PayPal
12 | Voit valita, kuinka paljon haluat lahjoittaa painikkeen napsauttamisen jälkeen!
13 | Kiitos!
14 | Kiitos lahjoituksestasi!\nArvostan sitä suuresti!
15 |
16 |
--------------------------------------------------------------------------------
/root-commands/src/main/java/org/sufficientlysecure/rootcommands/util/BrokenBusyboxException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2012 Dominik Schürmann
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package org.sufficientlysecure.rootcommands.util;
18 |
19 | import java.io.IOException;
20 |
21 | public class BrokenBusyboxException extends IOException {
22 | private static final long serialVersionUID = 8337358201589488409L;
23 |
24 | public BrokenBusyboxException() {
25 | super();
26 | }
27 |
28 | public BrokenBusyboxException(String detailMessage) {
29 | super(detailMessage);
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-zh-rCN/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 关闭
4 | Flattr®
5 | 喜欢这个应用程序?\n通过捐赠来支持我们!
6 | Flattr® 将从月费中提成10%!
7 | Google Play 商店
8 | 不支持 In-App 捐赠。你的 Google Play 商店是否安装正确了呢?
9 | Google 要从捐赠中抽取3成!\n
10 | 捐赠!
11 | 捐赠多少?
12 | PayPal
13 | 点击这个按钮之后选择你想要捐赠多少!
14 | 谢谢!
15 | 谢谢捐赠!\n非常感谢您!
16 | 发生错误
17 | 未找到浏览器来打开网页
18 |
19 |
--------------------------------------------------------------------------------
/root-commands/src/main/java/org/sufficientlysecure/rootcommands/util/RootAccessDeniedException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2012 Dominik Schürmann
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package org.sufficientlysecure.rootcommands.util;
18 |
19 | import java.io.IOException;
20 |
21 | public class RootAccessDeniedException extends IOException {
22 | private static final long serialVersionUID = 9088998884166225540L;
23 |
24 | public RootAccessDeniedException() {
25 | super();
26 | }
27 |
28 | public RootAccessDeniedException(String detailMessage) {
29 | super(detailMessage);
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/layout/dialog_unified_build.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
16 |
17 |
23 |
24 |
29 |
30 |
--------------------------------------------------------------------------------
/RashrApp/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 |
5 | compileSdkVersion 26
6 | buildToolsVersion '26.0.2'
7 | defaultConfig {
8 | minSdkVersion 14
9 | versionCode 116
10 | versionName '2.4.3'
11 | }
12 | lintOptions {
13 | disable 'MissingTranslation'
14 | }
15 | }
16 |
17 |
18 | dependencies {
19 | compile project(':root-commands')
20 | compile project(':Utils-Library')
21 | compile project(':Donations')
22 | compile 'com.android.support:design:26.1.0'
23 | compile 'com.android.support:support-v4:26.1.0'
24 | compile 'com.android.support:cardview-v7:26.1.0'
25 | compile 'com.android.support:appcompat-v7:26.1.0'
26 | compile 'com.android.support:preference-v7:26.1.0'
27 | compile 'com.android.support:recyclerview-v7:26.1.0'
28 | compile 'de.psdev.licensesdialog:licensesdialog:1.8.3'
29 | compile 'com.google.android.gms:play-services-ads:10.2.6'
30 | compile 'com.squareup.picasso:picasso:2.5.2'
31 | compile 'com.jakewharton:butterknife:8.8.1'
32 | compile 'com.google.code.gson:gson:2.8.1'
33 | compile 'com.android.support.constraint:constraint-layout:1.0.2'
34 | annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
35 | }
--------------------------------------------------------------------------------
/Donations/src/main/res/values-zh-rHK/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 關閉
4 | 透過 Flattr 捐款
5 | 這個廣告攔截程式對您有用嗎?\n您可透過以下方式進行捐款去支持本程式及其開發者!
6 | Flattr 會收取 10% 月費!
7 | 透過 Google Play 捐款
8 | 捐款不支援 In-App 模式。您的 Google Play 是否安裝正確?
9 | Google 會在每項捐款中收取 30% 手續費!
10 | 按此進行捐款!
11 | 要捐多少?
12 | 透過 PayPal 捐款
13 | 點擊按鈕您就可以選擇捐多少!
14 | 感謝!
15 | 感謝您的捐款!\n真的非常感激!
16 | 發生錯誤
17 | 沒有找到任何瀏覽器去開啟網頁!
18 |
19 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/drawable/ic_github.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
23 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/drawable/selectable_background_cardbank.xml:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-zh-rTW/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 關閉
4 | Flattr®
5 | 這個程式對你來說有用嗎?\n您可捐款給開發者以幫助程式發展!
6 | Flattr®將從資助金額中扣取10%作為手續費!
7 | Google Play 商店
8 | 不支援程式內購買
9 | 不支援In-App資助。你的Google Play 商店是否正確安裝?
10 | Google 會從每筆資助金額中抽取3成!
11 | 資助開發者!
12 | 多少?
13 | PayPal
14 | 你可以選擇你想資助多少後點擊按鈕!
15 | 謝謝!
16 | 謝謝您的資助!\n真的很感謝您!
17 | 發生錯誤
18 | 找不到瀏覽器來開啟網站
19 |
20 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/layout/dialog_comment.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
15 |
16 |
23 |
24 |
31 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-ja/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 閉じる
4 | Flattr
5 | このアプリは役に立ちましたか?\n開発者に寄付をして開発を応援してください!
6 | Flattr は月額として10 %手に入れます!
7 | Google Playストア
8 | アプリ内寄付は非対応です
9 | アプリ内寄付は非対応です。GooglePlayストアはインストールされていますか?
10 | Googleは寄付の30%を持って行きます…。
11 | 寄付する!
12 | いくら?
13 | PayPal
14 | ボタンを押した後寄付したい額を選べます!
15 | ありがとう!
16 | 寄付ありがとう!\n本当に感謝しています!
17 | エラーが発生しました
18 | サイトを開くためのブラウザが見つかりません!
19 |
20 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/raw/licenses_notice:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | RootCommands (Customized)
5 | https://github.com/Free-Software-for-Android/RootCommands
6 | Copyright (C) 2012 Dominik Schürmann dominik@dominikschuermann.de,
7 | Copyright (c) 2012 Stephen Erickson,
8 | Chris Ravenscroft,
9 | Adam Shanks (RootTools)
10 | Apache Software License 2.0
11 |
12 |
13 | Android Donations Lib (Customized)
14 | https://github.com/SufficientlySecure/donations
15 | Copyright (C) 2011-2015 Dominik Schürmann dominik@dominikschuermann.de
16 | Apache Software License 2.0
17 |
18 |
19 | Picasso
20 | https://square.github.io/picasso/
21 | Copyright 2013 Square, Inc.
22 | Apache Software License 2.0
23 |
24 |
25 | ButterKnife
26 | https://jakewharton.github.io/butterknife/
27 | Copyright 2013 Jake Wharton
28 | Apache Software License 2.0
29 |
30 |
--------------------------------------------------------------------------------
/root-commands/src/main/java/org/sufficientlysecure/rootcommands/command/SimpleCommand.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2012 Dominik Schürmann
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package org.sufficientlysecure.rootcommands.command;
18 |
19 | public class SimpleCommand extends Command {
20 | private StringBuilder sb = new StringBuilder();
21 |
22 | public SimpleCommand(String... command) {
23 | super(command);
24 | }
25 |
26 | @Override
27 | public void output(int id, String line) {
28 | sb.append(line).append('\n');
29 | }
30 |
31 | @Override
32 | public void afterExecution(int id, int exitCode) {
33 | }
34 |
35 | public String getOutput() {
36 | return sb.toString();
37 | }
38 |
39 | public int getExitCode() {
40 | return exitCode;
41 | }
42 |
43 | }
--------------------------------------------------------------------------------
/Donations/src/main/res/values-vi-rVN/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Đóng
4 | Đánh giá
5 | Bạn có thấy ứng này hữu ích?\nHãy hỗ trợ việc phát triển của phần mềm bằng cách ủng hộ tài chính!
6 | Đánh giá cao mất 10% như phí tháng!
7 | CH Google Play
8 | Không hỗ trợ chức năng ủng hộ trong ứng dụng. CH Google Play có hoạt động chính xác?
9 | Google hưởng 30% giá trị ủng hộ!
10 | Ủng hộ!
11 | Bao nhiêu?
12 | PayPal
13 | Bạn có thể bấm nút chọn số tiền cần ủng hộ!
14 | Xin cám ơn!
15 | Cám ơn bạn đã ủng hộ!\nTôi thực sự cảm kích!
16 | Lỗi đã xảy ra
17 | Không có trinnhf duyệt nào được tìm thấy để mở ra liên kết đến website!
18 |
19 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-da-rDK/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Luk
4 | Flattr
5 | Finder du denne app brugbar?\nSupporter dets udvikling ved at sende en donation til udvikleren!
6 | Flattr tager 10% i månedlig gebyr!
7 | Google Play Store
8 | In-App donationer er ikke supporteret. Er Google Play Store installeret korrekt?
9 | Google tager 30% fra hver donation!
10 | Donér!
11 | Hvor meget?
12 | PayPal
13 | Du kan vælge hvor meget du vil donere efter du har trykket på knappen
14 | Tak!
15 | Tak fordi du donerede!\nJeg sætter virkelig pris på dette!
16 | En fejl opstod
17 | Ingen browser blev fundet til at åbne en webside!
18 |
19 |
--------------------------------------------------------------------------------
/Donations/src/main/res/layout/donations__fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
13 |
14 |
20 |
21 |
27 |
28 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-es-rMX/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Cerrar
4 | Flattr
5 | Encuentras útil esta aplicación ?\nApoya su desarrollo enviando una donación al desarrollador!
6 | ¡Flattr toma 10% como cargo mensual!
7 | Google Play Store
8 | Las donaciones In-App no están soportadas. ¿Está la Tienda de Google Play instalada correctamente?
9 | ¡Google se queda con el 30% de cada donación!
10 | ¡Donar!
11 | ¿Cuánto?
12 | PayPal
13 | ¡Puedes escoger cuánto deseas donar después de dar clic en el botón!
14 | Gracias!
15 | Gracias por donar!\nRealmente aprecio esto!
16 | Ocurrió un error
17 | No se encontró un navegador para abrir el sitio web!
18 |
19 |
--------------------------------------------------------------------------------
/root-commands/src/main/java/org/sufficientlysecure/rootcommands/command/SimpleBinaryCommand.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2012 Dominik Schürmann
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package org.sufficientlysecure.rootcommands.command;
18 |
19 | import android.content.Context;
20 |
21 | public class SimpleBinaryCommand extends BinaryCommand {
22 | private StringBuilder sb = new StringBuilder();
23 |
24 | public SimpleBinaryCommand(Context context, String binaryName, String parameters) {
25 | super(context, binaryName, parameters);
26 | }
27 |
28 | @Override
29 | public void output(int id, String line) {
30 | sb.append(line).append('\n');
31 | }
32 |
33 | @Override
34 | public void afterExecution(int id, int exitCode) {
35 | }
36 |
37 | public String getOutput() {
38 | return sb.toString();
39 | }
40 |
41 | public int getExitCode() {
42 | return exitCode;
43 | }
44 |
45 | }
--------------------------------------------------------------------------------
/Donations/src/main/res/values-id/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Tutup
4 | Flattr
5 | Apakah aplikasi ini berguna?\nDukung pengembangan aplikasi dengan memberikan donasi!
6 | Flattr mengambil 10 % sebagai biaya bulanan!
7 | Google Play Store
8 | Donasi di dalam aplikasi tidak didukung. apakah Google Play Store terpasang dengan benar?
9 | Google mengambil 30 % dari setiap donasi!
10 | Donasi!
11 | Berapa banyak?
12 | PayPal
13 | Anda dapat memilih berapa banyak Anda ingin sumbangkan setelah mengklik tombol!
14 | Terima Kasih!
15 | Terimkasih atas donasi anda!\n\nSaya sangat menghargai ini!
16 | Terjadi galat
17 | Tidak di temukan browser untuk membuka laman website
18 |
19 |
--------------------------------------------------------------------------------
/Donations/src/main/res/layout/donations__fragment_paypal.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
12 |
13 |
19 |
20 |
27 |
28 |
29 |
36 |
37 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-nl/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Sluiten
4 | Flattr
5 | Vindt u dit applicatie nuttig?\nDraag bij aan de ontwikkeling ervan door een donatie te sturen aan de ontwikkelaar!
6 | Flattr neemt 10% als maandelijkse kosten
7 | Google Play Store
8 | Helaas, in-App donaties worden niet ondersteund. Is Google Play Store correct geïnstalleerd?
9 | Google houdt 30% van elke donatie in
10 | Doneer!
11 | Welke bedrag?
12 | Paypal
13 | U kunt kiezen hoeveel u wilt doneren, na het klikken van de knop
14 | Dank u wel
15 | Bedankt voor uw donatie! Ik stel het heel erg op prijs.
16 | Er is iets fout gegaan!
17 | Er is geen browser gevonden om een website te openen!
18 |
19 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-pt-rBR/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Fechar
4 | Flattr
5 | Você achou esta aplicação útil?\nSuporte o seu desenvolvimento mandando uma doação programador!
6 | Flattr possui uma taxa mensal de 10%!
7 | Google Play Store
8 | Doações pelo aplicativo não são suportadas.
9 | Doações dentro do aplicativo não são suportadas. O Google Play Store foi instalado corretamente?
10 | Google retém 30% de cada doação!
11 | Doar!
12 | Quanto?
13 | PayPal
14 | Você pode escolher quanto deseja doar após clicar no botão!
15 | Obrigado!
16 | Obrigado pela sua doação!
17 | Erro ocorrido
18 | Nenhum navegador foi encontrado para abrir um site!
19 |
20 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-sr/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Zatvori
4 | Flattr
5 | Da li vam je ovo korisna aplikacija?\nPodržite njen razvitak slanjem donacije razvijaču!
6 | Flattr uzima 10 % provizije mesečno!
7 | Google Play prodavnica
8 | Donacije u aplikaciji nisu dostupne.
9 | Donacije u aplikaciji nisu dostupne. Da li je Google Play prodavnica ispravno instalirana?
10 | Google uzima 30 % od svae donacije!
11 | Doniraj!
12 | Koliko?
13 | PayPal
14 | Možete odabrati koliko ćete donirati posle pritiska na dugme!
15 | Hvala!
16 | Hvala za donaciju!\nZaista cenim to!
17 | Došlo je do greške
18 | Nije pronađen pretraživač koji može da otvori website!
19 |
20 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-cs/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Zavřít
4 | Flattr
5 | Je tato aplikace užitečná?⏎\nPodpořte její vývoj zasláním příspěvku vývojáři!
6 | Flattr si strhává na poplatcích 10 % měsíčně!
7 | Obchod Play
8 | Platby z aplikací nejsou podporovány.
9 | Platby z aplikací nejsou podporovány. Jste si jisti, že je Obchod Play správně nainstalován?
10 | Google si strhává 30 % z každého příspěvku!
11 | Podpořte nás!
12 | Kolik to stojí?
13 | PayPal
14 | Po kliknutí na tlačítko můžete zvolit, kolik chcete přispět!
15 | Díky!
16 | Díky za darování!\nOpravdu si toho vážím!
17 | Nastala chyba
18 | Nebyl nalezen webový prohlížeč pro otevření stránky!
19 |
20 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-tr/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Kapat
4 | Flattr
5 | Bu uygulamayı kullanışlı mı buluyorsunuz?\nGeliştiriciye bağış yaparak gelişmesine yardımcı olun!
6 | Flattr takes 10 % as a monthly fee!
7 | Google Play Mağazası
8 | Uygulama içi bağışlar desteklenmez.
9 | Uygulama içi bağışlar desteklenmez. Google Play Mağazası doğru şekilde kuruldu mu?
10 | Google her bağışın %30\'unu alıyor!
11 | Bağış Yap!
12 | Ne kadar?
13 | PayPal
14 | Butona bastıktan sonra ne kadar bağış yapacağınızı seçebilirsiniz!
15 | Teşekkürler!
16 | Bağış için teşekkürler!\nBunu gerçekten takdir ediyorum!
17 | Hata oluştu
18 | Web site açmak için tarayıcı bulunamadı!
19 |
20 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-fr/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Fermer
4 | Flattr
5 | Cette application vous rend service ?\nParticiper à son développement en effectuant un don !
6 | Flattr prend 10% de frais mensuels !
7 | Google Play Store
8 | Don In-App indisponible.
9 | Donations In-App non-supportées. L\'application Google Play Store est-elle correctement installée ?
10 | Google prend 30% sur chaque don !
11 | Faites un don !
12 | Combien ?
13 | PayPal
14 | Vous pouvez faire un don du montant désiré en cliquant sur ce bouton !
15 | Merci !
16 | Merci beaucoup pour votre don !
17 | Une erreur est survenue
18 | Aucun navigateur web n\'a été trouvé pour ouvrir le site web !
19 |
20 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-bg/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Затвори
4 | Flattr
5 | Считате ли това приложение за полезно?\nПодкрепете неговото развитие като изпратите дарениe на разработчика!
6 | Flattr взема 10% като месечна такса!
7 | Google Play магазин
8 | Дарения чрез приложението не се поддържат.
9 | Дарения чрез приложението не се поддържат. Инсталиран ли е правилно магазина Google Play?
10 | Google взема 30% от всяко дарение!
11 | Дарете!
12 | Колко?
13 | PayPal
14 | Можете да изберете колко искате да дарите след натискане на бутона!
15 | Благодаря!
16 | Благодаря ви за дарението!\nНаистина оценявам това!
17 | Възникна грешка
18 | Не е намерен браузър, който да отвори сайта!
19 |
20 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-es-rES/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Cerrar
4 | Flattr
5 | ¿Le resulta útil esta aplicación? \nApoye su desarrollo mediante el envío de una donación al desarrollador!
6 | ¡Flattr toma un 10% como cuota mensual!
7 | Google Play Store
8 | No se admiten Donaciones In-App
9 | No se admiten Donaciones In-App. ¿Está Google Play Store instalado correctamente?
10 | ¡Google se queda el 30% de todas las donaciones!
11 | ¡Donar!
12 | ¿Cuánto?
13 | PayPal
14 | ¡Puedes elegir cuánto quieres donar después de pulsar el botón!
15 | ¡Gracias!
16 | ¡Gracias por donar!\n¡Te lo agradezco mucho!
17 | Se produjó un error
18 | No se encontró un navegador para abrir una página web!
19 |
20 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-it/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Chiudi
4 | Flattr
5 | Pensi che questa applicazione sia utile?\nSupporta il suo sviluppo mandando una donazione allo sviluppatore!
6 | Flattr riceve il 10% come canone mensile!
7 | Google Play Store
8 | Le donazioni in-app non sono supportate.
9 | Donazioni In-App non supportate. Google Play Store è installato correttamente?
10 | Google riceve il 30% di ogni donazione!
11 | Dona!
12 | Quanto?
13 | PayPal
14 | Puoi scegliere quanto donare dopo aver premuto il pulsante!
15 | Grazie!
16 | Grazie per la donazione!\nLo apprezzo molto!
17 | Si è verificato un errore
18 | Non è stato trovato un browser per aprire un sito internet!
19 |
20 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-hu/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Bezár
4 | Flattr
5 | Hasznosnak találod ezt az alkalmazást?⏎\nTámogasd a fejlesztését némi adomány küldésével a fejlesztőnek!
6 | A Flattr 10 %-ot levesz havi díjként!
7 | Google Play Üzlet
8 | A mikrotranzakciós adományozás nem támogatott.
9 | Az alkalmazáson belüli adományozás nem támogatott. A Google Android Market megfelelően van telepítve?
10 | A Google része 30 % minden adományból!
11 | Adományozok!
12 | Mennyi?
13 | PayPal
14 | Az adományozott összeget megválaszthatja a gombra való kattintás után.
15 | Köszönöm!
16 | Köszönjük a támogatást!\nNagyra értékeljük!
17 | Hiba történt
18 | Böngésző nem található a weboldal megnyitásához!
19 |
20 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-uk/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Закрити
4 | Flattr
5 | Ви вважаєте програму корисною?\n Підтримайте її розробку надіславши пожертву розробнику!
6 | Flattr стягує 10% у вигляді щомісячної абонентської плати!
7 | магазин Google Play
8 | Програмні пожертви не підтримуються.
9 | Пожертвування через програму не підтримуються. Магазин Google Play встановлений правильно?
10 | Google стягує 30% з кожного пожертвування!
11 | Пожертвувати!
12 | Скільки?
13 | PayPal
14 | Після натискання на кнопку ви можете вибрати скільки хочете пожертвувати!
15 | Дякую!
16 | Дякую за пожертвування! Я дуже це ціную!
17 | Трапилася помилка
18 | Не знайдено жодного переглядача, щоб відкрити веб-сайт!
19 |
20 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-vi/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Đóng
4 | Flattr
5 | Bạn tìm thấy ứng dụng hữu ích này? ⏎\nHỗ trợ phát triển nó bằng cách gửi một tài trợ cho các nhà phát triển!
6 | Flattr tốn 10% cho một khoản phí hàng tháng!
7 | kho tìm kiếm trò chơi
8 | tài trợ trong ứng dụng không được hỗ trợ.
9 | tài trợ trong ứng dụng không được hỗ trợ. kho tìm kiếm trò chơi đã cài đặt chính xác?
10 | Google mất giá 30 % tất cả các đóng góp!
11 | Quyên góp
12 | bao nhiêu?
13 | PayPal
14 | Bạn có thể lựa chọn bạn muốn tài trợ bao nhiêu sau khi nhấn vào nút!
15 | cám ơn!
16 | cám ơn vì tài trợ!\ntôi thực sự đánh giá cao việc này!
17 | đã xảy ra lỗi
18 | Không có trình duyệt được tìm thấy để mở một trang web!
19 |
20 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-ca/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Tanca
4 | Flattr
5 | Has trobat útil aquesta aplicació?\nAjuda al seu desenvolupament enviant una donació al creador!
6 | Flattr té unes comissions mensuals del deu percent!
7 | Google Play Store
8 | No es pot fer donatius des de l\'aplicació.
9 | No es poden fer donatius des de l\'aplicació. Heu instal·lat Google Play Store correctament?
10 | Google té unes comissions del 30 percent!
11 | Fer un donatiu
12 | Quant?
13 | PayPal
14 | Podeu escollir la quantitat del vostre donatiu tocant aquest botó.
15 | Gràcies!
16 | Gràcies per fer el donatiu!⏎ N\'estic molt agraït!
17 | S\'ha produït un error
18 | No s\'ha trobat cap navegador per obrir el lloc web!
19 |
20 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-pl/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Zamknij
4 | Flattr
5 | Czy aplikacja jest dla Ciebie przydatna?\nWspomóż jej rozwój poprzez dotację dla autora!
6 | Flattr pobiera 10% jako miesięczną opłatę!
7 | Sklep Google Play
8 | Wsparcie poprzez płatność z aplikacji nie jest dostępne.
9 | Brak wsparcia dla wbudowanych płatności. Czy aplikacja Sklep Google Play jest zainstalowana prawidłowo?
10 | Google pobiera 30% kwoty z każdej darowizny!
11 | Przekaż!
12 | Kwota do przekazania?
13 | PayPal
14 | Wybór kwoty do przekazania nastąpi po kliknięciu przycisku \"Przekaż\"!
15 | Dzięki!
16 | Dziekuję za darowiznę!\nNaprawdę to doceniam!
17 | Wystąpił błąd
18 | Brak przeglądarki! Nie można otworzyć strony www.
19 |
20 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-ru/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Закрыть
4 | Flattr
5 | Считаете ли вы приложение полезным?\nПоддержите его развитие, отправив пожертвование для разработчиков!
6 | Flattr взимает 10% в виде ежемесячной абонентской платы!
7 | Google Play Store
8 | In-App пожертвования не поддерживаются.
9 | Пожертвования через приложение не поддерживаются. Google Play Store установлен правильно?
10 | Google взимает 30% с каждого пожертвования!
11 | Пожертвовать!
12 | Сколько?
13 | PayPal
14 | После нажатия на кнопку вы можете выбрать сколько хотите пожертвовать!
15 | Благодарю!
16 | Благодарю за пожертвование! Я очень это ценю!
17 | Произошла ошибка
18 | Не найден подходящий браузер для открытия этого веб-сайта!
19 |
20 |
--------------------------------------------------------------------------------
/Utils-Library/src/main/res/values-de/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Information
4 | %s jetzt herunterladen?
5 | Heruntergeladene Datei ist beschädigt
6 | Erneut versuchen!
7 | Später
8 | Lade herunter…
9 | Verbinde
10 |
11 | Sie sind mit keinen Netztwerk verbunden. Download wurde abgebrochen!
12 |
13 |
14 | Ein Fehler während des Downloads von %s ist aufgetreten möchten Sie es wiederholen?
15 |
16 | Fehler
17 | Warnung!
18 |
19 | Ja
20 | Nein
21 | Abbrechen
22 |
23 | Datei auswählen
24 | Sind Sie sicher das Sie %s auswählen möchten?
25 |
26 | Root-Zugriff verweigert! Mehr Infos unter xda-developers.com
27 |
28 | Abbrechen
29 |
30 | Bewerten Sie meine App!
31 |
32 | Möchten Sie diese App im Play Store bewerten und meine Arbeit untersützen?
33 |
34 | Nie wieder fragen
35 | Löschen fehlgeschlagen
36 |
--------------------------------------------------------------------------------
/Donations/src/main/java/org/sufficientlysecure/donations/google/util/IabException.java:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2012 Google Inc.
2 | *
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package org.sufficientlysecure.donations.google.util;
17 |
18 | /**
19 | * Exception thrown when something went wrong with in-app billing.
20 | * An IabException has an associated IabResult (an error).
21 | * To get the IAB result that caused this exception to be thrown,
22 | * call {@link #getResult()}.
23 | */
24 | public class IabException extends Exception {
25 | IabResult mResult;
26 |
27 | public IabException(IabResult r) {
28 | this(r, null);
29 | }
30 | public IabException(int response, String message) {
31 | this(new IabResult(response, message));
32 | }
33 | public IabException(IabResult r, Exception cause) {
34 | super(r.getMessage(), cause);
35 | mResult = r;
36 | }
37 | public IabException(int response, String message, Exception cause) {
38 | this(new IabResult(response, message), cause);
39 | }
40 |
41 | /** Returns the IAB result (error) that this exception signals. */
42 | public IabResult getResult() { return mResult; }
43 | }
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/root-commands/src/main/java/org/sufficientlysecure/rootcommands/RootCommands.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2012 Dominik Schürmann
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package org.sufficientlysecure.rootcommands;
18 |
19 | import org.sufficientlysecure.rootcommands.util.Log;
20 |
21 | public class RootCommands {
22 | public static final String TAG = "RootCommands";
23 | public static boolean DEBUG = false;
24 | public static int DEFAULT_TIMEOUT = 10000;
25 |
26 | /**
27 | * General method to check if user has su binary and accepts root access for this program!
28 | *
29 | * @return true if everything worked
30 | */
31 | public static boolean rootAccessGiven() {
32 | boolean rootAccess = false;
33 |
34 | try {
35 | Shell rootShell = Shell.startRootShell();
36 |
37 | Toolbox tb = new Toolbox(rootShell);
38 | if (tb.isRootAccessGiven()) {
39 | rootAccess = true;
40 | }
41 |
42 | rootShell.close();
43 | } catch (Exception e) {
44 | Log.e(TAG, "Problem while checking for root access!", e);
45 | }
46 |
47 | return rootAccess;
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/Utils-Library/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Information
5 | Download %s now?
6 | Downloaded file is corrupted.
7 | Try again!
8 | Later
9 | Downloading…
10 | Connecting
11 |
12 | You have choose a false file. The File must be in %s format.
13 |
14 | No network available. Download canceled!
15 |
16 | Oh no, a problem is occurred. Restart the download.\n\n%s?
17 |
18 | Error
19 | Warning!
20 |
21 | Yes
22 | No
23 | Cancel
24 |
25 | Pick a file
26 | Directory empty: %s
27 | Choosing %s. Are you sure?
28 |
29 |
30 | Device not Rooted. Please Root it. More information at xda-developers.com
31 |
32 |
33 | Cancel
34 |
35 | Rate my App!
36 |
37 | Would you like to rate this app in the Play Store and support my work?
38 |
39 | Never ask again
40 | Delete failed
41 |
42 |
43 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/menu/navigation_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Donations/src/main/res/layout/donations__fragment_google.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
21 |
22 |
27 |
28 |
34 |
35 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/layout/banner_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
17 |
18 |
31 |
32 |
44 |
--------------------------------------------------------------------------------
/root-commands/src/main/java/org/sufficientlysecure/rootcommands/Mount.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2012 Dominik Schürmann
3 | * Copyright (c) 2012 Stephen Erickson, Chris Ravenscroft, Adam Shanks (RootTools)
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 |
18 | package org.sufficientlysecure.rootcommands;
19 |
20 | import java.io.File;
21 | import java.util.Arrays;
22 | import java.util.HashSet;
23 | import java.util.Set;
24 |
25 | public class Mount {
26 | protected final File mDevice;
27 | protected final File mMountPoint;
28 | protected final String mType;
29 | protected final Set mFlags;
30 |
31 | Mount(File device, File path, String type, String flagsStr) {
32 | mDevice = device;
33 | mMountPoint = path;
34 | mType = type;
35 | mFlags = new HashSet(Arrays.asList(flagsStr.split(",")));
36 | }
37 |
38 | public File getDevice() {
39 | return mDevice;
40 | }
41 |
42 | public File getMountPoint() {
43 | return mMountPoint;
44 | }
45 |
46 | public String getType() {
47 | return mType;
48 | }
49 |
50 | public Set getFlags() {
51 | return mFlags;
52 | }
53 |
54 | @Override
55 | public String toString() {
56 | return String.format("%s on %s type %s %s", mDevice, mMountPoint, mType, mFlags);
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/root-commands/src/main/java/org/sufficientlysecure/rootcommands/util/FailedExecuteCommand.java:
--------------------------------------------------------------------------------
1 | package org.sufficientlysecure.rootcommands.util;
2 |
3 | /**
4 | * Copyright (c) 2014 Aschot Mkrtchyan
5 | * Permission is hereby granted, free of charge, to any person obtaining a copy
6 | * of this software and associated documentation files (the "Software"), to deal
7 | * in the Software without restriction, including without limitation the rights
8 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | * copies of the Software, and to permit persons to whom the Software is
10 | * furnished to do so, subject to the following conditions:
11 | *
12 | * The above copyright notice and this permission notice shall be included in
13 | * all copies or substantial portions of the Software.
14 | *
15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | * SOFTWARE.
22 | */
23 |
24 | import org.sufficientlysecure.rootcommands.command.Command;
25 | import org.sufficientlysecure.rootcommands.command.SimpleCommand;
26 |
27 | public class FailedExecuteCommand extends Exception {
28 |
29 | private Command command;
30 |
31 | public FailedExecuteCommand(Command command) {
32 | super("Failed execute " + command.getCommand());
33 | this.command = command;
34 | }
35 |
36 | public SimpleCommand getCommand() {
37 | return (SimpleCommand) command;
38 | }
39 | public String toString() {
40 | return "Failed execute: " + command.getCommand() + "////" + ((SimpleCommand)command).getOutput();
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/Donations/src/main/java/org/sufficientlysecure/donations/google/util/IabResult.java:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2012 Google Inc.
2 | *
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package org.sufficientlysecure.donations.google.util;
17 |
18 | /**
19 | * Represents the result of an in-app billing operation.
20 | * A result is composed of a response code (an integer) and possibly a
21 | * message (String). You can get those by calling
22 | * {@link #getResponse} and {@link #getMessage()}, respectively. You
23 | * can also inquire whether a result is a success or a failure by
24 | * calling {@link #isSuccess()} and {@link #isFailure()}.
25 | */
26 | public class IabResult {
27 | int mResponse;
28 | String mMessage;
29 |
30 | public IabResult(int response, String message) {
31 | mResponse = response;
32 | if (message == null || message.trim().length() == 0) {
33 | mMessage = IabHelper.getResponseDesc(response);
34 | }
35 | else {
36 | mMessage = message + " (response: " + IabHelper.getResponseDesc(response) + ")";
37 | }
38 | }
39 | public int getResponse() { return mResponse; }
40 | public String getMessage() { return mMessage; }
41 | public boolean isSuccess() { return mResponse == IabHelper.BILLING_RESPONSE_RESULT_OK; }
42 | public boolean isFailure() { return !isSuccess(); }
43 | public String toString() { return "IabResult: " + getMessage(); }
44 | }
45 |
46 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values-de-rDE/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Schließen
4 | Flattr
5 | Findest Du diese Anwendung nützlich?\nUnterstütze die Entwicklung durch eine Spende!
6 | Flattr behält 10 % als monatliche Gebühr ein!
7 | Google Play Store
8 | In-App-Spenden werden nicht unterstützt
9 | In-App-Spenden werden nicht unterstützt. Ist der Google Play Store korrekt installiert?
10 | 30 % jeder Spende geht an Google!
11 | Spende!
12 | Wie viel?
13 | PayPal
14 | Du kannst auswählen wie viel Du spenden möchtest, nachdem Du auf den Button geklickt hast!
15 | Danke!
16 | Danke für die Spende!\nIch weiß es wirklich zu schätzen!
17 | Fehler aufgetreten
18 | Kein Browser gefunden um eine Webseite zu öffnen!
19 | Sende eine beliebige Menge Bitcoin an den Entwickler. Drücke und halte den Button um die Adresse zu kopieren.
20 | Sende Bitcoin!
21 | Bitcoin Adresse wurde in die Zwischenablage kopiert!
22 |
23 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/layout/loading_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
19 |
20 |
27 |
28 |
36 |
37 |
46 |
47 |
--------------------------------------------------------------------------------
/Donations/src/main/res/values/donations__strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Close
5 | Flattr
6 | Do you find this application useful?\nSupport it\'s development by sending a donation to the developer!
7 | Flattr takes 10 % as a monthly fee!
8 | Google Play Store
9 | In-App Donations are not supported.
10 | In-App Donations are not supported. Is Google Play Store installed correctly?
11 | Google takes 30 % off every donation!
12 | Donate!
13 | How much?
14 | PayPal
15 | You can choose how much you want to donate after clicking the button!
16 | Thanks!
17 | Thanks for donating!\nI really appreciate this!
18 | Error occurred
19 | No browser was found to open a website!
20 | Bitcoin
21 | Send any amount of bitcoin to the developer. Press and hold button to copy address.
22 | Send bitcoin!
23 | Bitcoin address has been copied to the clipboard!
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Donations/src/main/java/org/sufficientlysecure/donations/google/util/SkuDetails.java:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2012 Google Inc.
2 | *
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package org.sufficientlysecure.donations.google.util;
17 |
18 | import org.json.JSONException;
19 | import org.json.JSONObject;
20 |
21 | /**
22 | * Represents an in-app product's listing details.
23 | */
24 | public class SkuDetails {
25 | String mItemType;
26 | String mSku;
27 | String mType;
28 | String mPrice;
29 | String mTitle;
30 | String mDescription;
31 | String mJson;
32 |
33 | public SkuDetails(String jsonSkuDetails) throws JSONException {
34 | this(IabHelper.ITEM_TYPE_INAPP, jsonSkuDetails);
35 | }
36 |
37 | public SkuDetails(String itemType, String jsonSkuDetails) throws JSONException {
38 | mItemType = itemType;
39 | mJson = jsonSkuDetails;
40 | JSONObject o = new JSONObject(mJson);
41 | mSku = o.optString("productId");
42 | mType = o.optString("type");
43 | mPrice = o.optString("price");
44 | mTitle = o.optString("title");
45 | mDescription = o.optString("description");
46 | }
47 |
48 | public String getSku() { return mSku; }
49 | public String getType() { return mType; }
50 | public String getPrice() { return mPrice; }
51 | public String getTitle() { return mTitle; }
52 | public String getDescription() { return mDescription; }
53 |
54 | @Override
55 | public String toString() {
56 | return "SkuDetails:" + mJson;
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/layout/activity_rashr.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
11 |
12 |
16 |
17 |
25 |
26 |
34 |
35 |
41 |
42 |
43 |
44 |
52 |
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/root-commands/src/main/java/org/sufficientlysecure/rootcommands/command/BinaryCommand.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2012 Dominik Schürmann
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package org.sufficientlysecure.rootcommands.command;
18 |
19 | import android.annotation.SuppressLint;
20 | import android.content.Context;
21 | import android.os.Build;
22 |
23 | import java.io.File;
24 |
25 | public abstract class BinaryCommand extends Command {
26 | public static final String BINARY_PREFIX = "lib";
27 | public static final String BINARY_SUFFIX = "_bin.so";
28 |
29 | /**
30 | * This class provides a way to use your own binaries!
31 | *
32 | * Include your own binaries, renamed from * to lib*_bin.so, in your libs folder under the
33 | * architecture directories. Now they will be deployed by Android the same way libraries are
34 | * deployed!
35 | *
36 | * See README for more information how to use your own binaries!
37 | *
38 | * @param context
39 | * @param binaryName
40 | * @param parameters
41 | */
42 | public BinaryCommand(Context context, String binaryName, String parameters) {
43 | super(getLibDirectory(context) + File.separator + BINARY_PREFIX + binaryName
44 | + BINARY_SUFFIX + " " + parameters);
45 | }
46 |
47 | /**
48 | * Get full path to lib directory of app
49 | *
50 | * @return dir as String
51 | */
52 | @SuppressLint("NewApi")
53 | private static String getLibDirectory(Context context) {
54 | if (Build.VERSION.SDK_INT >= 9) {
55 | return context.getApplicationInfo().nativeLibraryDir;
56 | } else {
57 | return context.getApplicationInfo().dataDir + File.separator + "lib";
58 | }
59 | }
60 |
61 | public abstract void output(int id, String line);
62 |
63 | public abstract void afterExecution(int id, int exitCode);
64 |
65 | }
--------------------------------------------------------------------------------
/Donations/src/main/java/org/sufficientlysecure/donations/google/util/Purchase.java:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2012 Google Inc.
2 | *
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package org.sufficientlysecure.donations.google.util;
17 |
18 | import org.json.JSONException;
19 | import org.json.JSONObject;
20 |
21 | /**
22 | * Represents an in-app billing purchase.
23 | */
24 | public class Purchase {
25 | String mItemType; // ITEM_TYPE_INAPP or ITEM_TYPE_SUBS
26 | String mOrderId;
27 | String mPackageName;
28 | String mSku;
29 | long mPurchaseTime;
30 | int mPurchaseState;
31 | String mDeveloperPayload;
32 | String mToken;
33 | String mOriginalJson;
34 | String mSignature;
35 |
36 | public Purchase(String itemType, String jsonPurchaseInfo, String signature) throws JSONException {
37 | mItemType = itemType;
38 | mOriginalJson = jsonPurchaseInfo;
39 | JSONObject o = new JSONObject(mOriginalJson);
40 | mOrderId = o.optString("orderId");
41 | mPackageName = o.optString("packageName");
42 | mSku = o.optString("productId");
43 | mPurchaseTime = o.optLong("purchaseTime");
44 | mPurchaseState = o.optInt("purchaseState");
45 | mDeveloperPayload = o.optString("developerPayload");
46 | mToken = o.optString("token", o.optString("purchaseToken"));
47 | mSignature = signature;
48 | }
49 |
50 | public String getItemType() { return mItemType; }
51 | public String getOrderId() { return mOrderId; }
52 | public String getPackageName() { return mPackageName; }
53 | public String getSku() { return mSku; }
54 | public long getPurchaseTime() { return mPurchaseTime; }
55 | public int getPurchaseState() { return mPurchaseState; }
56 | public String getDeveloperPayload() { return mDeveloperPayload; }
57 | public String getToken() { return mToken; }
58 | public String getOriginalJson() { return mOriginalJson; }
59 | public String getSignature() { return mSignature; }
60 |
61 | @Override
62 | public String toString() { return "PurchaseInfo(type:" + mItemType + "):" + mOriginalJson; }
63 | }
64 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/layout/activity_backup.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
14 |
20 |
21 |
22 |
23 |
29 |
30 |
34 |
35 |
39 |
40 |
45 |
46 |
47 |
48 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/layout/card_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
13 |
14 |
20 |
21 |
28 |
29 |
30 |
31 |
36 |
37 |
44 |
45 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/root-commands/src/main/java/org/sufficientlysecure/rootcommands/util/Log.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2012 Dominik Schürmann
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package org.sufficientlysecure.rootcommands.util;
18 |
19 | import org.sufficientlysecure.rootcommands.RootCommands;
20 |
21 | /**
22 | * Wraps Android Logging to enable or disable debug output using Constants
23 | */
24 | public final class Log {
25 |
26 | public static void v(String tag, String msg) {
27 | if (RootCommands.DEBUG) {
28 | android.util.Log.v(tag, msg);
29 | }
30 | }
31 |
32 | public static void v(String tag, String msg, Throwable tr) {
33 | if (RootCommands.DEBUG) {
34 | android.util.Log.v(tag, msg, tr);
35 | }
36 | }
37 |
38 | public static void d(String tag, String msg) {
39 | if (RootCommands.DEBUG) {
40 | android.util.Log.d(tag, msg);
41 | }
42 | }
43 |
44 | public static void d(String tag, String msg, Throwable tr) {
45 | if (RootCommands.DEBUG) {
46 | android.util.Log.d(tag, msg, tr);
47 | }
48 | }
49 |
50 | public static void i(String tag, String msg) {
51 | if (RootCommands.DEBUG) {
52 | android.util.Log.i(tag, msg);
53 | }
54 | }
55 |
56 | public static void i(String tag, String msg, Throwable tr) {
57 | if (RootCommands.DEBUG) {
58 | android.util.Log.i(tag, msg, tr);
59 | }
60 | }
61 |
62 | public static void w(String tag, String msg) {
63 | android.util.Log.w(tag, msg);
64 | }
65 |
66 | public static void w(String tag, String msg, Throwable tr) {
67 | android.util.Log.w(tag, msg, tr);
68 | }
69 |
70 | public static void w(String tag, Throwable tr) {
71 | android.util.Log.w(tag, tr);
72 | }
73 |
74 | public static void e(String tag, String msg) {
75 | android.util.Log.e(tag, msg);
76 | }
77 |
78 | public static void e(String tag, String msg, Throwable tr) {
79 | android.util.Log.e(tag, msg, tr);
80 | }
81 |
82 | }
83 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/layout/backup_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
12 |
13 |
23 |
24 |
34 |
35 |
44 |
45 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/layout/fragment_flash_as.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
16 |
17 |
26 |
27 |
35 |
36 |
42 |
43 |
52 |
53 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/drawable/ic_xda.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/values-nl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Geschiedenis
5 | Oké
6 | Verwijder gedownload recoveries
7 | rapporteer bug
8 | Uitgang
9 | Open XDA-Thread
10 | Als je je backup wilt vernoemen, typ het dan in het tekst veld (zonder spatie!).
11 | Zo niet, dan word huidige tijd ingesteld.
12 |
13 | Voordat je een aantal acties uitvoerd met Recovery-Tools, raden we ten strengste aan om een back-up op uw PC op te slaan.
14 | \nReservekopie wordt gemaakt onder %s.
15 | \nDe ontwikkelaar is niet verantwoordelijk voor enige schade die is gemaakt.
16 |
17 | Ik weet the risico!
18 | Herstarten
19 | Herstart recovery
20 | Herstart bootloader
21 | Infomatie
22 | Recovery geflashed
23 | Waarschuwing!
24 | Uw recovery is geflashed, wilt u herstarten? (je zal moeten herstarten naar recovery)
25 |
26 | Backup voltooid
27 | Backup bestaat al. Dit zal de huidige backup overschrijven, toch doorgaan?
28 |
29 | Error
30 |
31 | Downloading…
32 | commentaar
33 | commentaar hier als iets niet werkt of bugs enzovoort…
34 |
35 | Ja, graag
36 | Nee, bedankt
37 | Annuleer
38 | Log Shell-Commands
39 | Bekijk logs
40 |
41 | Backup Manager
42 | Stel een naam in voor uw back-up
43 | Wenst u nu herstarten naar recovery?
44 | Flashing…
45 | Backup maken…
46 | Als u deze app wilt gebruiken, is deze download verplicht (ongeveer 512KB)
47 | \nNu Downloaden?
48 |
49 | Apparaat is geflasht na recovery mode
50 | Laat advertenties zien om ons te ondersteunen!
51 |
52 | Herstart de app om het aan te passen
53 | Schakel de advertenties aan om mijn werk te ondersteunen!
54 |
55 |
56 | 1 Euros
57 | 2 Euros
58 | 3 Euros
59 | 5 Euros
60 |
61 | Doneren
62 |
63 |
64 | Niet meer laten zien
65 |
66 | Probeer opnieuw!
67 | Later
68 |
69 |
--------------------------------------------------------------------------------
/Utils-Library/src/main/java/de/mkrtchyan/utils/MD5.java:
--------------------------------------------------------------------------------
1 | package de.mkrtchyan.utils;
2 |
3 | import java.io.BufferedInputStream;
4 | import java.io.BufferedReader;
5 | import java.io.File;
6 | import java.io.FileReader;
7 | import java.io.IOException;
8 | import java.io.InputStream;
9 | import java.io.RandomAccessFile;
10 | import java.math.BigInteger;
11 | import java.net.URL;
12 | import java.net.URLConnection;
13 | import java.security.MessageDigest;
14 | import java.security.NoSuchAlgorithmException;
15 |
16 | /**
17 | * Copyright (c) 2016 Aschot Mkrtchyan
18 | * Permission is hereby granted, free of charge, to any person obtaining a copy
19 | * of this software and associated documentation files (the "Software"), to deal
20 | * in the Software without restriction, including without limitation the rights
21 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
22 | * copies of the Software, and to permit persons to whom the Software is
23 | * furnished to do so, subject to the following conditions:
24 | *
25 | * The above copyright notice and this permission notice shall be included in
26 | * all copies or substantial portions of the Software.
27 | *
28 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
29 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
30 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
31 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
32 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
33 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
34 | * SOFTWARE.
35 | */
36 | public class MD5 {
37 |
38 | public static boolean verifyCheckSum(File file, URL checksum) {
39 | try {
40 | System.out.println(checksum);
41 | URLConnection con = checksum.openConnection();
42 | InputStream is = con.getInputStream();
43 | byte buffer[] = new byte[1024];
44 | String sum = "";
45 | is.read(buffer);
46 | for (byte b : buffer) {
47 | if (sum.length() >= 32) break;
48 | sum += String.valueOf((char) b);
49 | }
50 | is.close();
51 | String checkSum = generateChecksum(file);
52 | return sum.equals(checkSum);
53 | } catch (NoSuchAlgorithmException | IOException e) {
54 | e.printStackTrace();
55 | }
56 | return false;
57 | }
58 |
59 | public static boolean verifyCheckSum(File file, File checksum) {
60 | try {
61 | String checkSum = generateChecksum(file);
62 | String line;
63 | BufferedReader reader = new BufferedReader(new FileReader(checksum));
64 | while ((line = reader.readLine()) != null) {
65 | if (line.contains(checkSum)) {
66 | return true;
67 | }
68 | }
69 | } catch (NoSuchAlgorithmException | IOException e) {
70 | e.printStackTrace();
71 | }
72 | return false;
73 | }
74 |
75 | public static String generateChecksum(File file) throws IOException, NoSuchAlgorithmException {
76 | MessageDigest m = MessageDigest.getInstance("MD5");
77 | RandomAccessFile f = new RandomAccessFile(file, "r");
78 | byte[] b = new byte[(int)f.length()];
79 | f.read(b);
80 | m.update(b);
81 | return new BigInteger(1,m.digest()).toString(16);
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/RashrApp/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
20 |
23 |
24 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
71 |
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Rashr - The mobile Android Flash-Tool
2 | ====================
3 |
4 | This app requires [ROOT] access!
5 | Please do not use this app thoughtless and evaluating them without deeper KNOWLEDGE for Android (Root, Custom Recovery, etc.)
6 |
7 | ----- Description -----
8 |
9 | This app flashes and backups your device recovery and kernel without rebooting it very fast and easy without a PC or any outside influence.
10 |
11 | This app have over 1500 build-in recovery IMGs (ClockworkMod/TWRP/Philz) of course you can choose other IMGs from internal and external storage.
12 |
13 | Over 90% of all devices will be supported by the App.
14 |
15 | This project is fully open-source if you want to help me with unsupported devices you can use the report button or contact me over XDA.
16 |
17 | ★Open-Source (on GitHub: https://github.com/dslnexus/Rashr)
18 | ★OpenRecovery Script manager to flash ZIPs
19 | ★Over 1500 Build-in Recoveries (Clockworkmod/Touch, Team Win Recovery Project and Philz-Touch)
20 | ★Flash Kernel and Recoveries without PC
21 | ★Flash already downloaded IMGs from internal and external storage
22 | ★Backup Kernel and Recovery IMGs without PC
23 | ★Needs Root
24 | ★Full command logging for more control what this App is doing
25 | ★If you don't want to support my work you are able to disable the Ads
26 | ★Free full app without Ads and any restrictions
27 |
28 | ★Support my Work only if you want (with Ads or In-App donations)
29 |
30 | ----- Rights explanation -----
31 |
32 | -Read and write on external storage: save recoveries images or read already downloaded images
33 | -Full network access: download recoveries
34 | -Google Play billing: donations over Google Play
35 | -[normally managed by Superuser-App]Full access to all functions of the device: Flashing recoveries and kernel
36 |
37 | Screenshots
38 | ===================================
39 |
40 | []
41 | []
42 | []
43 | []
44 | []
45 |
46 | Compile instructions
47 | ===================================
48 |
49 | To compile Rashr download the Source and needed Libraries:
50 |
51 | Rashr: https://github.com/DsLNeXuS/Rashr
52 |
53 | [Libraries]: All Libraries are included in the repository and pre-configured for
54 | gradle on Android Studio
55 |
56 | Import all Projects in to your IDE and set it on the dependencies list
57 |
58 | COPYRIGHT
59 | ===================================
60 |
61 | Copyright (C) 2014 Ashot Mkrtchyan.
62 |
63 | This program is free software: you can redistribute it and/or modify
64 | it under the terms of the GNU General Public License as published by
65 | the Free Software Foundation, either version 3 of the License, or
66 | (at your option) any later version.
67 |
68 | This program is distributed in the hope that it will be useful,
69 | but WITHOUT ANY WARRANTY; without even the implied warranty of
70 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
71 | GNU General Public License for more details.
72 |
73 | You should have received a copy of the GNU General Public License
74 | along with this program. If not, see .
75 |
--------------------------------------------------------------------------------
/Donations/src/main/java/org/sufficientlysecure/donations/google/util/Inventory.java:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2012 Google Inc.
2 | *
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package org.sufficientlysecure.donations.google.util;
17 |
18 | import java.util.ArrayList;
19 | import java.util.HashMap;
20 | import java.util.List;
21 | import java.util.Map;
22 |
23 | /**
24 | * Represents a block of information about in-app items.
25 | * An Inventory is returned by such methods as {@link IabHelper#queryInventory}.
26 | */
27 | public class Inventory {
28 | Map mSkuMap = new HashMap();
29 | Map mPurchaseMap = new HashMap();
30 |
31 | Inventory() { }
32 |
33 | /** Returns the listing details for an in-app product. */
34 | public SkuDetails getSkuDetails(String sku) {
35 | return mSkuMap.get(sku);
36 | }
37 |
38 | /** Returns purchase information for a given product, or null if there is no purchase. */
39 | public Purchase getPurchase(String sku) {
40 | return mPurchaseMap.get(sku);
41 | }
42 |
43 | /** Returns whether or not there exists a purchase of the given product. */
44 | public boolean hasPurchase(String sku) {
45 | return mPurchaseMap.containsKey(sku);
46 | }
47 |
48 | /** Return whether or not details about the given product are available. */
49 | public boolean hasDetails(String sku) {
50 | return mSkuMap.containsKey(sku);
51 | }
52 |
53 | /**
54 | * Erase a purchase (locally) from the inventory, given its product ID. This just
55 | * modifies the Inventory object locally and has no effect on the server! This is
56 | * useful when you have an existing Inventory object which you know to be up to date,
57 | * and you have just consumed an item successfully, which means that erasing its
58 | * purchase data from the Inventory you already have is quicker than querying for
59 | * a new Inventory.
60 | */
61 | public void erasePurchase(String sku) {
62 | if (mPurchaseMap.containsKey(sku)) mPurchaseMap.remove(sku);
63 | }
64 |
65 | /** Returns a list of all owned product IDs. */
66 | List getAllOwnedSkus() {
67 | return new ArrayList(mPurchaseMap.keySet());
68 | }
69 |
70 | /** Returns a list of all owned product IDs of a given type */
71 | List getAllOwnedSkus(String itemType) {
72 | List result = new ArrayList();
73 | for (Purchase p : mPurchaseMap.values()) {
74 | if (p.getItemType().equals(itemType)) result.add(p.getSku());
75 | }
76 | return result;
77 | }
78 |
79 | /** Returns a list of all purchases. */
80 | List getAllPurchases() {
81 | return new ArrayList(mPurchaseMap.values());
82 | }
83 |
84 | void addSkuDetails(SkuDetails d) {
85 | mSkuMap.put(d.getSku(), d);
86 | }
87 |
88 | void addPurchase(Purchase p) {
89 | mPurchaseMap.put(p.getSku(), p);
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/RashrApp/src/main/java/de/mkrtchyan/recoverytools/view/Card.java:
--------------------------------------------------------------------------------
1 | package de.mkrtchyan.recoverytools.view;
2 |
3 | import android.content.Context;
4 | import android.content.res.TypedArray;
5 | import android.graphics.drawable.Drawable;
6 | import android.support.v7.widget.AppCompatImageView;
7 | import android.support.v7.widget.AppCompatTextView;
8 | import android.support.v7.widget.CardView;
9 | import android.util.AttributeSet;
10 |
11 | import de.mkrtchyan.recoverytools.R;
12 |
13 | public class Card extends CardView {
14 | private AppCompatTextView mTitle;
15 | private AppCompatTextView mDescription;
16 | private AppCompatImageView mIcon;
17 | private String mData;
18 |
19 | public Card(Context context) {
20 | super(context);
21 | init(null, 0);
22 | }
23 |
24 | public Card(Context context, AttributeSet attrs) {
25 | super(context, attrs);
26 | init(attrs, 0);
27 | }
28 |
29 | public Card(Context context, AttributeSet attrs, int defStyle) {
30 | super(context, attrs, defStyle);
31 | init(attrs, defStyle);
32 | }
33 |
34 | private void init(AttributeSet attrs, int defStyle) {
35 | inflate(getContext(), R.layout.card_layout, this);
36 | // Load attributes
37 | mTitle = findViewById(R.id.title);
38 | mDescription = findViewById(R.id.description);
39 | mIcon = findViewById(R.id.card_image);
40 | final TypedArray a = getContext().obtainStyledAttributes(
41 | attrs, R.styleable.Card, defStyle, 0);
42 |
43 | setTitle(a.getString(R.styleable.Card_title));
44 | setDescription(a.getString(R.styleable.Card_description));
45 | // Use getDimensionPixelSize or getDimensionPixelOffset when dealing with
46 | // values that should fall on pixel boundaries.
47 |
48 | if (a.hasValue(R.styleable.Card_drawable)) {
49 | setIcon(a.getDrawable(R.styleable.Card_drawable));
50 | }
51 | if (a.hasValue(R.styleable.Card_data)) {
52 | setData(a.getString(R.styleable.Card_data));
53 | }
54 |
55 | if (a.hasValue(R.styleable.Card_titleColor)) {
56 | setTitleColor(a.getInteger(R.styleable.Card_titleColor, 0));
57 | }
58 |
59 | if (a.hasValue(R.styleable.Card_descriptionColor)) {
60 | setDescriptionColor(a.getInteger(R.styleable.Card_descriptionColor, 0));
61 | }
62 |
63 | if (a.hasValue(R.styleable.Card_backgroundColor)) {
64 | setBackgroundColor(a.getInteger(R.styleable.Card_backgroundColor, 0));
65 | }
66 |
67 | if (a.hasValue(R.styleable.Card_cardColor)) {
68 | setCardBackgroundColor(a.getInteger(R.styleable.Card_cardColor, 0));
69 | }
70 |
71 | a.recycle();
72 | }
73 |
74 | public void setTitle(String title) {
75 | mTitle.setText(title);
76 | }
77 |
78 | public void setDescription(String description) {
79 | mDescription.setText(description);
80 | }
81 |
82 | public void setIcon(Drawable drawable) {
83 | mIcon.setImageDrawable(drawable);
84 | }
85 |
86 | public void setData(String data) {
87 | mData = data;
88 | }
89 |
90 | public String getData() {
91 | return mData;
92 | }
93 |
94 | public void setTitleColor(int fontColor) {
95 | mTitle.setTextColor(fontColor);
96 | }
97 | public void setDescriptionColor(int fontColor) {
98 | mDescription.setTextColor(fontColor);
99 | }
100 | }
101 |
--------------------------------------------------------------------------------
/Utils-Library/src/main/java/de/mkrtchyan/utils/Unzipper.java:
--------------------------------------------------------------------------------
1 | package de.mkrtchyan.utils;
2 |
3 | /*
4 | * Copyright (c) 2013 Ashot Mkrtchyan
5 | * Permission is hereby granted, free of charge, to any person obtaining a copy
6 | * of this software and associated documentation files (the "Software"), to deal
7 | * in the Software without restriction, including without limitation the rights
8 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | * copies of the Software, and to permit persons to whom the Software is
10 | * furnished to do so, subject to the following conditions:
11 | *
12 | * The above copyright notice and this permission notice shall be included in
13 | * all copies or substantial portions of the Software.
14 | *
15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | * SOFTWARE.
22 | */
23 |
24 | import android.os.AsyncTask;
25 | import android.util.Log;
26 |
27 | import java.io.BufferedInputStream;
28 | import java.io.BufferedOutputStream;
29 | import java.io.File;
30 | import java.io.FileOutputStream;
31 | import java.io.IOException;
32 | import java.util.Enumeration;
33 | import java.util.zip.ZipEntry;
34 | import java.util.zip.ZipFile;
35 |
36 | public class Unzipper {
37 |
38 | private static final String TAG = "Unzipper";
39 |
40 | static public void unzip(final File zipFile, final File OutputFolder) {
41 | OutputFolder.mkdir();
42 | Log.d(TAG, "unzipping " + zipFile.getName() + " to " + OutputFolder.getAbsolutePath());
43 | new UnZipTask().execute(zipFile, OutputFolder);
44 | }
45 |
46 | public static void unzipEntry(ZipFile zipfile, ZipEntry entry,
47 | File outputDir) throws IOException {
48 |
49 | if (entry.isDirectory()) {
50 | new File(outputDir, entry.getName()).mkdir();
51 | return;
52 | }
53 |
54 | File outputFile = new File(outputDir, entry.getName());
55 | if (!outputFile.getParentFile().exists()) {
56 | outputFile.getParentFile().mkdir();
57 | }
58 |
59 | Log.v(TAG, "Extracting: " + entry);
60 | BufferedInputStream inputStream = new BufferedInputStream(zipfile.getInputStream(entry));
61 | BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(outputFile));
62 |
63 | int bufferLength;
64 | byte[] buffer = new byte[1024];
65 | while ((bufferLength = inputStream.read(buffer)) > 0) {
66 | outputStream.write(buffer, 0, bufferLength);
67 | }
68 | outputStream.close();
69 | inputStream.close();
70 | }
71 |
72 | private static class UnZipTask extends AsyncTask {
73 |
74 | @SuppressWarnings("rawtypes")
75 | @Override
76 | protected Boolean doInBackground(File... params) {
77 |
78 | File archive = params[0];
79 | try {
80 | File destination = params[1];
81 | ZipFile zipfile = new ZipFile(archive);
82 | for (Enumeration e = zipfile.entries(); e.hasMoreElements(); ) {
83 | ZipEntry entry = (ZipEntry) e.nextElement();
84 | unzipEntry(zipfile, entry, destination);
85 | }
86 | } catch (Exception e) {
87 | Log.e(TAG, "Error while extracting file " + archive.getName(), e);
88 | return false;
89 | }
90 |
91 | return true;
92 | }
93 |
94 |
95 | }
96 | }
--------------------------------------------------------------------------------
/RashrApp/src/main/res/xml/preferences.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
9 |
13 |
14 |
18 |
19 |
20 |
25 |
26 |
31 |
32 |
36 |
37 |
38 |
39 |
40 |
41 |
46 |
50 |
51 |
56 |
57 |
58 |
59 |
64 |
65 |
70 |
71 |
72 |
73 |
76 |
79 |
82 |
85 |
88 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
20 |
21 |
29 |
30 |
36 |
37 |
41 |
42 |
43 |
44 |
45 |
46 |
51 |
52 |
58 |
59 |
62 |
63 |
70 |
71 |
78 |
79 |
80 |
81 |
82 |
83 |
--------------------------------------------------------------------------------
/Utils-Library/src/main/java/de/mkrtchyan/utils/SHA1.java:
--------------------------------------------------------------------------------
1 | package de.mkrtchyan.utils;
2 |
3 | /*
4 | * Copyright (c) 2013 Ashot Mkrtchyan
5 | * Permission is hereby granted, free of charge, to any person obtaining a copy
6 | * of this software and associated documentation files (the "Software"), to deal
7 | * in the Software without restriction, including without limitation the rights
8 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | * copies of the Software, and to permit persons to whom the Software is
10 | * furnished to do so, subject to the following conditions:
11 | *
12 | * The above copyright notice and this permission notice shall be included in
13 | * all copies or substantial portions of the Software.
14 | *
15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | * SOFTWARE.
22 | */
23 |
24 | import android.util.Log;
25 |
26 | import java.io.BufferedReader;
27 | import java.io.File;
28 | import java.io.FileInputStream;
29 | import java.io.IOException;
30 | import java.io.InputStreamReader;
31 | import java.security.MessageDigest;
32 | import java.security.NoSuchAlgorithmException;
33 |
34 | public class SHA1 {
35 |
36 | private static final String TAG = "SHA1";
37 |
38 | /**
39 | * Verifies file's SHA1 checksum
40 | *
41 | * @param file and name of a file that is to be verified
42 | * @param ChecksumFile the file with generated checksum
43 | * @return true if the excepted SHA1 checksum matches the file's SHA1 checksum; false otherwise.
44 | */
45 | public static boolean verifyChecksum(final File file, final File ChecksumFile) throws IOException, SHA1SumNotFound {
46 | String line;
47 | BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(ChecksumFile)));
48 | while ((line = br.readLine()) != null) {
49 | if (line.endsWith(file.getName())) {
50 | Log.d(TAG, "Checksum found!");
51 | if (line.startsWith(generateChecksum(file))) {
52 | Log.d(TAG, "Checksum correct");
53 | br.close();
54 | return true;
55 | } else {
56 | Log.d(TAG, "Checksum incorrect");
57 | br.close();
58 | return false;
59 | }
60 | }
61 | }
62 | Log.d(TAG, "Checksum not found! Throwing Exception!");
63 | throw new SHA1SumNotFound("SHA1Checksum not found!");
64 | }
65 |
66 | public static String generateChecksum(File file) throws IOException {
67 |
68 | try {
69 | MessageDigest sha1 = MessageDigest.getInstance("SHA1");
70 | FileInputStream fis = new FileInputStream(file);
71 |
72 | byte[] data = new byte[1024];
73 | int read;
74 | while ((read = fis.read(data)) != -1) {
75 | sha1.update(data, 0, read);
76 | }
77 | byte[] hashBytes = sha1.digest();
78 |
79 | StringBuilder sb = new StringBuilder();
80 | for (byte i : hashBytes) {
81 | sb.append(Integer.toString((i & 0xff) + 0x100, 16).substring(1));
82 | }
83 |
84 | return sb.toString();
85 | } catch (NoSuchAlgorithmException e) {
86 | e.printStackTrace();
87 | return "";
88 | }
89 | }
90 |
91 | public static class SHA1SumNotFound extends Exception {
92 |
93 | public SHA1SumNotFound(String detailMessage) {
94 | super(detailMessage);
95 | }
96 | }
97 |
98 | public static class SHA1ShellException extends Exception {
99 | public SHA1ShellException(String detailMessage) {
100 | super(detailMessage);
101 | }
102 | }
103 | }
104 |
--------------------------------------------------------------------------------
/root-commands/src/main/java/org/sufficientlysecure/rootcommands/SystemCommands.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2012 Dominik Schürmann
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package org.sufficientlysecure.rootcommands;
18 |
19 | import android.annotation.TargetApi;
20 | import android.content.ContentResolver;
21 | import android.content.Context;
22 | import android.location.LocationManager;
23 | import android.os.PowerManager;
24 | import android.provider.Settings;
25 |
26 | /**
27 | * This methods work when the apk is installed as a system app (under /system/app)
28 | */
29 | public class SystemCommands {
30 | Context context;
31 |
32 | public SystemCommands(Context context) {
33 | super();
34 | this.context = context;
35 | }
36 |
37 | /**
38 | * Get GPS status
39 | *
40 | * @return
41 | */
42 | public boolean getGPS() {
43 | return ((LocationManager) context.getSystemService(Context.LOCATION_SERVICE))
44 | .isProviderEnabled(LocationManager.GPS_PROVIDER);
45 | }
46 |
47 | /**
48 | * Enable/Disable GPS
49 | *
50 | * @param value
51 | */
52 | @TargetApi(8)
53 | public void setGPS(boolean value) {
54 | ContentResolver localContentResolver = context.getContentResolver();
55 | Settings.Secure.setLocationProviderEnabled(localContentResolver,
56 | LocationManager.GPS_PROVIDER, value);
57 | }
58 |
59 | /**
60 | * TODO: Not ready yet
61 | */
62 | @TargetApi(8)
63 | public void reboot() {
64 | PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
65 | pm.reboot("recovery");
66 | pm.reboot(null);
67 |
68 | // not working:
69 | // reboot(null);
70 | }
71 |
72 | /**
73 | * Reboot the device immediately, passing 'reason' (may be null) to the underlying __reboot
74 | * system call. Should not return.
75 | *
76 | * Taken from com.android.server.PowerManagerService.reboot
77 | */
78 | // public void reboot(String reason) {
79 | //
80 | // // final String finalReason = reason;
81 | // Runnable runnable = new Runnable() {
82 | // public void run() {
83 | // synchronized (this) {
84 | // // ShutdownThread.reboot(mContext, finalReason, false);
85 | // try {
86 | // Class> clazz = Class.forName("com.android.internal.app.ShutdownThread");
87 | //
88 | // // if (mReboot) {
89 | // Method method = clazz.getMethod("reboot", Context.class, String.class,
90 | // Boolean.TYPE);
91 | // method.invoke(null, context, null, false);
92 | //
93 | // // if (mReboot) {
94 | // // Method method = clazz.getMethod("reboot", Context.class, String.class,
95 | // // Boolean.TYPE);
96 | // // method.invoke(null, mContext, mReason, mConfirm);
97 | // // } else {
98 | // // Method method = clazz.getMethod("shutdown", Context.class, Boolean.TYPE);
99 | // // method.invoke(null, mContext, mConfirm);
100 | // // }
101 | // } catch (Exception e) {
102 | // e.printStackTrace();
103 | // }
104 | // }
105 | //
106 | // }
107 | // };
108 | // // ShutdownThread must run on a looper capable of displaying the UI.
109 | // mHandler.post(runnable);
110 | //
111 | // // PowerManager.reboot() is documented not to return so just wait for the inevitable.
112 | // // synchronized (runnable) {
113 | // // while (true) {
114 | // // try {
115 | // // runnable.wait();
116 | // // } catch (InterruptedException e) {
117 | // // }
118 | // // }
119 | // // }
120 | // }
121 |
122 | }
123 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/values-mk/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Нагодувања
5 | Историја
6 | ОК
7 | Рестартиран
8 | Исчисти ги симнатите датотеки
9 | Пријави грешка
10 | Излез
11 | Отвори XDA тема
12 | Доколку сакате можете да напишете име по ваша желба, во спротивно моменталното време/дата ќе бидат наместени како име.
13 | Пред да почнете да ја користите апликацијата Recovery Tools ве молиме прво направете резервна копија.
14 | \nРезервните копии ќе бидат креирани во %s.
15 | \nПрограмерот не е одговорен за можните штети.
16 |
17 | Го прифаќам ризикот
18 | Рестартирај
19 | Рестартирај во Recovery мод
20 | Рестартирај во Bootloader мод
21 | Информации
22 | Новото Recovery е инсталирано.
23 | Внимание!
24 | Инсталирај Recovery? (потребно е рестартирање во Recovery мод)
25 |
26 | Креирањето на резервна копија заврши
27 | Постои резервна копија со вакво име, ова ќе ја избрише веќепостоечката копија.
28 | \n\nПродолжи?
29 |
30 | Грешка
31 |
32 | Превземање…
33 | Коментар
34 | Оставете коментар во врска со проблемот што го имате
35 |
36 | Да
37 | Не, благодарам
38 | Откажи
39 |
40 | Лог датотека
41 | Покажи лог датотека
42 |
43 | Менаџер на резервни копии
44 | Додади име на резервната копија
45 | Рестартирај во Recovery мод?
46 | Инсталирање…
47 | Враќање…
48 | Креирање на резервна копија…
49 |
50 | За да ја користите оваа апликација треба да превземете мала датотека (околу 500KB).
51 | Ова побарува интернет конекција.
52 | \nПревземи сега?
53 |
54 | Uredot \'e bide restartiran vo Recovery мод
55 | Прикажи реклами за поддршка
56 |
57 | Рестартирајте ја апликацијата за да ги видите промените
58 | Ве молам вклучете ги рекламите за да ја поддржите мојата работа! :(
59 | Донирајте за да ја поддржите мојата работа :)
60 |
61 |
62 | 1 Евро
63 | 2 Евра
64 | 3 Евра
65 | 5 Евра
66 |
67 | Донирај
68 |
69 | Не прикажувај повторно
70 | Пробај повторно!
71 | Подоцна
72 |
73 | Инсталирањето е неуспешно
74 | Враќањето е неуспешно
75 | Креирањето резервна копија е неуспешно
76 | Сток
77 | Промени
78 |
79 | SuperSu од Chainfire не е пронајден на вашиот уред. Ве молиме инсталирајте го за да избегнете грешки. Превземи SuperSu (од Play Store)?
80 | %s избришано
81 |
82 |
--------------------------------------------------------------------------------
/RashrApp/src/main/res/layout/fragment_settings.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
12 |
13 |
18 |
19 |
24 |
25 |
30 |
31 |
36 |
37 |
43 |
44 |
50 |
51 |
57 |
58 |
64 |
65 |
71 |
72 |
78 |
79 |
85 |
86 |
91 |
92 |
97 |
98 |
103 |
104 |
105 |
--------------------------------------------------------------------------------