Affichage des articles dont le libellé est guide. Afficher tous les articles
Affichage des articles dont le libellé est guide. Afficher tous les articles

samedi 28 février 2015

[Q] Guide online love problem solution baba ji +91-9888673540 topic






Guide online love problem solution baba ji +91-9888673540
Guide online love problem solution baba ji +91-9888673540
Guide online love problem solution baba ji +91-9888673540






[Guide] A little guide to security & privacy on Android topic






A little intro:

I have spent a lot of time with malware on windows and which apps/settings can actually protect you. By working with malware you also get a lot of background info on how people / companies / governments can steal your privacy from you and how to protect yourself against it. When I decided to care about all that I noticed that a lot of "security forum experts for PCs" have no clue about Android and its risks although probably the same if not more data is stored on our phones than on our PCs. So I decided to do some background searched, worked with Android malware and played around with the different ways and options that can protect your security & privacy.

When I am looking for a security setup then I want one that is reliable & easy-to-work-with but also lightweight on the system. I don't want my security setup to cripple down my system.

I have done similar guide for Windows and as I haven't seen anything like them for Android I thought I would give it a little go.

What can you do to protect your security & privacy:

Security - Firewall: To block incoming / outcoming traffic per app or per IP/DNS/Port. Can drain the battery and be a pain to configure on Android.
Security - Antivirus: To scan files after they have been downloaded or to scan files after they have been installed. Due to how Android is coded it is not possible to scan in real-time (while downloading, while installing) which means you can't detect malware based on their behavior. AV's on Android can only detect malware by their signature which is easy to bypass. However is still better than nothing and a one-time scan of downloaded files or an on-demand scan while your phone is charging won't hurt your battery or slow down the device. A lot of AV-Products come with multiple features built in. Some of them are often useless (e.g. maybe anti-theft), others are worth the usage (e.g. security audits for non-fixed exploit vulnerabilities or bad system settings e.g. USB-Debugging enabled).
Security - SuperSU: To actively manage which apps will get "unlimited" root access.
Security & Privacy - DNS: Change the DNS-Server you use to something like NortonDNS which will protect you from malware/phishing sites as well as semi-bypass the tracking of browsing behavior by your phone/internet provider.
Security & Privacy - VPN: An easy way for attackers in your network (especially open & free wifi's) to steal data from you are MITM (Man In The Middle) attacks. They can modify SSL certificates which means even using HTTPS might not always be safe or simply read your network activity (including logins which includes accounts + password). By using a VPN all the traffic that leaves your device will be encrypted and routed directly to a safe receiver which means no one can interrupt your traffic and sniffs (read) it.
Security & Privacy - SSH-Tunnel: Using an SSH-Tunnel has pretty much the same effect as using a VPN but the difference is you have to configure each app that you want to use the SSH-Tunnel. I prefer this method on Windows as I can encrypt only the traffic of my browser/mail/communicator while playing games or other apps will use the non-encrypted (and often faster) internet connection. Sadly there is no app on Android that in my opinion works flawlessly as SSH-Tunnel client.
Security & Privacy - Adblockers: We all know adblockers. They block ads to protect your privacy by blocking trackers and some of them (e.g. mdl-malwaredomainlist) also protect you from malware & phishing websites.
Privacy - App Ops: App Ops or similar apps let you block permissions per app which means whatever app is installed / running can be forced to not use specific permissions. E.g. you can block Facebook from using your GPS and tracking your location.
Privacy - Android 5.x disable allowed certificates: Every website and every (good) app will have a certificated that Android and also AV's check online to see if the website/app is trustworthy. Out-of-the-box Android allows many questionable certificates from governments and companies that might sell their certificates to websites/app that are not so trustworthy. Since Android 5.x you can remove/add certificates to disallow governments or companies that sell their certificates to questionable websites/apps.
Privacy - Encrypt your phone: by encrypting your phone you ensure that no one finding your phone will be easily able to read anything saved on your phone. Not even by entering the recovery mode. It may slow down the performance a bit and increase battery drain slightly, but for me (Nexus 6) I had no troubles so far.

You can make that list longer by using only secure apps for communication (e.g. encrypted chats with Telegrams or using Firefox and add-ons such as HTTPS-Everywhere) but I think that is more advanced and takes away the freedom and choice of readers/users. So I will stop here as I think I have covered the basics and most important things.

Which setup should you choose?
Well first of all I recommend using only apps/services of companies that you can trust. E.g. companies that exist for a long time but haven’t done any questionable actions in the past. I have been a long-time-user of Comodo but looking at what Comodo has allowed itself in the past made me choose something different. On Android a good example are sms/call blockers. There are many one for example one is produces by a company named "NQ Security". Now do your google work and you will find some details that either makes you think of this company as trustworthy or not. Or maybe there are other companies with the same product which you would rather trust?

One thing to notice is that in the end your setup should cover most if not all aspects that I have mentioned above. Now you can either choose to use different many different products (e.g. if they are free) or use on paid solution that covers everything at once. In any case, don't forget about stuff that might get installed but be useless to you. E.g. at some point I found my setup to have 3 different call blockers and 4 different sms blocker installed.

I have made a list of a few picks that I would recommend:

Must-Have

SuperSU / Rooted device (Click for Google play): 99% of all apps & configurations listed here will need your device to be rooted. Also SuperSU gives you a good overview about which apps have root access and is a got tool to configure those apps.
Override DNS (Click for Google play): It automatically changes the used DNS Server for 2G/3G/4G/WIFI to whatever you want (e.g. NortonDNS). Currently it is the only app that works with Android 5.x.
AdAway (Click for download link): Lets you block ads, tracking, malware and phishing sites. I recommend the standard sources + www.malwaredomainlist.com/hostslist/hosts.txt
App Ops (Click for Google play): App Ops lets you block permissions per app which means whatever app is installed / running can be forced to not use specific permissions. E.g. you can block Facebook from using your GPS and tracking your location.

GSP - Good Security Practice (Recommendations)

Disable untrusted certificates (Android 5.x) (Mozilla Firefox list of allowed certificates): Use a source you trust and check what certificates they usually allow in their software (e.g. Mozilla Firefox). Then check that with what is enabled in your Android's security settings and disable whatever android has enabled but e.g. Mozilla Firefox doesn't.
Encrypt your phone: Enable encryption of your Android device.
Antivirus: You can check AV-Test.org for monthly security review on mobile security products and choose from there. But I recommend either "Bitdefender Free" for a simple file-scanner of downloaded files and installed apps as well as on-demand scanner or "ESET Free/Premium" which includes file-scanner, security audit, sms & call blocker as well as phishing protection and even anti-theft if needed. Both companies are in my option very trustworthy and provide good results over the past month/years (not only on the mobile market but also the PC market). Avast is a free option with lots of features from another trustworthy company but I found it to be heavier on my system than Bitdefender or ESET.
VPN if you use public WIFI: I also recommend the use of a VPN from a trustworthy VPN provider. They don't cost too much and improve your security & privacy on public wifi a lot.
Firefox (HTTPS-Everywhere + Adblock Edge) > Chrome: Firefox seems to be the winner in terms of privacy and security. But on my system Chrome is a lot faster than Firefox.
Telegram > WhatsApp: Not only is Telegram free but also provides a lot of nice feature such as the automatic deletion of your account and all its data when it has been inactive for x months. Telegram might also be the better choice as WhatsApp is already part of Facebook.

The bottom line

I tried to give a little overview of what kind of protection is available and what it does. I also added my choice of tools which will provide you with protection. It is up to you to decide whether it is useful in your case (based on your phone-behavior) and if you are willing to pay money for it or rather use free services. I will gladly help you with any questions or configuration/setup related things. Please let me know if you have any suggestion or corrections so that I can improve this thread !

Thanks






vendredi 27 février 2015

[Q&A] [Guide] All-in-One Package - Samsung Galaxy Ace-i – How to Unbrick with Cygwin topic






Q&A for [Guide] All-in-One Package - Samsung Galaxy Ace-i – How to Unbrick with Cygwin, Odin

Some developers prefer that questions remain separate from their main development thread to help keep things organized. Placing your question within this thread will increase its chances of being answered by a member of the community or by the developer.

Before posting, please use the forum search and read through the discussion thread for [Guide] All-in-One Package - Samsung Galaxy Ace-i – How to Unbrick with Cygwin, Odin. If you can't find an answer, post it here, being sure to give as much information as possible (firmware version, steps to reproduce, logcat if available) so that you can get help.

Thanks for understanding and for helping to keep XDA neat and tidy! :)






