Filter incompatible apps by architecture as well
CPU_ABI and CPU_ABI2 are used to check with the nativecode in the index. This would only break if either of these two was set incorrectly in the ROM's build.prop. Then again, should we worry about that?
This commit is contained in:
		
							parent
							
								
									d4a7247629
								
							
						
					
					
						commit
						116c161ab7
					
				| @ -330,6 +330,7 @@ public class DB { | |||||||
|         private static class EclairChecker extends CompatibilityChecker { |         private static class EclairChecker extends CompatibilityChecker { | ||||||
| 
 | 
 | ||||||
|             private HashSet<String> features; |             private HashSet<String> features; | ||||||
|  |             private List<String> cpuAbis; | ||||||
|             private boolean ignoreTouchscreen; |             private boolean ignoreTouchscreen; | ||||||
| 
 | 
 | ||||||
|             public EclairChecker(Context ctx) { |             public EclairChecker(Context ctx) { | ||||||
| @ -348,9 +349,25 @@ public class DB { | |||||||
|                     logMsg.append('\n'); |                     logMsg.append('\n'); | ||||||
|                     logMsg.append(fi.name); |                     logMsg.append(fi.name); | ||||||
|                 } |                 } | ||||||
|  | 
 | ||||||
|  |                 cpuAbis = new ArrayList<String>(); | ||||||
|  |                 if (hasApi(8)) | ||||||
|  |                     cpuAbis.add(android.os.Build.CPU_ABI2); | ||||||
|  |                 cpuAbis.add(android.os.Build.CPU_ABI); | ||||||
|  | 
 | ||||||
|                 Log.d("FDroid", logMsg.toString()); |                 Log.d("FDroid", logMsg.toString()); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|  |             private boolean compatibleApi(CommaSeparatedList nativecode) { | ||||||
|  |                 if (nativecode == null) return true; | ||||||
|  |                 for (String abi : nativecode) { | ||||||
|  |                     if (cpuAbis.contains(abi)) { | ||||||
|  |                         return true; | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 return false; | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|             public boolean isCompatible(Apk apk) { |             public boolean isCompatible(Apk apk) { | ||||||
|                 if (!hasApi(apk.minSdkVersion)) |                 if (!hasApi(apk.minSdkVersion)) | ||||||
|                     return false; |                     return false; | ||||||
| @ -367,6 +384,13 @@ public class DB { | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |                 if (!compatibleApi(apk.nativecode)) { | ||||||
|  |                     Log.d("FDroid", apk.id | ||||||
|  |                             + " makes use of incompatible native code: " | ||||||
|  |                             + CommaSeparatedList.str(apk.nativecode) | ||||||
|  |                             + " while your architecture is " + cpuAbis.get(0)); | ||||||
|  |                     return false; | ||||||
|  |                 } | ||||||
|                 return true; |                 return true; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Daniel Martí
						Daniel Martí