[GUIDE] FIX Theme Engine Bug on N9 (Alternative Method) [SystemUI not Themed] topic






First of all, this guide uses elements of another method, originally posted on G+ and YouTube (https://www.youtube.com/watch?v=MW1UsCyOidY) but for some reason, on the Nexus 9, this method does not always work. The below method will work 100% of the time on the Nexus 9.
  1. Go into the Theme Engine, and apply the SYSTEM DEFAULT THEME

  2. Open Play Store, and purchase and download SQLite Editor (paid app, have not found a free version that actually works with Root access) - https://play.google.com/store/apps/d...qleditor&hl=en

  3. Open SQLite editor.

  4. In the APP list (selected by default) tap on the Settings Storage entry that says com.android.providers.settings underneath it

  5. Tap on settings.db

  6. Tap on secure

  7. Scroll all the way to the bottom of the list, and long press on themeConfig entry

  8. Tap on DELETE ENTRY

  9. Exit SQLite Editor and go into Settings

  10. Select Apps, and then All

  11. Find the Theme Engine, and tap on it

  12. Select FORCE CLOSE and then CLEAR DATA and clear the Theme Engine's data

  13. Reboot your Nexus 9

  14. Apply whatever theme you would like, and enjoy everything being themed, that was not themed before

  15. Prosper


Please let me know if this method did, or did not work for you. I have tried it on three different N9s that were all experiencing the Theme Engine bug, and it worked on all three.

Thanks for reading.






[GUIDE] How To Shutdown Windows 8&8.1 Instantly. With *.bat File. topic






Hey, There . We Are Suffer problem While Shutdown Windows 8 & 8.1 .Because there are no power off button. We Press Manual to shutdown. Either Alt+F4 or Going to settings.

So, I am Gonna to Show to How to shutdown Windows 8 & 8.1.[And You can also add to your Desktop.]

STEPS —
1.TO DO OPEN NOTEPAD and TYPE THE FOLLOWING

Code:


C:\Windows\system32\shutdown -s -f -t 000

2.And SAVE AS it

3.Select all files(*.*)" type the name of the file, it may be anything you want.But remember adding *.bat after the name of the file.

DONE ;) YOU MADE IT.



IF I HELPED HIT PRESS THANKS. :svetius:






[Q&A] [GUIDE] How to port MIUI v4 to your Device topic






Q&A for [GUIDE] How to port MIUI v4 to your Device

Some developers prefer that questions remain separate from their main development thread to help keep things organized. Placing your question within this thread will increase its chances of being answered by a member of the community or by the developer.

Before posting, please use the forum search and read through the discussion thread for [GUIDE] How to port MIUI v4 to your Device. If you can't find an answer, post it here, being sure to give as much information as possible (firmware version, steps to reproduce, logcat if available) so that you can get help.

Thanks for understanding and for helping to keep XDA neat and tidy! :)






[ GUIDE ] How to solve ' Invalid IMEI ' error on Micromax Canvas Knight topic






This guide will help you gain back your IMEI on your Micromax Canvas Knight [Only if the Baseband is not lost].


NOTE :

1.Only for ROOTED devices !

2. This guide is useful only when the 'Baseband Version' of your device is avilable. If the device is showing 'Unknown' in the Baseband tab in the About device section , then you will have to use a different method.

3. This method is also applicable for many other MTK6589 and MTK6592 devices [Even more , maybe].


STEP 1 :

1.1 Go ahead and install Mobile Uncle Tools from Playstore .



STEP 2 :

2.1 Open the Mobile Uncle Tools and grant Super User permissions
2.2 Click on Engineer Mode and then click on 'Engineer Mode (MTK)'


This will take you to the MTK Engineer Mode.

STEP 3 :

3.1 Now swipe right once and you will find the ' Connectivity ' tab.
3.2 Under this tab , you will find ' CDS Information '. Click on that.
3.3 Next , find ' Radio Information '.
3.4 On opening Radio Information , you will find 2 options : Phone 1 and Phone 2 .
This denotes the IMEI slots for the 2 SIM cards.


STEP 4 :

4.1 You'll find a page with ' AT+ __________________ '
4.2 Now , just after the '+' , type 'EGMR' . As you start typing , it will automatically pop-up four messages.
4.3 Select the first one from that : AT+EGMR=1,7,"".
4.4 Between the two double - inverted commas , type in the IMEI 1 . You can find the IMEI from the backside of the device [If at all you have not removed that TAG] like this .

AT+EGMR=1,7," 15 digit IMEI number "

4.5 Now click on " SEND AT COMMAND ".

You will receive a small toast message like this " AT Command is msent ".
That message shows that the IMEI has been restored !

Now , repeat steps 4.1 , 4.2 and 4.3 for Phone 2 .
But , in step 4.3 , select " AT+EGMR=1,10, "" " ( It is the second option )
Repeat rest of the steps and you will have both the IMEI written on your device
.

To check , just type *#06# on dial-pad and it will show your IMEI numbers .

STEP 5 :
* Reboot !


And then the SIM cards will be detected .

:)






jeudi 26 février 2015

[q] [root] [guide] lg l70 d325 topic






Hi devlopers i needed help to root lg l7 dual(D325).
it runs stock lg rom, android 4.4.2v ,
framaroot does not work , towelroot does not work
plz help !!!!!!!! :crying:






[Q] Guide online love problem solution expert +91-9888673540 Niger topic






Guide online love problem solution expert +91-9888673540 Niger

Guide online love problem solution expert +91-9888673540 Niger

Guide online love problem solution expert +91-9888673540 Niger






[Q] Guide online love problem solution expert +91-9888673540 Usa topic






Guide online love problem solution expert +91-9888673540 Usa
Guide online love problem solution expert +91-9888673540 Usa
Guide online love problem solution expert +91-9888673540 Usa






[Q] Guide online love problem solution expert +91-9888673540 Maharashtra topic






Guide online love problem solution expert +91-9888673540 Maharashtra

Guide online love problem solution expert +91-9888673540 Maharashtra

Guide online love problem solution expert +91-9888673540 Maharashtra






[Guide] Floating in circular boundary (or rectangular) with accelerometer sensor topic






This guide is about floating, moving a point in coordinate system.

It may be useful to make spirit level (bubble level) or magic 8 ball and so on :)

Just use device's accelerometer sensor to moving a center point.

I wrote android custom view which implements SensorEventListener.

Do some initialization (measuring screen size, set boundary size, assign values...) first.

Draw the x, y axis and boundary and little circle.

In end of the onDraw(), invalidate() makes little circle keep moving.



Important formula to make little circle inside circular boundary is below.


Code:


    private void calc(){
        //for simulating object floating on water
        //against gravity
        xCon += mSensorX;
        yCon -= mSensorY;

        /*
        //for simulating object rolling on ground
        //adjust to gravity
        xCon -= mSensorX;
        yCon += mSensorY;
        */

        //for circular boundary
        if(Math.pow(xCon, 2) + Math.pow(yCon, 2) >= boundarySquare){
            isBoundaryOut = true;


            if(xCon != 0 && yCon != 0){
                radian = (float) Math.atan2(yCon, xCon);
            }


            xCon = (float) (Math.cos(radian) * boundary);
            yCon = (float) (Math.sin(radian) * boundary);

        }
        else{
            isBoundaryOut = false;
        }
    }


add the sensor's value to x, y coordinate (xCon, yCon) and check it is out of the circular boundary.
If it is change the value with the Formula

x = cos(atan2(y, x)) * CIRCULAR_BOUDNARY_RADIUS
y = sin(atan2(y, x)) * CIRCULAR_BOUDNARY_RADIUS

You can select the circle to float on water or roll on ground just change addition <-> subtraction.

- For simulating object floating on water, against gravity
xCon += mSensorX;
yCon -= mSensorY;


- For simulating object rolling on ground, adjust to gravity
xCon -= mSensorX;
yCon += mSensorY;


Also you can change boundary shape easily
For rectangle boundary
if(xCon > horizontalBound){
xCon = horizontalBound;
}
else if(xCon < -horizontalBound){
xCon = -horizontalBound;
}
if(yCon > verticalBound){
yCon = verticalBound;
}
else if(yCon < -verticalBound){
yCon = -verticalBound;
}




Code:


    @Override
    public void onSensorChanged(SensorEvent event) {
        if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER)
            return;
       
        mSensorX = sensor_weight * event.values[0];
        mSensorY = sensor_weight * event.values[1];
    }


onSensorChanged() I just add sensor values(weighted) to center point x, y and it seems to be quite enough to do rough simulation.

Whole source code of my custom view is like below.


Code:


package net.gerosyab.circularboundary;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.util.AttributeSet;
import android.view.Display;
import android.view.Surface;
import android.view.View;
import android.view.WindowManager;

public class MyView extends View implements SensorEventListener{

    Context context;

    //weight for calculating speed of floating image
    //multiplied with accelrometer sensor value
    //faster if it is more than 1
    //slower if it is less than 1
    float sensor_weight = 2.15f;

    float width;
    float height;
    float cx;
    float cy;
    float x;
    float y;
    float xCon, yCon;
    float boundary;
    float boundarySquare;
    float dotRadius = 15;
    float radian;
    Paint linePaint, circlePaint, dotPaint, textPaint;
    float horizontalBound;
    float verticalBound;
    boolean isBoundaryOut = false;

    private float mSensorX;
    private float mSensorY;
    private SensorManager mSensorManager;
    private Sensor mAccelerometer;
    private WindowManager mWindowManager;
    private Display mDisplay;

    public MyView(Context context) {
        super(context);
        this.context = context;
        init();
    }

    public MyView(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.context = context;
        init();
    }

    public MyView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        this.context = context;
        init();
    }

    private void init(){
        linePaint = new Paint();
        circlePaint = new Paint();
        dotPaint = new Paint();
        textPaint = new Paint();

        linePaint.setColor(Color.WHITE );
        linePaint.setAntiAlias(true);
        linePaint.setStrokeWidth(2);
        linePaint.setStyle(Paint.Style.STROKE);
        circlePaint.setColor(Color.YELLOW);
        circlePaint.setAntiAlias(true);
        circlePaint.setStrokeWidth(2);
        circlePaint.setStyle(Paint.Style.STROKE);
        dotPaint.setColor(Color.RED);
        dotPaint.setAntiAlias(true);
        dotPaint.setStrokeWidth(5);
        dotPaint.setStyle(Paint.Style.FILL);
        textPaint.setColor(Color.WHITE);
        textPaint.setAntiAlias(true);
        textPaint.setStyle(Paint.Style.FILL_AND_STROKE);
        textPaint.setTextSize(40);

        x = cx;
        y = cy;
        xCon = 0;
        yCon = 0;

    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        //draw x, y axis
        canvas.drawLine(cx, 0, cx, height, linePaint);
        canvas.drawLine(0, cy, width, cy, linePaint);

        //draw circular boundary
        canvas.drawCircle(cx, cy, boundary, circlePaint);

        canvas.drawRect(cx - horizontalBound, cy - verticalBound, cx + horizontalBound, cy + verticalBound, circlePaint);

        calc();
        //draw dot
        canvas.drawCircle(xCon + cx, yCon + cy, dotRadius, dotPaint);

        //draw text
        canvas.drawText("isBoundaryOut : " + isBoundaryOut, 100, 50, textPaint);
        canvas.drawText("sensorX : " + mSensorX, 100, 100, textPaint);
        canvas.drawText("sensorY : " + mSensorY, 100, 150, textPaint);
        canvas.drawText("xCon : " + xCon, 100, 200, textPaint);
        canvas.drawText("yCon : " + yCon, 100, 250, textPaint);
        canvas.drawText("cx : " + cx, 100, 300, textPaint);
        canvas.drawText("cy : " + cy, 100, 350, textPaint);
        canvas.drawText("horizontalBound : " + horizontalBound, 100, 400, textPaint);
        canvas.drawText("verticalBound : " + verticalBound, 100, 450, textPaint);
        invalidate();
    }

    private void calc(){
        //for simulating object floating on water
        //against gravity
        xCon += mSensorX;
        yCon -= mSensorY;

        /*
        //for simulating object rolling on ground
        //adjust to gravity
        xCon -= mSensorX;
        yCon += mSensorY;
        */

        /*
        //for rectangle boundary
        if(xCon > horizontalBound){
            xCon = horizontalBound;
        }
        else if(xCon < -horizontalBound){
            xCon = -horizontalBound;
        }
        if(yCon > verticalBound){
            yCon = verticalBound;
        }
        else if(yCon < -verticalBound){
            yCon = -verticalBound;
        }
        */

        //for circular boundary
        if(Math.pow(xCon, 2) + Math.pow(yCon, 2) >= boundarySquare){
            isBoundaryOut = true;


            if(xCon != 0 && yCon != 0){
                radian = (float) Math.atan2(yCon, xCon);
            }

            xCon = (float) (Math.cos(radian) * boundary);
            yCon = (float) (Math.sin(radian) * boundary);
        }
        else{
            isBoundaryOut = false;
        }
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        width = getWidth();
        height = getHeight();
        cx = width / 2;
        cy = height / 2;
        boundary = width * 0.15f;
        horizontalBound = boundary;
        verticalBound = boundary;
        boundarySquare = boundary * boundary;

        mSensorManager = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE);
        mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
        // Get an instance of the WindowManager
        mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        mDisplay = mWindowManager.getDefaultDisplay();
        mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_UI);
    }

    @Override
    public void onSensorChanged(SensorEvent event) {
        if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER)
            return;

        switch (mDisplay.getRotation()) {
            case Surface.ROTATION_0:
                mSensorX = sensor_weight * event.values[0];
                mSensorY = sensor_weight * event.values[1];
                break;
            case Surface.ROTATION_90:
                mSensorX = sensor_weight * -event.values[1];
                mSensorY = sensor_weight * event.values[0];
                break;
            case Surface.ROTATION_180:
                mSensorX = sensor_weight * -event.values[0];
                mSensorY = sensor_weight * -event.values[1];
                break;
            case Surface.ROTATION_270:
                mSensorX = sensor_weight * event.values[1];
                mSensorY = sensor_weight * -event.values[0];
                break;
        }
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {

    }

    @Override
    protected void onDetachedFromWindow() {
        super.onDetachedFromWindow();
        mSensorManager.unregisterListener(this);
    }
}


Hope this is helpful!
Thanks :D








Attached Thumbnails


Click image for larger version<br/><br/>Name:	screeenshot2.png<br/>Views:	N/A<br/>Size:	62.0 KB<br/>ID:	3184507
 

















[GUIDE] Customize Lollipop's official Clock application topic








I am a person who needs many many multiple alarms to wake up early in the morning.
Every clock/alarm applications I tried has no feature that turning on or off all alarms at once.
So I decided to customize google's official android clock app.

Let's get it started.

### Needed #####
  1. google's clock app source (I use Lollipop's source for my device)

  2. buttons icon image


### Steps #####

1) download source from googlesource.com repository
android system clock application's package name is "DeskClock".
You can clone the source like below

Code:


git clone -b lollipop-release https://android.googlesource.com/platform/packages/apps/DeskClock

2. import it & remove errors
When you import the project to your IDE, you will get thousand of import errors.
Check below
  • SDK Version
    - Make sure that you have lollipop sdk and check "Build Target" in "Project Properties"

  • AndroidManifest
    - Specify min/targetSdkVersion, if it is not in AndroidManifest.xml
    - There is "DEVICE_POWER" permission because it is android system app but we can't build system application so just remove it. (In my usage, it seems to be no problem)

  • Library
    - Put android support-library jar file and add it to project build path.


3. Add button icons
- add ic_all_on.png, ic_all_off.png as drawable


4. Edit the sources
There is "DeskClockFragmet" class which is parent of alam/timer/stopwatch/clock's Fragment class.
It uses common layout "desk_clock.xml". It has three buttons (Fab, sub buttons) in the bottom of the screen and Alarm Fragment does not use and just hide sub buttons.
Which means we can easily add buttons to that place.

setLeftRightButtonAppearance() in AlarmClockFragment.java

Code:


    @Override
    public void setLeftRightButtonAppearance() {
        final DeskClock activity = (DeskClock) getActivity();
        if (mLeftButton == null || mRightButton == null ||
                activity.getSelectedTab() != DeskClock.ALARM_TAB_INDEX) {
            return;
        }
      // mLeftButton.setVisibility(View.INVISIBLE);
        //mRightButton.setVisibility(View.INVISIBLE);
        mLeftButton.setEnabled(true);
        mRightButton.setEnabled(true);
        mLeftButton.setVisibility(View.VISIBLE);
        mRightButton.setVisibility(View.VISIBLE);
        mLeftButton.setImageResource(R.drawable.ic_all_off);
        mRightButton.setImageResource(R.drawable.ic_all_on);

    }


set mLeft/RightButton enabled and change visibilty to VISIBLE, set button image as drawable we added.

and I just hide menu button in bottom-right just in alarm tab because right and menu button are overlayed.

onCreateView() in AlarmClockFragment.java

Code:


        if (menuButton != null) {
//            if (isLandscape) {
//                menuButton.setVisibility(View.GONE);
//            } else {
//                menuButton.setVisibility(View.VISIBLE);
//                setupFakeOverflowMenuButton(menuButton);
//            }
                //remove menu button
                menuButton.setVisibility(View.GONE);
        }


There is AlarmItemAdapter sub class in AlarmClockFragment.java which extends CursorAdapter.
We have to implement something that change actual alarm data in inner database and change views depend on each alarm's on/off value.
I just added a method "swichAlarms" into this sub class to do that.

boolean enabled value is passed as parameter (on : true / off : false)
Get every alarm's view and change the view when the alarm on/off status has to be changed

Also there's a way to get alarms llist in Alarm.java that is getAlarms() method.
I use it to get alarms list a alarm's enabled value is different.
And change alarms enabled value with asyncUpdateAlarm() method in AlarmClockFragment.java

That's all!
easy? :D


Code:


// added by donghe
/**
 * A convenience method to enable or disable every alarm.
 * Get child view (visible view) in alarm list and changing ItemAlpha whether if its enabled value is different
 * Get alarm(s) linked list from Alarms Class only if the alarm has to be updated.
 * Do asynchronous updating.
 * @param enabled        true for turning on, false for turning off
 */
private void switchAlarms(boolean enabled) {
        int totalLength = mList.getCount();
       
        for (int i = 0; i < totalLength; i++) {
                View v = mList.getChildAt(i);
                if (v != null) {
                        ItemHolder h = (ItemHolder)(v.getTag());
                        if (h != null && h.alarm.enabled != enabled) {
                                setDigitalTimeAlpha(h, enabled);
                        }
                }
        }
       
        String selection = null;
        if(enabled){
                selection = "ENABLED = 0";
        }
        else{
                selection = "ENABLED = 1";
        }
        ContentResolver cr = getActivity().getApplicationContext().getContentResolver();
        List<Alarm> alarmList = Alarm.getAlarms(cr, selection, null);

        for(Alarm alarm: alarmList){
                alarm.enabled = enabled;
                asyncUpdateAlarm(alarm, false);
        }
}




Now I feel comfortable to sleep lately in the evening and wake up early in the morning :)
Hope this thread is helpful to someone like me.
I attached project archive and apk.
Enjoy it!








Attached Thumbnails


Click image for larger version<br/><br/>Name:	there-are-two-kinds-of-people-alarm.jpg<br/>Views:	N/A<br/>Size:	22.2 KB<br/>ID:	3184397
 

Click image for larger version<br/><br/>Name:	button_icon.png<br/>Views:	N/A<br/>Size:	6.2 KB<br/>ID:	3184398
 

Click image for larger version<br/><br/>Name:	screeenshot.png<br/>Views:	N/A<br/>Size:	42.4 KB<br/>ID:	3184404
 











Attached Files





File Type: zip DeskClock_Lollipop_apk_and_project.zip -
[Click for QR Code]
(10.93 MB)










mercredi 25 février 2015

[Guide][KitKat][Xperia] Guide How to add Flip Animation Quick Settings topic






Guide Smali How to add Flip Animation Quick Settings

Flip Animation Quick Settings , Youtube https://www.youtube.com/watch?v=DBBE...ature=youtu.be

REQUIREMENT :
- ApkTool RC
- Notepad++
- Xperia KitKat
- Brain
- Patient
- Experience


STEP -1
Decompile SystemUI.apk
Download attached resources and sources, merge to your decompiled systemui

STEP -2
SystemUI.apk/res/layout/somc_statusbar_notification_tools_button.xml
add the red line




Code:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:gravity="center" android:orientation="vertical" android:id="@id/tools_button_layout" android:background="@drawable/somc_quick_settings_tool_button_bg" android:clickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minHeight="1.0dip"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content">
        <ImageView android:id="@id/tools_button_img" android:layout_width="@dimen/qs_tile_icon_size" android:layout_height="@dimen/qs_tile_icon_size" android:scaleType="center" android:contentDescription="@null" />
        <ImageView android:id="@id/tools_button_anim" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="wrap_content" android:scaleType="center" android:contentDescription="@null" />
    </FrameLayout>
    <TextView android:textSize="@dimen/status_bar_tools_button_label_text_size" android:gravity="top|center" android:id="@id/tools_button_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/status_bar_tools_button_margin_bottom" android:lines="2" android:scrollHorizontally="false" android:includeFontPadding="false" />
</LinearLayout>






go to
com/sonymobile/systemui/statusbar/tools/ToolsButton.smali
Add the red line




Code:


# static fields
.field private static final TAG:Ljava/lang/String;


# instance fields
.field private mHandler:Landroid/os/Handler;

.field private mAccentColor:I

.field private mAnimationFrames:Ljava/util/ArrayList;
    .annotation system Ldalvik/annotation/Signature;






Add the red line and pay attention to the register number in blue hint, each device can be different ,
it can be v3, v2, .. you must adapt it.




Code:


.method public constructor <init>(Landroid/content/Context;)V
    .locals 9
    .param p1, "context"    # Landroid/content/Context;

    .prologue
    const/4 v8, 0x1

    const/4 v7, 0x0

    const/4 v6, -0x1

    const/4 v5, 0x0

    invoke-direct {p0, p1}, Landroid/widget/FrameLayout;-><init>(Landroid/content/Context;)V

    const/high16 v3, -0x80000000

    iput v3, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mState:I

    iput v7, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mCurrentAnimationImage:I

    iput-object v5, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mAnimationFrames:Ljava/util/ArrayList;

    new-instance v3, Landroid/util/SparseArray;

    const/16 v4, 0xa

    invoke-direct {v3, v4}, Landroid/util/SparseArray;-><init>(I)V

    iput-object v3, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mBitmaps:Landroid/util/SparseArray;

    iput-boolean v7, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mButtonClicked:Z

    iput v7, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mButtonType:I

    iput-object p1, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mContext:Landroid/content/Context;

    new-instance v3, Landroid/util/SparseArray;

    invoke-direct {v3}, Landroid/util/SparseArray;-><init>()V

    iput-object v3, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mStateIcons:Landroid/util/SparseArray;

    new-instance v3, Landroid/os/Handler;

    invoke-direct {v3}, Landroid/os/Handler;-><init>()V

    iput-object v3, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mHandler:Landroid/os/Handler;


    new-instance v3, Landroid/util/SparseIntArray;

    invoke-direct {v3}, Landroid/util/SparseIntArray;-><init>()V

    iput-object v3, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mStateContentDescription:Landroid/util/SparseIntArray;

    new-instance v2, Landroid/widget/FrameLayout$LayoutParams;

    invoke-direct {v2, v6, v6}, Landroid/widget/FrameLayout$LayoutParams;-><init>(II)V

    .local v2, "params":Landroid/widget/FrameLayout$LayoutParams;
    invoke-static {p1}, Landroid/view/LayoutInflater;->from(Landroid/content/Context;)Landroid/view/LayoutInflater;

    move-result-object v1

    .local v1, "inflater":Landroid/view/LayoutInflater;
    const v3, 0x7f04001d

    invoke-virtual {v1, v3, v5}, Landroid/view/LayoutInflater;->inflate(ILandroid/view/ViewGroup;)Landroid/view/View;

    move-result-object v3

    check-cast v3, Landroid/widget/LinearLayout;

    iput-object v3, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mVerticalLayout:Landroid/widget/LinearLayout;

    iget-object v3, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mVerticalLayout:Landroid/widget/LinearLayout;

    invoke-virtual {v3, p0}, Landroid/widget/LinearLayout;->setOnClickListener(Landroid/view/View$OnClickListener;)V

    iget-object v3, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mVerticalLayout:Landroid/widget/LinearLayout;

    invoke-virtual {v3, p0}, Landroid/widget/LinearLayout;->setOnLongClickListener(Landroid/view/View$OnLongClickListener;)V






Next
add the red mehod




Code:


.method private enableButton(Z)V
    .locals 1
    .param p1, "enable"    # Z

    .prologue
    if-eqz p1, :cond_0

    move-object v0, p0

    .local v0, "enableButton":Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;
    :goto_0
    invoke-virtual {p0, v0}, Landroid/view/View;->setOnClickListener(Landroid/view/View$OnClickListener;)V

    invoke-virtual {p0, v0}, Landroid/view/View;->setOnLongClickListener(Landroid/view/View$OnLongClickListener;)V

    invoke-virtual {p0, v0}, Landroid/view/View;->setOnTouchListener(Landroid/view/View$OnTouchListener;)V

    return-void

    .end local v0    # "enableButton":Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;
    :cond_0
    const/4 v0, 0x0

    goto :goto_0
.end method

.method private mOnLongClickVerticalLayout()V
    .locals 6

    .prologue
    iget-object v0, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mVerticalLayout:Landroid/widget/LinearLayout;

    return-void
.end method


.method private setImageBitmap(Landroid/widget/ImageView;Landroid/graphics/Bitmap;Z)V
    .locals 2
    .param p1, "imageView"    # Landroid/widget/ImageView;
    .param p2, "bitmap"    # Landroid/graphics/Bitmap;
    .param p3, "colorize"    # Z

    .prologue

    invoke-virtual {p1, p2}, Landroid/widget/ImageView;->setImageBitmap(Landroid/graphics/Bitmap;)V

    const v0, -0x55555556

    invoke-static {p3}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v1

    invoke-virtual {p1, v0, v1}, Landroid/view/View;->setTag(ILjava/lang/Object;)V






Next find this line

Code:


# virtual methods

and add all red method




Code:


# virtual methods
.method public flip()V
    .locals 2

    .prologue
    const/4 v0, 0x0

    invoke-virtual {p0, v0}, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->flipTile(I)V

    return-void
.end method

.method public flipTile(I)V
    .locals 1
    .param p1, "delay"    # I

    .prologue
    .line 159
    const/4 v0, 0x1

    invoke-virtual {p0, p1, v0}, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->flipTile(IZ)V

    .line 160
    return-void
.end method

.method public flipTile(IZ)V
    .locals 5
    .param p1, "delay"    # I
    .param p2, "flipRight"    # Z

    .prologue
    .line 163
    invoke-virtual {p0}, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->isFlipTilesEnabled()Z

    move-result v2

    if-nez v2, :cond_0

    .line 190
    :goto_0
    return-void

    .line 164
    :cond_0
    iget-object v3, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mContext:Landroid/content/Context;

    if-eqz p2, :cond_1

    const v2, 0x7f05001c

    :goto_1
    invoke-static {v3, v2}, Landroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/Context;I)Landroid/animation/Animator;

    move-result-object v0

    check-cast v0, Landroid/animation/AnimatorSet;

    .line 167
    .local v0, "anim":Landroid/animation/AnimatorSet;
    iget-object v2, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mVerticalLayout:Landroid/widget/LinearLayout;

    invoke-virtual {v0, v2}, Landroid/animation/AnimatorSet;->setTarget(Ljava/lang/Object;)V

    .line 168
    const-wide/16 v2, 0xc8

    invoke-virtual {v0, v2, v3}, Landroid/animation/AnimatorSet;->setDuration(J)Landroid/animation/AnimatorSet;

    .line 169
    new-instance v2, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;

    invoke-direct {v2, p0}, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;-><init>(Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;)V

    invoke-virtual {v0, v2}, Landroid/animation/AnimatorSet;->addListener(Landroid/animation/Animator$AnimatorListener;)V

    .line 182
    new-instance v1, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;

    invoke-direct {v1, p0, v0}, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;-><init>(Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;Landroid/animation/AnimatorSet;)V

    .line 189
    .local v1, "doAnimation":Ljava/lang/Runnable;
    iget-object v2, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mHandler:Landroid/os/Handler;

    int-to-long v3, p1

    invoke-virtual {v2, v1, v3, v4}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z

    goto :goto_0

    .line 164
    .end local v0    # "anim":Landroid/animation/AnimatorSet;
    .end local v1    # "doAnimation":Ljava/lang/Runnable;
    :cond_1
    const v2, 0x7f05001b

    goto :goto_1
.end method

.method public isFlipTilesEnabled()Z
    .locals 3

    .prologue
    const/4 v0, 0x1

    .line 154
    iget-object v1, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mContext:Landroid/content/Context;

    invoke-virtual {v1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;

    move-result-object v1

    const-string v2, "quick_settings_tiles_flip"

    invoke-static {v1, v2, v0}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

    move-result v1

    if-ne v1, v0, :cond_0

    :goto_0
    return v0

    :cond_0
    const/4 v0, 0x0

    goto :goto_0
.end method


.method protected varargs addState(ILjava/lang/Integer;Lcom/sonymobile/systemui/statusbar/tools/ToolsButton$ToolsIcon;[Lcom/sonymobile/systemui/statusbar/tools/ToolsButton$ToolsIcon;)V
    .locals 2
    .param p1, "stateId"    # I
    .param p2, "stringId"    # Ljava/lang/Integer;
    .param p3, "stateIcon"    # Lcom/sonymobile/systemui/statusbar/tools/ToolsButton$ToolsIcon;
    .param p4, "animationIcons"    # [Lcom/sonymobile/systemui/statusbar/tools/ToolsButton$ToolsIcon;

    .prologue

    iget-object v0, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mStateIcons:Landroid/util/SparseArray;

    invoke-virtual {v0, p1, p3}, Landroid/util/SparseArray;->put(ILjava/lang/Object;)V

    iget-object v0, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mStateContentDescription:Landroid/util/SparseIntArray;

    invoke-virtual {p2}, Ljava/lang/Integer;->intValue()I






next search this method and add the red line




Code:


.method public onClick(Landroid/view/View;)V
    .locals 2
    .param p1, "view"    # Landroid/view/View;

    .prologue
    iget-object v0, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mAnimationView:Landroid/widget/ImageView;

    invoke-virtual {v0}, Landroid/view/View;->getVisibility()I

    move-result v0

    if-nez v0, :cond_0

    iget v0, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mButtonType:I

    const/4 v1, 0x2

    if-ne v0, v1, :cond_1

    :cond_0
    invoke-virtual {p0}, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->onAction()V

    invoke-virtual {p0}, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->flip()V

    const/4 v0, 0x1

    iput-boolean v0, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mButtonClicked:Z
       
    :cond_1
    return-void
.end method

.method public onLongClick(Landroid/view/View;)Z
    .locals 2
    .param p1, "view"    # Landroid/view/View;

    .prologue
    const/4 v0, 0x0

    .local v0, "clickHandled":Z
    iget-object v1, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mAnimationView:Landroid/widget/ImageView;

    invoke-virtual {v1}, Landroid/view/View;->getVisibility()I

    move-result v1

    if-eqz v1, :cond_0

    invoke-virtual {p0}, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->onLongClickPopup()Z

    move-result v1

    if-eqz v1, :cond_1

    const/4 v0, 0x1

    :cond_0
    :goto_0
    invoke-direct {p0}, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mOnLongClickVerticalLayout()V

    return v0

    :cond_1
    const/4 v0, 0x0

    goto :goto_0
.end method






Compile your systemUI
STEP-3
Decompile the newly recompiled again
next go to systemui/res/values/public.xml





Code:


<public type="anim" name="wallpaper_recents_launch_from_launcher_exit" id="0x7f05001a" />
    <public type="anim" name="flip_left" id="0x7f??????" />
    <public type="anim" name="flip_right" id="0x7f??????" />
    <public type="xml" name="somc_skin_permissions" id="0x7f060000" />


next go to
com/sonymobile/systemui/statusbar/tools/ToolsButton.smali
serach this method

Code:


.method public flipTile(IZ)V
    .locals 5
    .param p1, "delay"    # I
    .param p2, "flipRight"    # Z

    .prologue
    .line 163
    invoke-virtual {p0}, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->isFlipTilesEnabled()Z

    move-result v2

    if-nez v2, :cond_0

    .line 190
    :goto_0
    return-void

    .line 164
    :cond_0
    iget-object v3, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mContext:Landroid/content/Context;

    if-eqz p2, :cond_1

    const v2, 0x7f05001c

    :goto_1
    invoke-static {v3, v2}, Landroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/Context;I)Landroid/animation/Animator;

    move-result-object v0

    check-cast v0, Landroid/animation/AnimatorSet;

    .line 167
    .local v0, "anim":Landroid/animation/AnimatorSet;
    iget-object v2, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mVerticalLayout:Landroid/widget/LinearLayout;

    invoke-virtual {v0, v2}, Landroid/animation/AnimatorSet;->setTarget(Ljava/lang/Object;)V

    .line 168
    const-wide/16 v2, 0xc8

    invoke-virtual {v0, v2, v3}, Landroid/animation/AnimatorSet;->setDuration(J)Landroid/animation/AnimatorSet;

    .line 169
    new-instance v2, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;

    invoke-direct {v2, p0}, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;-><init>(Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;)V

    invoke-virtual {v0, v2}, Landroid/animation/AnimatorSet;->addListener(Landroid/animation/Animator$AnimatorListener;)V

    .line 182
    new-instance v1, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;

    invoke-direct {v1, p0, v0}, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;-><init>(Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;Landroid/animation/AnimatorSet;)V

    .line 189
    .local v1, "doAnimation":Ljava/lang/Runnable;
    iget-object v2, p0, Lcom/sonymobile/systemui/statusbar/tools/ToolsButton;->mHandler:Landroid/os/Handler;

    int-to-long v3, p1

    invoke-virtual {v2, v1, v3, v4}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z

    goto :goto_0

    .line 164
    .end local v0    # "anim":Landroid/animation/AnimatorSet;
    .end local v1    # "doAnimation":Ljava/lang/Runnable;
    :cond_1
    const v2, 0x7f05001b

    goto :goto_1
.end method


change the red value in the smali
according to the value you got in your own public.xml

const v2, 0x7f05001c
with

Code:


<public type="anim" name="flip_right" id="0x7f??????" />

and
const v2, 0x7f05001b
with

Code:


<public type="anim" name="flip_left" id="0x7f??????" />





Done and compile your systemUI

Credits :
- Sony
- Darck CM
- CyanogenMod










Ubuntu Phone Porting Guide v2.0 topic






If anyone is (still) interested on porting Ubuntu on our phones, they have updated the porting guide for new phones. This guide could greatly help.

Announcing the Ubuntu Porting guide 2.0

Porting a new device






[GUIDE] RIL on Vanir/FXP CM12 topic






Hello everyone!

Making another guide, this time on how to fix RIL on CM12 based roms e.g. Vanir and FXP.

The cause of the problem is once again SELinux and the fix is rather simple... let's go!

Before we start there is one crucial requirement! :
Do you have a SIM PIN set? If YES just continue reading. If NO, please set one BEFORE flashing a CM12 ROM.


We need to be able to set SELinux to permissive before the phone attempts to access the SIM card or it will not work! If you have a PIN set, your phone will not "try" to load it till you entered the PIN and that gives SELinux mode changer the time to change the mode! If you have no PIN set the phone will load the SIM card almost immediately and the app is not quick enough to set the mode to permissive before it loads the SIM!



Steps:

1: Install a build of your choice (Vanir/FXP, and no this fix is not for locked bootloader CM12 roms like RR, there is another fix for those roms!).
2: Once your device has booted up, turn off auto brightness to prevent your phone from rebooting while doing these steps. (your phone will soft-reboot once after disabling auto brightness)
3: Download and install SELinux mode changer from here: Google Play (or any other app that is able to set SELinux to permissive on boot.)
4: Open the app grant root access and check the "show notification" Checkbox.
5: Fully reboot your device and WAIT on the lockscreen till the app says that it changed the SELinux mode to permissive!!!
6: Enter your SIM PIN and you should be ready to go!

Remaining bugs:
1: When you call someone or you get called, the sound will be glitchy!
2: Auto-brightness still does not work!
3: More?

The fix was found by : @AndreAkaNick
Enjoy CM12!,

Noahvt






[Q][Guide] Guide to Theme battery in Lollipop Rom topic






I want IOS style battery in my Moto G running Lollipop. Is there any Guide available for theming the battery icon? I didn search, but I couldnt find any guide for lollipop. Kindly help






mardi 24 février 2015

Ubuntu Touch porting guide released topic












[GUIDE] [STOCK ROM] [ODIN] Flashing Stock Rom topic






Flashing Stock Rom for Samsung Grand Prime

When you are attempt to install rom kernel tweaks etc by instruction when something wrong happened to your phone is brick this is the only way to revert your phone to stock rom and fixing the brick phone which means you are going to in android kitkat 4.4.4 in your phone no modified. in this process if your phone brick neither xda nor me will not responsible for it do at your own risk. these guide is tested on grand prime


i have made this guide for noobs who want to flash their phone

Want to Understand firmware name go here credit @marcussmith2626

Required
1.Samsung USB Driver
2.Odin from here http://odindownload.com/
3.Stcok Firmware (In the search box enter your model then select your region then download)
4.Please Maintain battery between 40+
5.Pc or Laptop
6.USB

Instructions
Don't Skip any step
1.Download the USB Driver Install in our computer
2.Download the firmware from and extract you will see file tar.md5
3.Power off your grand prime
4.Boot into download mode by pushing volume down + home + power together
5.Press volume up
6.Connect the usb between mobile and computer
7.Extract Odin zip
8.Open Odin.exe
9.When You open you will see yellow color in BOX that means your phone is connected
10.Now Click on PDA and browse to the extract of the firmware and select where pda in file
11.Now Click on CSC and browse to the extract of the firmware and select where csc in file
12.Now click on PHONE and browse to the extract of the firmware and select where modem in file
13.After that click on start button
14.When the process complete unplug your phone
15.when your phone reboot remove your battery
16.Now push Volume up + power + home together to go in recovery
17.Now navigate to wipe data reset by pressing volume up /down
18.Click on wipe data reset by pressing power
19.Again Navigate to reboot system now and click on it
20.Be patient first boot may take time

Credits
@marcussmith2626
samsung
xda






lundi 23 février 2015

Guide : How to get multiple users feature on CM11 topic






Hey there, I just upgraded from resurrection remix ROM to cyanogenMod 11 (4.4.4) and the first thing I missed was a multiple user's option. I searched on the net and I couldn't find it anywhere. While browsing randomly i came through these 2 articles explaining how to get that feature back. I don't take any credit for this, all credit goes to the developers and that site explaining the whole method. So I am just sharing the links with you all because I know there are many multiple users fans out here missing this feature.

Both the methods are working like a charm (but you can't receive a call in another account). I used my NOTE2 international version for this. I recommend the second method.
Method one

http://nexus5.wonderhowto.com/how-to...phone-0150637/

Method two

http://gs5.wonderhowto.com/how-to/se...phone-0157014/

I couldn't find any dedicated place for cyanogenmod, if it is there, then I request the moderators to move this post to respective place.

If you liked my thought of sharing, pressing the like button will bring a smile on my face.